Commande auditd Linux
Encyclopédie des commandes Linux
auditd est le démon d'audit sur les systèmes Linux et est le composant central du framework d'audit Linux. Ses principales fonctions incluent la surveillance et l'enregistrement des activités du système, notamment :
- Accès aux fichiers et répertoires
- Appels système
- Connexion/déconnexion utilisateur
- Exécution de commandes privilégiées
- Modifications de la configuration système
Ces journaux d'audit sont très importants pour la surveillance de la sécurité du système, les contrôles de conformité et le dépannage.
Composants principaux d'auditd
Démon auditd
Un démon fonctionnant en permanence chargé de collecter et stocker les événements d'audit.
Outil auditctl
Un outil en ligne de commande utilisé pour configurer les règles d'audit et contrôler le système d'audit.
Outil ausearch
Un outil en ligne de commande utilisé pour interroger les journaux d'audit.
Outil aureport
Génère des rapports de synthèse des journaux d'audit.
Installation et démarrage d'auditd
Installer auditd
Sur la plupart des distributions Linux, auditd est généralement préinstallé. Si une installation manuelle est nécessaire :
Exemple
sudo apt-get install auditd
# CentOS/RHEL
sudo yum install audit
Démarrer et activer le service auditd
Exemple
sudo systemctl start auditd
# Activer le lancement au démarrage
sudo systemctl enable auditd
# Vérifier l'état du service
sudo systemctl status auditd
Fichier de configuration d'auditd
Le fichier de configuration principal d'auditd se trouve à/etc/audit/auditd.confet contient les paramètres importants suivants :
| Paramètre | Description | Valeur par défaut |
|---|---|---|
log_file |
Chemin du fichier journal d'audit | /var/log/audit/audit.log |
max_log_file |
Taille maximale d'un seul fichier journal (MB) | 8 |
num_logs |
Nombre de fichiers journaux à conserver | 5 |
flush |
Mode d'écriture du journal | INCREMENTAL |
freq |
Fréquence de synchronisation si flush=INCREMENTAL | 20 |
Après avoir modifié la configuration, redémarrez le service :
sudo systemctl restart auditd
Détails de la commande auditctl
auditctlest l'outil principal pour configurer les règles d'audit.
Syntaxe de base
auditctl [选项] [规则]
Options courantes
| Option | Description |
|---|---|
-l |
Lister toutes les règles actuelles |
-D |
Supprimer toutes les règles |
-s |
Afficher l'état du système d'audit |
-R <file> |
Charger les règles à partir d'un fichier |
Types de règles
Règles du système de fichiers: Surveiller l'accès aux fichiers/répertoires
Exemple
auditctl -w /etc/passwd -p rwxa -k passwd_access
-w: Surveiller le chemin-p: Permissions (r=lecture, w=écriture, x=exécution, a=modification d'attribut)-k: Clé (pour le filtrage des journaux)
Règles d'appels système: Surveiller des appels système spécifiques
Exemple
auditctl -a always,exit -F arch=b64 -S execve -F path=/usr/bin/sudo -k sudo_cmds
-a: Action et liste (always,exit enregistre lors de la sortie d'un appel système)-F: Conditions de filtrage-S: Nom de l'appel système
Règles utilisateur: Surveiller le comportement d'un utilisateur spécifique
Exemple
auditctl -a always,exit -S unlink -S unlinkat -S rename -S renameat -F auid>=500 -F auid!=4294967295 -k delete_files
Analyse des journaux d'audit
Commande ausearch
Utilisé pour interroger les journaux d'audit.
Exemple
ausearch -k passwd_access
# Rechercher dans les journaux par heure spécifique
ausearch -ts today
ausearch -ts 10:00:00 -te 11:00:00
# Rechercher les journaux par utilisateur spécifique
ausearch -ua 1000
Commande aureport
Génère des rapports de synthèse des journaux d'audit.
Exemple
aureport -l
# Générer un rapport d'accès aux fichiers
aureport -f
# Générer un rapport récapitulatif de tous les événements
aureport --summary
Exemples d'applications pratiques
Exemple 1 : Surveiller les fichiers sensibles
Exemple
auditctl -w /etc/shadow -p wa -k shadow_mod
# Afficher les journaux associés
ausearch -k shadow_mod | less
Exemple 2 : Surveiller l'élévation de privilèges utilisateur
Exemple
auditctl -a always,exit -F arch=b64 -S execve -F path=/usr/bin/sudo -k priv_esc
auditctl -a always,exit -F arch=b64 -S execve -F path=/usr/bin/su -k priv_esc
# Générer un rapport d'élévation de privilèges
aureport --start today --event --summary -i | grep priv_esc
Exemple 3 : Surveiller la connexion SSH
Exemple
auditctl -a always,exit -F arch=b64 -S execve -F path=/usr/sbin/sshd -k sshd_login
# Afficher les enregistrements de connexion SSH
ausearch -k sshd_login | grep 'acct="user"' | grep 'res=success'
Bonnes pratiques
Configurer correctement la rotation des journaux: S'assurer que les journaux ne remplissent pas le disque
Exemple
max_log_file = 50
num_logs = 10
Gérer de manière centralisée les règles d'audit: Enregistrer les règles dans un fichier
Exemple
-w /etc/passwd -p wa -k passwd_changes
-w /etc/group -p wa -k group_changes
# Charger les règles
auditctl -R /etc/audit/rules.d/my.rules
Examinez régulièrement les journaux: Configurez une tâche cron pour analyser régulièrement les journaux
Exemple
0 0 * * * /usr/sbin/aureport --summary --start yesterday --end now | mail -s "Rapport d'audit quotidien" admin@example.com
Protéger les journaux d'audit: Empêcher l'altération des journaux
Exemple
chown root:root /var/log/audit/audit.log
Dépannage des problèmes courants
Problème 1 : échec du démarrage du service auditd
Solution:
- Vérifiez la syntaxe du fichier de configuration :
auditd -f /etc/audit/auditd.conf - Vérifiez les journaux système :
journalctl -u auditd
Problème 2 : aucun journal d'audit généré
Solution:
- Confirmez que le service est en cours d'exécution :
systemctl status auditd - Vérifiez si les règles sont chargées :
auditctl -l - Vérifiez la prise en charge du noyau :
grep "audit" /boot/config-$(uname -r)
Problème 3 : Fichiers journaux trop volumineux
Solution:
- Ajustez la taille et la quantité des journaux : modifiez
/etc/audit/auditd.confinmax_log_fileetnum_logs - Activez la compression des journaux : ajoutez
compress = yesau fichier de configuration
Résumé
auditd est un outil d'audit puissant pour les systèmes Linux. Avec une configuration appropriée, vous pouvez :
- Surveiller l'accès aux fichiers et répertoires critiques
- Suivre l'utilisation des commandes privilégiées
- Enregistrer les connexions des utilisateurs et les activités du système
- Répondre aux exigences de conformité
Maîtriser auditd est essentiel pour les administrateurs système et les professionnels de la sécurité ; cela vous aide à mieux comprendre et protéger votre système Linux.
Autres extensions