Cybersécurité · Méthode

Exploiter Wazuh au quotidien
agents, règles et lecture automatisée

Comment on installe un agent, ce qu'il remonte vraiment, où se règle la configuration héritée d'OSSEC, et comment on branche un agent IA sur le SIEM pour trier les alertes à notre place.

Les trois briques, et ce que chacune fait

Wazuh n'est pas un logiciel unique mais un empilement de trois services, souvent confondus :

BriqueRôle réel
ManagerReçoit les événements des agents (port 1514), applique les règles de détection, déclenche les réponses actives
IndexerStocke et indexe alertes et états, c'est lui qui mange le disque
DashboardInterface web ; il interroge l'indexer et l'API du manager

Un piège classique : le tableau de bord répond, donc on croit que « Wazuh fonctionne ». Or il s'affiche même quand le manager est arrêté, il montre simplement un parc vide. Le seule contrôle qui compte est côté manager : wazuh-control status, avec wazuh-remoted et wazuh-analysisd en running.

Enrôler un agent, concrètement

Sur le manager, on déclare la machine et on récupère une clé :

/var/ossec/bin/manage_agents -a           # nom + IP (ou "any")
/var/ossec/bin/manage_agents -e <id>     # extrait la clé

Sur la machine surveillée, on importe cette clé puis on démarre le service. À partir de là, l'agent ouvre une connexion sortante vers le manager, jamais l'inverse. C'est ce qui rend le déploiement simple : aucune règle entrante à ouvrir sur les machines surveillées, et un agent qui se trouve derrière un NAT fonctionne sans configuration réseau.

Ce détail a une conséquence qu'on oublie : si le flux sortant est filtré, l'agent tourne, affiche active, et ne livre rien. C'est exactement la panne qu'on a eue, le pare-feu du serveur autorisait le web mais pas le port 1514.

Ce que l'agent remonte réellement

Un agent n'est pas un simple collecteur de journaux. Il exécute cinq modules, réglables séparément :

  • logcollector lecture de fichiers de journaux et de journald, avec un décodeur par format
  • syscheck intégrité des fichiers : empreintes, permissions, propriétaire, alertes sur modification
  • rootcheck recherche de rootkits, ports cachés, permissions anormales
  • syscollector inventaire : paquets installés, ports, processus, matériel, c'est la base de la détection de vulnérabilités
  • SCA évaluation de durcissement contre un référentiel CIS, avec un score et la liste des contrôles en échec

La valeur ne vient pas du volume collecté mais de ce qu'on décide de surveiller. Un syscheck qui scanne tout le disque produit du bruit ; un syscheck limité à /etc/ssh, /etc/nginx, /etc/systemd/system et aux répertoires web produit des alertes qu'on lit.

La configuration, héritée d'OSSEC

Wazuh est un descendant direct d'OSSEC : le fichier s'appelle toujours ossec.conf, les binaires aussi (wazuh-agentd, wazuh-syscheckd…), et la syntaxe XML est identique. Ce qui a changé, c'est l'exploitation à l'échelle : là où OSSEC se configurait machine par machine, Wazuh permet une configuration centralisée par groupes.

<!-- agent : ce qui se règle localement -->
<localfile>
  <log_format>syslog</log_format>
  <location>/var/log/nginx/access.log</location>
</localfile>

<syscheck>
  <directories check_all="yes">/etc/ssh</directories>
  <directories check_all="yes">/etc/nginx</directories>
</syscheck>

Deux règles d'usage : ce qui est propre à une machine (chemins de journaux, disques) reste dans l'ossec.conf local ; ce qui doit être identique partout (politiques SCA, répertoires surveillés, règles actives) se pousse par groupe depuis le manager. Sans cette discipline, on finit avec vingt-deux configurations divergentes qu'on n'ose plus toucher.

Et un piège qui coûte une heure : une valeur invalide dans log_format empêche l'agent de démarrer, avec une erreur explicite dans ossec.log mais un systemctl status qui parle seulement de « processus de contrôle terminé ». nginx n'est pas une valeur acceptée, il faut syslog, le décodeur nginx s'appliquant de lui-même à la lecture.

Brancher un agent IA sur le SIEM

C'est l'étape suivante, et elle change l'usage : un SIEM produit plus d'alertes qu'un humain ne peut en lire. On ne cherche pas à automatiser la décision, mais la qualification.

Le montage tient en trois pièces :

PièceDétail
AccèsUn compte API Wazuh en lecture seule (readonly) et, si besoin, un utilisateur indexer limité à la lecture des index d'alertes. Jamais le compte administrateur dans un script.
CollecteUn script Python qui interroge /alerts, /agents, /sca et l'indexer, agrège par machine et par règle, et sort un JSON compact.
AnalyseUn agent (Hermes, en local) reçoit ce JSON, écarte le bruit connu, croise avec l'inventaire des ports exposés, et rédige un rapport en français : ce qui a changé, ce qui est grave, ce qui attend une décision.

Ce qu'on lui demande, concrètement : repérer un agent muet depuis 24 heures, signaler une nouvelle machine qui commence à remonter, trier les alertes de niveau ≥ 10 par exposition réelle, et proposer les remédiations dans l'ordre. Ce qu'on ne lui demande pas : bannir une IP ou modifier une règle. Un modèle qui lit et rédige, un humain qui décide.

Le rythme visé est quotidien : un résumé le matin sur téléphone, et une alerte immédiate seulement au-delà d'un seuil qu'on définit nous-mêmes.

Ce qu'on retient

Un SIEM utile n'est pas celui qui collecte le plus, c'est celui dont on lit la sortie. Trois contrôles valent mieux que dix tableaux de bord : les agents remontent-ils, les règles se déclenchent-elles sur nos journaux, et quelqu'un regarde-t-il.

Et la question à se poser avant d'ajouter de la détection : est-ce que je saurais dire, aujourd'hui, depuis combien de temps ma machine la plus critique n'a pas parlé ?

Sources

Installation de référence : Wazuh 4.13.1, vingt-deux agents, octobre 2026. Aucune machine, adresse ou identifiant interne n'est cité.

Reprendre contact

Un parc à superviser, un SIEM à remettre d'aplomb ou des alertes à trier ? Nous répondons aux questions techniques en rendez-vous, avec les mêmes chiffres que dans ces articles.

L'offre correspondante : l'audit de cybersécurité et les pare-feux Stormshield · l'hébergement, la sauvegarde et le data center local.

Appeler maintenant Devis gratuit