Wazuh é uma plataforma de segurança unificada, open-source e amplamente utilizada para monitoramento de integridade, detecção de ameaças e resposta a incidentes. Ao integrar o Wazuh com Prometheus e Grafana, você transforma dados brutos de logs em visualizações poderosas que facilitam a identificação de comportamentos anômalos em tempo real.
Este tutorial guia profissionais de TI, sysadmins e desenvolvedores pela instalação e configuração básica dessa stack de monitoramento em um ambiente Linux. O foco é estabelecer uma linha de base sólida para detecção de ameaças, garantindo que você tenha visibilidade completa sobre o estado de segurança dos seus servidores.
1. Arquitetura da Solução
Antes de iniciar a instalação, é crucial entender como os componentes interagem:
- Wazuh Manager: Recebe os logs e alertas dos agentes instalados nos servidores monitorados.
- Wazuh Indexer: Armazena os dados processados (baseado no Elasticsearch, mas otimizado para segurança).
- Wazuh Dashboard: Interface web padrão para visualização inicial.
- Prometheus: Banco de dados de séries temporais que coleta métricas expostas pelo Wazuh.
- Grafana: Ferramenta de visualização que cria dashboards personalizados lendo do Prometheus.
Para este exemplo, utilizaremos um único servidor Linux (Ubuntu 22.04 LTS) para hospedar todos os componentes, ideal para ambientes de homologação ou pequenas infraestruturas. Em produção, recomenda-se separar o Indexer e o Manager em nós distintos para alta disponibilidade.
2. Preparação do Ambiente Linux
O primeiro passo é garantir que o sistema operacional esteja atualizado e com as dependências necessárias instaladas. O Wazuh e o Prometheus exigem recursos de CPU e memória significativos. Recomendamos um mínimo de 4 vCPUs e 8GB de RAM para este setup.
Inicie a atualização do repositório e instale os pacotes básicos:
sudo apt update && sudo apt upgrade -y
sudo apt install curl wget apt-transport-https gnupg lsb-release -y
Além disso, o Wazuh utiliza certificados TLS para comunicação segura. Certifique-se de que a data e hora do servidor estão sincronizadas via NTP, pois divergências temporais podem corromper logs e alertas.
sudo timedatectl set-ntp true
3. Instalação do Wazuh
A instalação mais simples e recomendada para começar é via repositório oficial. Vamos adicionar o repositório e instalar o pacote completo (Manager, Indexer e Dashboard) com um único comando.
- Adicionar a chave GPG do Wazuh:
curl -s | sudo apt-key add -
- Adicionar o repositório ao sistema:
echo "deb https://packages.wazuh.com/4.8/apt/ stable main" | sudo tee /etc/apt/sources.list.d/wazuh.list
- Atualizar e instalar o Wazuh:
sudo apt update
sudo apt install wazuh-manager wazuh-indexer wazuh-dashboard -y
A instalação solicitará a configuração de senhas para o Wazuh Indexer e para o usuário administrativo do dashboard. **Anote essas credenciais**, pois serão necessárias posteriormente.
Configuração Inicial de Segurança do Indexer
O Wazuh Indexer vem com certificados autoassinados por padrão. Para ambientes internos, isso é aceitável, mas para produção, substitua-os por certificados CA assinados. Execute o script de configuração segura:
sudo /usr/share/wazuh-indexer/security-scripts/security.sh
Reinicie os serviços para aplicar as configurações:
sudo systemctl daemon-reload
sudo systemctl enable wazuh-manager
sudo systemctl enable wazuh-indexer
sudo systemctl enable wazuh-dashboard
sudo systemctl start wazuh-manager
sudo systemctl start wazuh-indexer
sudo systemctl start wazuh-dashboard
Acesse o dashboard via navegador em https://. O Wazuh fará a migração automática de dados e estará pronto para receber agentes.
4. Instalação do Prometheus
O Prometheus atuará como o coletor de métricas. Ele precisa ser capaz de se comunicar com a API interna do Wazuh Manager.
- Baixar o binário do Prometheus:
cd /tmp
wget https://github.com/prometheus/prometheus/releases/download/v2.47.0/prometheus-2.47.0.linux-amd64.tar.gz
tar xvfz prometheus-2.47.0.linux-amd64.tar.gz
sudo cp prometheus-2.47.0.linux-amd64/prometheus /usr/local/bin/
sudo cp prometheus-2.47.0.linux-amd64/promtool /usr/local/bin/
- Criar usuário e diretórios:
sudo useradd --no-create-home --shell /bin/false prometheus
sudo mkdir -p /etc/prometheus
sudo mkdir -p /var/lib/prometheus
- Mover arquivos de configuração e utilitários:
cd /tmp/prometheus-2.47.0.linux-amd64
sudo cp consoles /etc/prometheus
sudo cp console_libraries /etc/prometheus
sudo chown -R prometheus:prometheus /etc/prometheus
Configuração do Arquivo prometheus.yml
Crie o arquivo de configuração principal:
sudo nano /etc/prometheus/prometheus.yml
Insira a seguinte configuração, apontando para a API local do Wazuh (porta 55000 por padrão):
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'wazuh'
static_configs:
- targets: ['localhost:55000']
metrics_path: /api/v1/metrics
scheme: https
tls_config:
ca_file: /var/ossec/api/config/wazuh-ssl-ca.pem
cert_file: /var/ossec/api/config/wazuh-ssl-cert.pem
key_file: /var/ossec/api/config/wazuh-ssl-key.pem
Importante: Verifique se os caminhos dos certificados SSL do Wazuh estão corretos. Se você não os configurou manualmente, eles podem estar em locais diferentes ou precisar ser extraídos.
Criar Serviço Systemd para Prometheus
sudo nano /etc/systemd/system/prometheus.service
Conteúdo do serviço:
[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
User=prometheus
Group=prometheus
ExecStart=/usr/local/bin/prometheus \
--config.file=/etc/prometheus/prometheus.yml \
--storage.tsdb.path=/var/lib/prometheus \
--web.console.templates=/etc/prometheus/consoles \
--web.console.libraries=/etc/prometheus/console_libraries
[Install]
WantedBy=multi-user.target
Habilite e inicie o serviço:
sudo systemctl daemon-reload
sudo systemctl enable prometheus
sudo systemctl start prometheus
Verifique se o Prometheus está rodando e exporando os dados em http://localhost:9090/targets. O status deve ser "UP" para o job 'wazuh'.
5. Instalação e Configuração do Grafana
O Grafana fornecerá a interface visual. Vamos instalá-lo via repositório oficial.
sudo apt install -y apt-transport-https software-properties-common wget
wget -q -O /usr/share/keyrings/grafanagpg.key https://apt.grafana.com/gpg.key
echo "deb [signed-by=/usr/share/keyrings/grafanagpg.key] https://apt.grafana.com stable main" | sudo tee /etc/apt/sources.list.d/grafana.list
sudo apt update
sudo apt install grafana -y
Inicie o serviço:
sudo systemctl daemon-reload
sudo systemctl enable grafana-server
sudo systemctl start grafana-server
Conectando Grafana ao Prometheus
- Acesse o Grafana em
http://localhost:3000(usuário padrão:admin, senha:admin). - No menu lateral, vá em Data Sources > Add data source.
- Selecione Prometheus.
- No campo URL, insira:
http://localhost:9090. - Clique em Save & Test. Você deve ver uma mensagem de sucesso.
6. Importando Dashboards de Segurança
O Wazuh oferece dashboards prontos para Grafana que mapeiam alertas, status de agentes e eventos de segurança.
- Baixe o dashboard JSON oficial do repositório do Wazuh no GitHub:
wget https://raw.githubusercontent.com/wazuh/wazuh-dashboard-app/main/dashboards/grafana_wazuh.json
- No Grafana, vá em Import.
- Faça upload do arquivo
grafana_wazuh.jsonou cole o conteúdo. - Selecione a fonte de dados Prometheus criada anteriormente.
- Clique em Import.
Você agora verá gráficos detalhados sobre:
- Alertas críticos e severos.
- Número de eventos por agente.
- Mudanças em arquivos sensíveis do sistema.
- Tentativas de login falhas (SSH, sudo).
7. Instalação do Agente Wazuh no Servidor Monitorado
Para monitorar a si mesmo ou outros servidores Linux, você precisa instalar o agente. No servidor local:
curl -so wazuh-agent.deb https://packages.wazuh.com/4.8/ubuntu/pool/main/wazuh-agent_4.8.0-1_amd64.deb
sudo apt install ./wazuh-agent.deb
Configure o arquivo /var/ossec/etc/ossec.conf ou use a ferramenta de linha de comando para apontar para o seu Manager:
sudo /var/ossec/bin/wazuh-control setenv ManagerIP="SEU_IP_DO_MANAGER"
Inicie o agente:
sudo systemctl enable wazuh-agent
sudo systemctl start wazuh-agent
8. Boas Práticas e Manutenção
Agora que a infraestrutura está ativa, considere as seguintes práticas para manter a segurança e a eficácia do monitoramento:
- Rotação de Logs: Configure o logrotate para os logs do Wazuh e Prometheus para evitar esgotamento de disco.
- Backup do Indexer: Realize backups regulares dos índices do Wazuh Indexer. Dados de segurança são ativos críticos.
- Atualizações: Mantenha o Wazuh, Prometheus e Grafana atualizados para corrigir vulnerabilidades de zero-day.
- Hardening: Restrinja o acesso às portas 5601 (Dashboard), 9090 (Prometheus) e 3000 (Grafana) apenas a IPs autorizados via firewall.
Conclusão
A combinação de Wazuh, Prometheus e Grafana oferece uma solução robusta e escalável para detecção de ameaças em ambientes Linux. Ao centralizar a coleta de logs e métricas, você ganha visibilidade proativa, permitindo responder a incidentes antes que se tornem violações críticas.
Lembre-se: monitoramento é apenas o primeiro passo. Integre este setup com suas ferramentas de ticketing (como Jira ou ServiceNow) e automatize respostas a alertas comuns para maximizar a eficiência da sua equipe de segurança.