Monte detecção de intrusão em host (HIDS) no Linux: integridade de arquivos com AIDE, trilha de auditoria com auditd e alertas centralizados com Wazuh.
Para que serve
Firewall e atualizações reduzem a chance de invasão, mas não avisam quando algo passou. A detecção de intrusão em host (HIDS) acompanha o que muda dentro do servidor: um binário trocado, um usuário criado de madrugada, uma chave SSH nova em authorized_keys. Este artigo mostra três camadas que se completam: AIDE (integridade de arquivos), auditd (quem fez o quê) e Wazuh (coleta e alertas centralizados de todas as VMs).
Pré-requisitos
- Host Proxmox VE e VMs com Debian 12/13 ou Ubuntu 24.04 (o agente Wazuh também existe para Windows).
- Para o Wazuh: uma VM dedicada com Ubuntu 24.04, 4 vCPU, 8 GB de RAM e 50 GB de disco (até cerca de 25 agentes).
- Um e-mail ou canal para receber alertas.
Passo 1: integridade de arquivos com AIDE
O AIDE tira uma "fotografia" dos arquivos do sistema (hash, permissões, dono) e compara diariamente.
- Instale:
sudo apt install aide - Crie a base inicial com o sistema em estado confiável (logo após instalar e atualizar):
Ao final, a base fica emsudo aideinit/var/lib/aide/aide.db. Se o comando gerar apenasaide.db.new, copie-a paraaide.db. - Exclua o que muda o tempo todo. No host Proxmox, discos de VM e o sistema de arquivos do cluster geram ruído. Crie
/etc/aide/aide.conf.d/99_localcom:
Depois rode!/var/lib/vz !/etc/pve !/var/lib/pve-clustersudo aideinit -y -fpara refazer a base. - Agende a verificação diária. No Debian e no Ubuntu atuais, ela é feita pelo timer
dailyaidecheck.timer:
Se não aparecer, ative comsystemctl list-timers | grep -i aidesudo systemctl enable --now dailyaidecheck.timer. Os relatórios vão para o e-mail do root; configure um encaminhamento em/etc/aliasesou ajuste o destino em/etc/default/aide. - Depois de cada atualização planejada, confira o relatório e atualize a base:
sudo aide --config /etc/aide/aide.conf --update sudo cp /var/lib/aide/aide.db.new /var/lib/aide/aide.db
Passo 2: trilha de auditoria com auditd
- Instale:
sudo apt install auditd audispd-plugins - Crie regras em
/etc/audit/rules.d/50-local.rules:# contas e grupos -w /etc/passwd -p wa -k contas -w /etc/shadow -p wa -k contas -w /etc/group -p wa -k contas # sudo e ssh -w /etc/sudoers -p wa -k sudo -w /etc/sudoers.d/ -p wa -k sudo -w /etc/ssh/sshd_config -p wa -k ssh -w /etc/ssh/sshd_config.d/ -p wa -k ssh -w /root/.ssh/ -p wa -k ssh_chaves # tarefas agendadas -w /etc/crontab -p wa -k cron -w /etc/cron.d/ -p wa -k cron -w /etc/systemd/system/ -p wa -k systemd # comandos executados como root por usuários que fizeram login -a always,exit -F arch=b64 -S execve -F euid=0 -F auid>=1000 -F auid!=unset -k cmd_root - Carregue as regras:
sudo augenrules --load sudo auditctl -l - Consulte quando precisar:
sudo ausearch -k contas -i --start today sudo ausearch -k cmd_root -i --start recent sudo aureport --summary
A regra de execve gera bastante log em servidores muito usados. Se o disco encher rápido, ajuste max_log_file e num_logs em /etc/audit/auditd.conf.
Passo 3: detecção de intrusão centralizada com Wazuh
Logs guardados só na máquina invadida podem ser apagados pelo invasor. O Wazuh recebe eventos dos agentes, aplica regras e mostra tudo em um painel: falhas de login, mudanças de arquivos, configuração fora do padrão (SCA) e pacotes com vulnerabilidades conhecidas.
- Na VM do Wazuh (Ubuntu 24.04), use o assistente de instalação completa (indexador, servidor e painel):
Confira na documentação oficial se há versão mais nova antes de rodar. A senha do usuáriocurl -sO https://packages.wazuh.com/4.14/wazuh-install.sh sudo bash ./wazuh-install.sh -aadminaparece no fim da instalação e também pode ser lida com:sudo tar -O -xvf wazuh-install-files.tar wazuh-install-files/wazuh-passwords.txt - Acesse o painel em
https://IP-DA-VM, de preferência pela VPN. Não publique o painel na internet. - Instale os agentes. No painel, use Agents → Deploy new agent: escolha o sistema, informe o IP do servidor Wazuh e copie o comando gerado para cada VM e para o host Proxmox.
- Libere a comunicação entre agentes e servidor: portas TCP 1514 e 1515 da VM do Wazuh, só a partir da rede interna das VMs.
- Inclua os logs do auditd no agente, se quiser os eventos do passo 2 no painel, adicionando um bloco
localfilecom<log_format>audit</log_format>e<location>/var/log/audit/audit.log</location>em/var/ossec/etc/ossec.conf. - Configure alertas por e-mail ou integração (Slack, Teams, webhook) para regras de nível alto.
Como saber se funcionou
- Crie um usuário de teste:
sudo useradd teste-hids. sudo ausearch -k contas -i --start recentmostra a alteração em/etc/passwd, com o usuário que fez login (auid).sudo aide --config /etc/aide/aide.conf --checkaponta/etc/passwde/etc/shadowcomo alterados.- No painel do Wazuh, o evento de criação de usuário aparece em poucos segundos.
- Remova o usuário:
sudo userdel teste-hids.
Problemas comuns
- Relatório do AIDE enorme todo dia: faltam exclusões para diretórios que mudam por natureza (logs, cache, discos de VM, bancos de dados).
- Agente Wazuh aparece desconectado: firewall bloqueando 1514/1515 ou versão do agente mais nova que a do servidor. O servidor deve ter versão igual ou superior à dos agentes.
- Painel do Wazuh lento ou caindo: o indexador precisa de memória. Respeite os 8 GB de RAM e acompanhe o uso de disco.
- auditd não carrega regras: erro de sintaxe em algum arquivo de
/etc/audit/rules.d/. Rodesudo augenrules --loade leia a mensagem de erro, ou consultejournalctl -u auditd.
Perguntas frequentes
Qual a diferença entre IDS de rede e de host?
O IDS de rede (Suricata, por exemplo) analisa o tráfego; o de host analisa o que acontece dentro do sistema. Em servidor dedicado com VMs, o de host costuma trazer mais resultado com menos esforço.
Preciso dos três?
Não necessariamente. Para um servidor só, AIDE e auditd já ajudam muito. Com várias VMs, o Wazuh centraliza e já inclui monitoramento de integridade.
O Wazuh funciona em Windows Server?
Sim. O agente para Windows coleta o Log de Eventos, monitora integridade de arquivos e registro, e avalia configuração.
Isso substitui antivírus?
Não. É uma camada de detecção e investigação; antivírus/EDR atuam em bloqueio de malware.
Leitura complementar
Precisa de ajuda?
Se os alertas indicarem uma possível invasão e você precisar de acesso ao console IPMI/iLO para isolar o servidor, abra um ticket ou chame o suporte 24/7.
