Offre Durée limitée : -10% sur tout le site avec le code WELCOME10

Auditer les connexions et commandes sur un VPS Linux avec auditd

Mis à jour le 3 octobre 2026 7 min de lecture 8 sections

Un VPS Linux est accessible depuis Internet via son adresse IP publique : plusieurs administrateurs s'y connectent en SSH depuis un terminal distant, des scripts shell s'exécutent la nuit, et un incident de sécurité peut passer inaperçu si aucun enregistrement fiable n'existe. Le démon auditd est le composant userspace du sous-système d'audit Linux/Unix : il écrit chaque événement noyau sur le disque depuis les connexions SSH jusqu'aux commandes exécutées en root, et les outils ausearch et aureport permettent de les interroger depuis la ligne de commande. Ce tutoriel explique comment l'installer, le configurer avec des règles ciblées et l'utiliser pour répondre à un incident sur un serveur VPS.

Pourquoi auditd plutôt que les journaux systèmes classiques ?

Les fichiers /var/log/auth.log ou journalctl -u ssh enregistrent les tentatives d'authentification SSH, mais ils ne tracent pas les commandes exécutées après la connexion distante, les fichiers ouverts par un processus ou les escalades de privilèges. Le démon auditd intercepte les événements directement dans le noyau Linux/Unix : même si un attaquant modifie ses traces applicatives via un script shell, les enregistrements noyau restent intacts. C'est pourquoi auditd est la base technique des audits de conformité PCI-DSS et CIS Benchmarks sur un serveur VPS Linux.

Sur un serveur VPS administré par plusieurs utilisateurs depuis leur terminal, savoir qui a exécuté quelle commande dans son shell, modifié quel fichier de configuration ou escaladé ses privilèges est essentiel pour répondre à un incident de sécurité ou pour prouver la conformité d'une infrastructure.

Installer auditd sur Ubuntu et Debian

Sur la quasi-totalité des distributions Ubuntu et Debian récentes, le paquet est disponible dans les dépôts officiels. L'installation ne nécessite aucun pré-requis particulier hormis les droits root. Depuis votre terminal connecté au serveur VPS Linux :

sudo apt update
sudo apt install auditd audispd-plugins -y

Le daemon démarre automatiquement via systemd. Pour vérifier l'état du service et le démarrer si besoin, utilisez la commande suivante :

sudo systemctl status auditd
sudo systemctl enable --now auditd

Les fichiers de configurations se trouvent dans /etc/audit/ : auditd.conf contrôle le comportement du daemon (taille des journaux, action en cas de disque plein), et les fichiers dans /etc/audit/rules.d/ définissent ce qui est tracé. Les paquets audispd-plugins fournissent des greffons pour transmettre les événements à des systèmes de sauvegardes centralisés via une connexion distante.

Configurer les règles d'audit essentielles

Les règles sont chargées par l'utilitaire auditctl au démarrage depuis les fichiers dans /etc/audit/rules.d/. Créez un fichier de règles personnalisées pour votre serveur VPS. Dans votre terminal, exécutez :

sudo nano /etc/audit/rules.d/10-securite-vps.rules

Ajoutez les règles suivantes, chacune justifiée par un cas d'usage réel :

# Supprimer toutes les règles existantes et définir la taille du backlog
-D
-b 8192

# Tracer toutes les authentications (succès et échecs SSH, su, sudo)
-w /var/log/auth.log -p wa -k auth_events
-w /var/log/secure -p wa -k auth_events

# Tracer les escalades de privilèges via sudo
-w /usr/bin/sudo -p x -k privilege_escalation
-w /usr/bin/su -p x -k privilege_escalation

# Tracer les modifications des fichiers de configuration sensibles
-w /etc/passwd -p wa -k identity_changes
-w /etc/shadow -p wa -k identity_changes
-w /etc/sudoers -p wa -k sudoers_changes
-w /etc/ssh/sshd_config -p wa -k sshd_config

# Tracer l'exécution de commandes shell en tant que root
-a always,exit -F arch=b64 -F euid=0 -S execve -k root_commands
-a always,exit -F arch=b32 -F euid=0 -S execve -k root_commands

# Verrouiller la configuration (aucun changement possible sans redémarrage)
-e 2

La directive -e 2 verrouille la configuration en mémoire : toute tentative de modification par un admin sera auditée et refusée jusqu'au prochain restart. Sur un serveur VPS Linux en production, c'est la recommandation de la page man auditctl(8).

Pour recharger les règles sans restart du serveur, utilisez la commande suivante dans votre terminal :

sudo augenrules --load

Vérifiez que les règles sont bien configurées et actives :

sudo auditctl -l
sudo auditctl -s

Le champ lost dans la sortie indique combien d'événements ont été perdus faute de CPU disponible pour les traiter : s'il est non nul, augmentez la valeur -b du backlog.

