auditd
À quoi il sert
Le noyau Linux contient un sous-système d'audit qui produit un enregistrement à chaque événement correspondant à une règle : exécution d'un programme, écriture dans un fichier sensible, changement d'identité. auditd, le démon de l'espace utilisateur, lit ces enregistrements, les écrit dans /var/log/audit/audit.log et les transmet à des greffons (vers syslog, vers une machine distante). Autour de lui : auditctl charge les règles et lit l'état du noyau, augenrules assemble les fichiers de /etc/audit/rules.d/, ausearch et aureport cherchent dans le journal et en tirent des synthèses. Chaque événement porte l'identité de connexion (auid), qui survit à sudo et à su : on sait qui a vraiment agi.
Quand le choisir
Quand il faut prouver qui a fait quoi et quand sur un serveur : imputabilité des actions d'administration, exigences de clients publics ou de NIS2, enquête après incident. Le guide BP-028 de l'ANSSI le recommande au niveau renforcé. Il se complète par un outil de scellement comme AIDE, qui dit ce qui a changé sans dépendre des journaux, et par l'enregistrement des sessions sudo. Il ne voit que ce que ses règles couvrent : sans règle, presque rien n'est tracé.
Points d'attention
- Écrivez les règles persistantes dans
/etc/audit/rules.d/*.ruleset chargez-les avecaugenrules --load; ne modifiez jamais/etc/audit/audit.rules, qui est généré. - Donnez une clé (
-kou-F key=) à chaque règle, sinon personne ne saura retrouver ses événements, et placez-F arch=b64avant-S. - La forme
-west déclarée dépréciée dans la version 4 d'audit (Debian 13) ; la forme-a always,exit -F path=... -F perm=waest acceptée partout. -e 2rend la configuration immuable jusqu'au redémarrage : posez-le en dernier, une fois les règles validées.- Une règle trop large (tous les
execve, tous les accès à/var) noie le journal et ralentit la machine.auditd.confarbitre entre disponibilité et complétude quand le disque se remplit (disk_full_action) : décidez-le, et placez/var/log/auditsur un système de fichiers dédié. - Un journal resté sur la machine ne vaut rien face à un attaquant root : envoyez les événements au fil de l'eau vers un collecteur (greffon syslog ou
audisp-remote). - Les versions diffèrent : audit 3.1.2 sur Ubuntu 24.04, 4.0.2 sur Debian 13, où le chargement des règles passe par l'unité
audit-rules.service.
Par où commencer
La leçon Tracer et contrôler l'intégrité : auditd et AIDE du cours Linux : administration système, qui écrit les règles d'audit des serveurs de Signalements, lit un événement brut et retrouve l'auteur d'une action avec ausearch. Puis les pages de manuel auditctl(8), audit.rules(7), auditd.conf(5) et ausearch(8), et le dépôt du projet, qui fournit des règles d'exemple.