Introduction
Wazuh est une plateforme de sécurité tout-en-un qui surveille en continu vos serveurs et postes :
- HIDS (Host Intrusion Detection) : détecte les comportements anormaux
- Logs centralisés : agrégation et analyse de tous vos logs (syslog, applicatif, audit)
- FIM (File Integrity Monitoring) : alerte si un fichier critique change
- Vulnerability detection : identifie les paquets vulnérables (CVE)
- Compliance : rapports PCI-DSS, HIPAA, GDPR, NIST
- MITRE ATT&CK : mapping des détections sur la matrice MITRE
Architecture : agents Wazuh (Linux/Win/Mac) + manager central + dashboard web (basé Kibana).
Prérequis
- VPS dédié pour le manager (8 Go RAM, 4 vCPU, 50 Go SSD)
- Ubuntu 22.04 / Debian 12 / Rocky 9
- Accès root
- Agents : Linux / Windows / macOS
Étape 1 : Installation tout-en-un (assistant)
curl -sO https://packages.wazuh.com/4.7/wazuh-install.sh
sudo bash wazuh-install.sh -a
Le script installe :
- Wazuh indexer (Opensearch)
- Wazuh manager
- Wazuh dashboard
- Filebeat
Compte 10-15 min. À la fin :
INFO: --- Summary ---
INFO: You can access the web interface https://<IP>
User: admin
Password: <generated>
Notez le mot de passe.
Étape 2 : Accès au dashboard
Ouvrez https://IP_VPS dans votre navigateur. Acceptez le cert auto-signé.
Login admin + mot de passe généré.
Vous arrivez sur le dashboard Wazuh.
Étape 3 : Déployer un agent
Sur le manager, allez dans Agents → Deploy new agent.
Choisissez OS et architecture. Pour Linux Debian/Ubuntu :
curl -so wazuh-agent.deb https://packages.wazuh.com/4.x/apt/pool/main/w/wazuh-agent/wazuh-agent_4.7.0-1_amd64.deb
sudo WAZUH_MANAGER='IP_MANAGER' WAZUH_AGENT_GROUP='default' dpkg -i ./wazuh-agent.deb
sudo systemctl daemon-reload
sudo systemctl enable wazuh-agent
sudo systemctl start wazuh-agent
L'agent apparaît dans le dashboard sous Agents (état Active en quelques secondes).
Étape 4 : Premiers events
Sur l'agent, simulez une tentative de brute force SSH :
sshpass -p 'wrong' ssh -o StrictHostKeyChecking=no foo@localhost
sshpass -p 'wrong' ssh -o StrictHostKeyChecking=no foo@localhost
sshpass -p 'wrong' ssh -o StrictHostKeyChecking=no foo@localhost
Dans le dashboard → Threat Hunting → Search sshd → vous voyez les événements remontés.
Étape 5 : File Integrity Monitoring (FIM)
Wazuh surveille par défaut des dossiers critiques. Pour ajouter /etc/nginx :
Sur l'agent, éditez /var/ossec/etc/ossec.conf :
<syscheck>
<directories check_all="yes" report_changes="yes" realtime="yes">/etc/nginx</directories>
</syscheck>
sudo systemctl restart wazuh-agent
Toute modif d'un fichier /etc/nginx/* génère un événement avec le diff.
Étape 6 : Détection de vulnérabilités
Wazuh scanne automatiquement les paquets installés contre la NVD :
Sur le manager, dans /var/ossec/etc/ossec.conf :
<vulnerability-detector>
<enabled>yes</enabled>
<interval>5m</interval>
<run_on_start>yes</run_on_start>
<provider name="canonical">
<enabled>yes</enabled>
<os>jammy</os>
<update_interval>1h</update_interval>
</provider>
<provider name="debian">
<enabled>yes</enabled>
<os>bookworm</os>
</provider>
<provider name="redhat">
<enabled>yes</enabled>
</provider>
<provider name="nvd">
<enabled>yes</enabled>
</provider>
</vulnerability-detector>
sudo systemctl restart wazuh-manager
Sous Modules → Vulnerabilities vous voyez tous les paquets vulnérables avec CVE associée.
Étape 7 : Active Response
Wazuh peut agir automatiquement :
Dans ossec.conf sur le manager :
<command>
<name>firewall-drop</name>
<executable>firewall-drop</executable>
<timeout_allowed>yes</timeout_allowed>
</command>
<active-response>
<command>firewall-drop</command>
<location>local</location>
<rules_id>5712</rules_id>
<timeout>600</timeout>
</active-response>
La règle 5712 = brute force SSH. Wazuh va automatiquement bloquer l'IP attaquante 10 min via iptables.
Étape 8 : Custom rules
Pour ajouter une détection custom (ex: alerte si quelqu'un édite /etc/sudoers) :
sudo nano /var/ossec/etc/rules/local_rules.xml
<group name="local,syslog,">
<rule id="100001" level="12">
<if_sid>550</if_sid>
<field name="file">/etc/sudoers$</field>
<description>CRITIQUE: /etc/sudoers modifie</description>
</rule>
</group>
sudo systemctl restart wazuh-manager
Étape 9 : Audit et compliance
Wazuh fournit des dashboards préconfigurés :
- PCI DSS : conformité paiement
- GDPR : protection données EU
- HIPAA : santé
- NIST 800-53 : référentiel US
- TSC : SOC 2
Modules → Regulatory compliance → choisissez. Vous voyez l'état de conformité par exigence.
Étape 10 : Intégration MITRE ATT&CK
Chaque alerte Wazuh est mappée sur des tactiques/techniques MITRE :
Modules → MITRE ATT&CK → affiche la matrice avec les tactiques observées dans votre environnement.
Étape 11 : Notifications
Pour recevoir un mail sur les alertes critiques (level >= 12) :
sudo nano /var/ossec/etc/ossec.conf
<global>
<email_notification>yes</email_notification>
<smtp_server>smtp.gmail.com</smtp_server>
<email_from>[email protected]</email_from>
<email_to>[email protected]</email_to>
</global>
<alerts>
<log_alert_level>3</log_alert_level>
<email_alert_level>12</email_alert_level>
</alerts>
Étape 12 : Performance et dimensionnement
Pour 100 agents : 8 Go RAM, 4 vCPU, 100 Go disque
Pour 1000 agents : 32 Go RAM, 16 vCPU, 500 Go disque (NVMe recommandé)
Les indices Opensearch grossissent vite. Configurez la rétention dans Stack Management → Index Management → ISM Policies.
Dépannage
Agent disconnected
Vérifiez la connectivité au manager :
telnet IP_MANAGER 1514
telnet IP_MANAGER 1515
Vérifiez les logs agent :
sudo tail -f /var/ossec/logs/ossec.log
Dashboard timeout
Indexer en train de monter (long). Patientez ou augmentez la RAM :
sudo systemctl status wazuh-indexer
Trop d'alertes (noise)
Tunez local_rules.xml pour réduire le niveau ou ignorer des rules.
"Out of memory" sur le manager
Augmentez la RAM. Wazuh-indexer (Opensearch) consomme beaucoup.
Commandes utiles
# Status services
sudo systemctl status wazuh-manager wazuh-indexer wazuh-dashboard
# Agents connectés
sudo /var/ossec/bin/manage_agents -l
# Restart manager
sudo systemctl restart wazuh-manager
# Logs principaux
sudo tail -f /var/ossec/logs/ossec.log
sudo tail -f /var/ossec/logs/alerts/alerts.log
# Forcer le scan vulnérabilités
sudo /var/ossec/bin/wazuh-control restart
# Lister les rules actives
sudo /var/ossec/bin/wazuh-logtest
Conclusion
Wazuh remplace plusieurs outils :
- SIEM (Splunk, QRadar)
- HIDS (OSSEC, AIDE)
- FIM
- Vulnerability scanner
- Compliance reporting
Tout open-source et bien intégré.
Pour aller plus loin :
- Couplez avec Suricata pour ajouter la couche NIDS
- Intégrez avec TheHive + Cortex pour la réponse à incident
- Pour les grosses prods, considérez la version Enterprise (Wazuh Cloud)
Ressources
- Documentation officielle : https://documentation.wazuh.com
- Github : https://github.com/wazuh/wazuh
- Demo en ligne : https://documentation.wazuh.com/current/getting-started/components/index.html
- Community Slack : https://wazuh.com/community/


