Interroger les journaux avec ausearch

L'outil ausearch interroge les journaux du daemon d'audit depuis le terminal. Chaque option forme une condition ET : plusieurs options resserrent la recherche. Il n'y a pas d'interface graphique ni de panel : tout se fait via le shell.

Lister tous les événements d'authentification des dernières 24 heures, avec interprétation des UID en noms d'utilisateur :

sudo ausearch -k auth_events --start today -i

Rechercher toutes les commandes shell exécutées en root depuis hier :

sudo ausearch -k root_commands --start yesterday -i

Rechercher les modifications des fichiers de configuration critiques :

sudo ausearch -k sudoers_changes -i

Filtrer par UID d'un admin pour n'afficher que les événements d'un nom d'utilisateur donné :

sudo ausearch -ua 1001 -i

L'option -i traduit les identifiants numériques (UID, GID, syscall) en texte lisible depuis votre terminal. Sans elle, les événements restent en format brut, ce qui est utile pour les scripts d'automatisation et les pipelines de sauvegardes de logs.

Générer des rapports synthétiques avec aureport

L'outil aureport produit des résumés statistiques à partir des mêmes journaux d'audit. Il est plus adapté à la supervision quotidienne d'un serveur VPS qu'à l'investigation sur un événement précis.

Résumé des authentifications sur la journée en cours :

sudo aureport --auth --start today

Résumé des exécutables appelés par les administrateurs dans leur shell, avec interprétation :

sudo aureport -x -i --start today

Rapport sur les anomalies détectées (règles d'accès violées, appels système refusés, configurations modifiées sans autorisation) :

sudo aureport --anom

Rapport sur les changements de configurations du daemon d'audit lui-même :

sudo aureport --config

Cas pratique : retrouver qui a modifié /etc/sudoers

Voici la séquence complète pour répondre à un incident sur un VPS Linux : un admin signale depuis son terminal que ses droits sudo ont disparu.

  1. Recherchez les événements liés à sudoers avec la clé configurée dans les règles d'audit :
    sudo ausearch -k sudoers_changes -i --start this-month
  2. Repérez le timestamp et l'UID de l'événement SYSCALL correspondant.
  3. Affinez sur cet administrateur et cette plage horaire :
    sudo ausearch -ul 1002 --start 10/01/2026 --end 10/03/2026 -i
  4. Examinez l'événement complet dans votre terminal : le champ exe= indique le binaire utilisé dans le shell, comm= le nom du processus et key= confirme la règle déclenchée. Le champ addr= indique l'adresse IP source de la connexion distante d'où la commande a été émise.

Cette trace noyau est indépendante des journaux applicatifs, ce qui la rend fiable même si l'utilisateur a tenté de désactiver ses traces dans son shell ou dans les journaux systemd.

Impact sur les performances et bonnes pratiques

Le daemon auditd introduit un overhead noyau proportionnel au nombre de syscalls tracés. Sur un serveur VPS hébergeant une application à fort I/O ou un serveur de jeu avec Nginx en reverse proxy, quelques précautions limitent cet impact sur le CPU :

  • Utilisez des clés (-k) précises plutôt que de tracer tous les appels execve sans filtre. Moins de règles actives = moins d'événements générés et moins de pression sur la RAM.
  • Ajustez la taille du backlog (-b 8192 dans les règles) : si le buffer noyau est régulièrement saturé, augmentez-le. La commande suivante affiche les statistiques depuis le terminal : sudo auditctl -s.
  • Configurez la rotation des journaux dans /etc/audit/auditd.conf : les paramètres max_log_file (taille en Mo) et num_logs (nombre de fichiers de sauvegardes conservés) évitent la saturation du disque SSD.
  • Désactiver le traçage des processus à fort volume comme cron si leurs événements ne présentent pas d'intérêt de sécurité, via une règle -A exclude,always -F exe=/usr/sbin/cron.

Intégrer auditd dans votre stratégie de sécurité VPS

Le daemon auditd est un composant parmi plusieurs sur un serveur VPS Linux durci. Il se complète naturellement avec d'autres outils de sécurité installables depuis le terminal :

Si vous utilisez un VPN pour administrer votre VPS depuis un terminal distant ou si vous hébergez des services exposés sur des ports spécifiques avec Nginx ou Git, auditd vous permettra de tracer chaque interaction avec vos fichiers de configurations sensibles. Sur les serveurs hébergés chez ElypseCloud, l'accès root complet vous permet d'installer et configurer le daemon auditd librement.

Besoin d'un serveur VPS Linux avec accès root complet pour déployer auditd et sécuriser votre administration système depuis un terminal ? Découvrez les offres ElypseCloud.

Découvrir nos VPS Linux