Então, depois de não ter sucesso em security.stackexchange.com
, a questão foi migrada aqui. Passando alguns dias extras nisso, encontrei a "solução".
Você pode resumir para: encontrar outra solução HIDS.
Cheguei a essa conclusão depois de tentar uma lista extensa de coisas:
- Execute o OVA como está, diretamente no site do projeto (2.8.3)
- Atualizado / atualizado o OVA fornecido no site do projeto OSSEC.
- Instalado o servidor / gerenciador OSSEC em uma nova instalação do CentOS 7.
- Instalou o servidor com as instalações "Server GUI" e "Minimal" do CentOS 7.
- Tentei atualizar a VM do cliente do Windows 7.
- Usando outras VMs novas baseadas no Windows.
- Alterar portas, regras de firewall e endereços IP estáticos.
- Desativou os firewalls no servidor e no cliente.
- Aumente o buffer UDP no cliente Windows por meio do registro.
- SELinux desativado (modo permissivo ativo).
- Verificado, havia agentes listados no servidor e reiniciados para detectar alterações.
- Instalou o servidor a partir das fontes de RPM
- Compilado e instalado a partir do código-fonte.
- Versão do agente do Windows 2.9.0 e 2.9.2.
Para conseguir uma instalação razoável, , que pelo menos funcionou (um pouco), segui estes passos:
- Servidor de inicialização para mídia de instalação do CentOS 7.
- Escolha uma instalação mínima
- Conecte-se à sua rede, um IP estático é o melhor.
- Após a instalação, efetue login como root.
- Abra o firewall para cima
firewall-cmd --permanent --zone=public --add-port=1514/udp
- Confirme as alterações
firewall-cmd --reload
- Instale alguns extras
yum install mysql-devel postgresql-devel gcc wget vim
- Pegue o código-fonte
wget https://github.com/ossec/ossec-hids/archive/2.9.2.tar.gz
- Desmarcar o código
tar -zxvf 2.9.2.tar.gz
- Ir para o novo diretório
cd ossec-hids-2.9.2
- Execute o instalador
./install.sh
- Escolha o tipo
server
para a instalação. - Agora configure, padronizei todas as opções além de configurar o email como não.
- Configure a configuração dos clientes
/var/ossec/bin/manage_agents
- Configure o novo arquivo de configuração centralizado via
vim /var/ossec/etc/shared/agent.conf
- Iniciar o servidor
/var/ossec/bin/ossec-control start
- Instale o Windows Client com a versão mais recente (2.9.2).
O que foi ótimo, depois de passar horas e horas, foi que todo o meu trabalho foi desperdiçado. Descobri como configurar o cliente Windows para depurar o nível 2 e descobri a mensagem:
2017/10/20 02:13:40 ossec-agentd: Failed md5 for: shared/merged.mg -- deleting.
Acontece que não há nenhum aviso lançado no nível de log "normal" que uma mesclagem crítica de configuração falhou (seriamente!?).
Fiquei ainda mais impressionado com o fato de o servidor não conseguir recuperar o hash md5 da configuração do cliente após reiniciar o servidor e o cliente (tentativa de # 2 a # 14).
Em uma execução com o OVA (tentativa # 1), o servidor conseguiu capturar o md5 do cliente da configuração, mas não correspondeu ao do servidor. Você pode ver isso na minha pergunta original. Eu acho que o md5 do agente foi enviado porque eu adicionei alguns arquivos adicionais ao diretório conf no agente (principalmente agent.conf).
Em aborrecimento, liguei-me à Internet e encontrei
As I said before IMHO the issue affects to Windows and UNIX agents but it's more common in Windows because the default buffer is shorter. We had this problem with a Windows agent on a private VirtualBox network: the shared file didn't arrive. With debugging enabled, we saw the message:
ossec-agent: Failed md5 for: merged.mg -- deleting.
So we did this test: we modified the source code to prevent file from being deleted although it was corrupted, and compared the received file with the original one: some chunks of the file were indeed lost, it was not a line ending issue.
Shared file chunks may be lost due to the UDP protocol, as well as any other agent event or control message. In fact using TCP seems to be a good solution for this problem. We implemented TCP communication in Wazuh a year ago from version 1.1 and we reached some advantages:
No event losing. Communication is reliable for events, control messages and Active response requests. Agents detect that a manager is down immediately, so they are able to "lock" the transmission in order to prevent events from being dropped.
Agents with TCP connection are working properly in many systems using Linux, Windows, OpenBSD, macOS, AIX, etc.
Isto não é o que eu esperava ler . O que mais me preocupa é o fato de que uma infra-estrutura OSSEC poderia ser derrubada simplesmente pela perda de pacotes. É ainda mais preocupante que, no nível de log normal, a falha em mesclar a configuração nem apareça.
Embora eu tenha testado apenas agentes Windows, não tenho dúvidas de que os agentes Linux funcionam. Talvez no futuro o OSSEC se mova para conexões TCP, mas por enquanto, o OSSEC não possui uma funcionalidade crítica .
tldr; O que se resume a (pelo menos na minha opinião) é o mau teste de software / garantia de qualidade. Descobri a partir das discussões do Grupo do Google As conexões UDP causam problemas e há uma verificação limitada das transmissões de dados. Devido à corrupção da configuração do gerenciador em trânsito, o cliente se recusa a mesclá-lo. Isso parece acontecer apenas em clientes Windows.