Tutoriel Linux

Auditd sous Linux : tracer la prochaine modification d’un fichier sensible

Débutant3 min de lecture

Vous voulez savoir qui a modifié un fichier sensible sur un serveur Linux, et surtout quel programme a effectué l’opération ? auditd peut enregistrer cette modification au niveau du noyau. Le plus propre consiste à poser une règle temporaire sur un fichier précis, reproduire l’action, puis lire l’événement avec ausearch avant de retirer la règle.

Installer auditd et vérifier le service

Sur Debian ou Ubuntu, installez les paquets nécessaires :

sudo apt update
sudo apt install auditd audispd-plugins

Vérifiez ensuite que le service fonctionne :

sudo systemctl enable --now auditd
sudo systemctl status auditd --no-pager
sudo auditctl -s

Si vous travaillez sur un serveur distant, faites cette manipulation pendant une fenêtre où vous pouvez lire les journaux. Une règle trop large peut remplir rapidement le journal d’audit.

Surveiller un fichier précis

Créez d’abord un fichier de test. Évitez de commencer directement par /etc/shadow ou un fichier de configuration critique :

sudo install -m 0640 /dev/null /tmp/auditd-test.conf
sudo auditctl -w /tmp/auditd-test.conf -p wa -k fichier_sensible

L’option -w définit le chemin surveillé. Avec -p wa, auditd journalise les écritures et les changements d’attributs. Le mot-clé -k vous permet de retrouver rapidement les événements associés.

Modifiez maintenant le fichier dans une autre commande :

echo "test auditd" | sudo tee -a /tmp/auditd-test.conf >/dev/null
sudo chmod 0600 /tmp/auditd-test.conf

Lire l’utilisateur et le programme concernés

Recherchez les événements associés à la clé choisie :

sudo ausearch -k fichier_sensible -i

Le résultat contient notamment l’heure, l’utilisateur, l’UID, le processus et l’exécutable impliqué. L’option -i rend les valeurs plus lisibles, par exemple en remplaçant certains UID par des noms.

Pour obtenir un résumé des événements, utilisez aureport :

sudo aureport -f -i
sudo aureport -x -i

Le premier rapport s’intéresse aux fichiers. Le second aide à repérer les exécutables associés aux événements. Pour un diagnostic précis, revenez toujours à la sortie brute de ausearch : un résumé ne remplace pas les détails de l’événement.

Retirer la règle après le test

Une surveillance temporaire ne doit pas rester active par oubli. Supprimez la règle avec le même chemin et les mêmes paramètres :

sudo auditctl -W /tmp/auditd-test.conf
sudo auditctl -l

La commande auditctl -l permet de vérifier que la règle n’apparaît plus. Si vous devez conserver une règle après un redémarrage, écrivez-la dans un fichier sous /etc/audit/rules.d/, puis chargez-la avec augenrules --load. Pour un simple diagnostic, la règle temporaire évite de transformer le serveur en générateur de logs.

Pour aller plus loin, consultez les pages de manuel de auditctl, ausearch et aureport. Les articles sur AIDE et l’intégrité des fichiers, les droits SUID/SGID et les journaux du dernier démarrage complètent ce diagnostic, mais ne répondent pas exactement au même besoin.

Tux surveille la modification d’un fichier sensible sur un serveur Linux
Surveiller un fichier précis avec auditd avant de rechercher l’origine d’une modification.