Wazuh — SIEM/XDR déploiement et agents
Wazuh Manager, Indexer, Dashboard en Docker. Déploiement agents Linux/Windows, FIM, détection vulnérabilités, active response
Architecture Wazuh
Agents Linux/Windows/macOSport 1514 logs chiffrsport 1515 enrollmentWazuh Manager analyse rgles active responseFilebeatWazuh Indexer OpenSearch 9200Wazuh Dashboard 443
Déploiement Docker
cd monitoring# 1. Générer les certificats TLSbash generate-certs.sh# 2. Adapter .env (mots de passe)nano env# 3. Démarrer le stack Wazuhdocker compose --profile wazuh up -d# Suivre l'initialisation (peut prendre 3-5 min)docker compose logs -f wazuh-manager wazuh-indexer
Interface Wazuh Dashboard : https://localhost:443 — user: admin
Déploiement des agents
Linux (Debian/Ubuntu)
# Télécharger et installer le package agentcurl -s https//packages.wazuh.com/key/GPG-KEY-WAZUH | gpg --dearmor -o /usr/share/keyrings/wazuh.gpgecho "deb [signed-by=/usr/share/keyrings/wazuh.gpg] https://packages.wazuh.com/4.x/apt/ stable main"| tee /etc/apt/sources.list.d/wazuh.listapt update && apt install -y wazuh-agent# Enregistrer l'agent auprès du managerWAZUH_MANAGER"<IP_MANAGER>" WAZUH_AGENT_NAME"$(hostname)"dpkg-reconfigure wazuh-agentsystemctl enable --now wazuh-agentsystemctl status wazuh-agent
Windows (PowerShell)
# Télécharger l'installeur MSIInvoke-WebRequest -Uri "https://packages.wazuh.com/4.x/windows/wazuh-agent-4.7.3-1.msi" `-OutFile wazuh-agent.msi# Installer avec enregistrement automatiquemsiexec /i wazuh-agent.msi /q `WAZUH_MANAGER="<IP_MANAGER>" `WAZUH_AGENT_NAME="$env:COMPUTERNAME" `WAZUH_REGISTRATION_SERVER="<IP_MANAGER>"# Démarrer le serviceStart-Service WazuhSvcSet-Service WazuhSvc -StartupType Automatic
macOS
curl -so wazuh-agent.pkghttps//packages.wazuh.com/4.x/macos/wazuh-agent-4.7.3-1.pkg/bin/bash -c WAZUH_MANAGER'<IP_MANAGER>'WAZUH_AGENT_NAME'$(hostname)'installer -pkg /wazuh-agent.pkg -target/Library/Ossec/bin/wazuh-control start
Administration — Manager
# Lister les agents enregistrésdocker exec wazuh-manager /var/ossec/bin/manage_agents -l# Supprimer un agentdocker exec wazuh-manager /var/ossec/bin/manage_agents -r <ID># Statut du managerdocker exec wazuh-manager /var/ossec/bin/wazuh-control status# Tester la configurationdocker exec wazuh-manager /var/ossec/bin/wazuh-logtest# Alertes en temps réeldocker exec wazuh-manager tail -f /var/ossec/logs/alerts/alerts.json | jq# Relancer l'analyse des règlesdocker exec wazuh-manager /var/ossec/bin/wazuh-control restart
API REST Wazuh
# Obtenir un token JWTTOKENcurl -su wazuh-wui:changeme_wazuh_2024https//localhost55000/security/user/authenticate-k | jq -r '.data.token'# Lister les agentscurl -s -k -H "Authorization: Bearer $TOKEN"https//localhost55000/agents | jq '.data.affected_items[] | {id, name, status, ip}'# Résumé du managercurl -s -k -H "Authorization: Bearer $TOKEN"https//localhost55000/manager/info | jq# Forcer un scan FIM sur un agentcurl -s -k -X PUT -H "Authorization: Bearer $TOKEN""https://localhost:55000/syscheck?agents_list=001"# Scan de vulnérabilitéscurl -s -k -X PUT -H "Authorization: Bearer $TOKEN""https://localhost:55000/vulnerability?agents_list=001"
File Integrity Monitoring (FIM)
Wazuh surveille les modifications de fichiers en temps réel. La configuration est dans wazuh_manager.conf (section <syscheck>).
# Voir les alertes FIM des dernières 24hdocker exec wazuh-manager grep "ossec: File" /var/ossec/logs/alerts/alerts.log | tail -20# Forcer un scan FIM complet sur tous les agentsdocker exec wazuh-manager /var/ossec/bin/wazuh-control restart
Événements FIM clés :
| Rule ID | Description | |---|---| | 550 | Fichier modifié | | 554 | Fichier ajouté | | 553 | Fichier supprimé | | 591 | Fichier dans répertoire surveillé (Windows) |
Active Response
Wazuh peut automatiquement bloquer les IP en cas de brute-force.
# Tester l'active response manuellementdocker exec wazuh-manager /var/ossec/active-response/bin/firewall-dropadd 1921681100 1234 5763# Vérifier les actions activesdocker exec wazuh-manager cat /var/ossec/logs/active-responses.log | tail -20
La règle 5763 déclenche un blocage automatique après plusieurs échecs SSH (configuré dans wazuh_manager.conf).
Détection de vulnérabilités
# Statut du module vulnérabilitéscurl -s -k -H "Authorization: Bearer $TOKEN"https//localhost55000/vulnerability/001 | jq '.data.affected_items[0:5]'# Via Dashboard : Vulnerability Detection → Agents → sélectionner l'agent
Wazuh Indexer et Elasticsearch utilisent tous deux le port 9200. Dans ce stack, le Wazuh Indexer est mappé sur 9201 pour éviter le conflit. Les agents et le manager communiquent en interne via le réseau Docker sur 9200.
Déployer les agents avec l'option WAZUH_AGENT_GROUP pour les affecter automatiquement à un groupe (ex: linux-servers, windows-workstations) et appliquer des configurations différenciées via les groupes dans le Dashboard.