Configurer max_log_file_action d'auditd à l'atteinte de la taille maximale du journal
Définit max_log_file_action = keep_logs dans /etc/audit/auditd.conf afin que les journaux d'audit ne soient jamais écrasés lorsqu'un fichier atteint sa taille limite.
Vérifié sur le contenu d’un fichier de configuration persistant, la source de vérité qui survit aux redémarrages.
Un mapping est une référence croisée vers l’endroit où chaque norme situe cette exigence, ancrée et recoupée, pas une affirmation d’équivalence. Un check réussi est une preuve vers ces références, comment le lire.
Pourquoi cette règle
Lorsqu'un fichier de journal d'audit atteint max_log_file, auditd doit décider quoi faire. keep_logs effectue une rotation sans jamais supprimer les anciens journaux, de sorte qu'aucun historique d'audit n'est détruit silencieusement, essentiel pour les systèmes devant conserver une piste complète ou exporter les journaux avant de récupérer de l'espace. L'option plus faible rotate récupère l'espace automatiquement mais supprime les données les plus anciennes ; keep_logs privilégie la rétention en laissant la gestion de l'espace à un processus externe et en évitant la perte accidentelle de preuves.
Ce que vérifie Pavois
Pavois lit la directive effective max_log_file_action dans /etc/audit/auditd.conf et exige keep_logs. Cette valeur pilote le comportement de rotation du démon ; la directive configurée est donc l'indicateur fiable du risque de perte de journaux.
describe command('grep -qiE "^[[:space:]]*max_log_file_action[[:space:]]*=[[:space:]]*rotate" /etc/audit/auditd.conf && grep -qiE "^[[:space:]]*num_logs[[:space:]]*=[[:space:]]*[1-9]" /etc/audit/auditd.conf && echo ok || echo ko') do
its('stdout.strip') { should eq 'ok' }
endComment vérifier qu’elle est appliquée
Exécutez grep -i '^[[:space:]]*max_log_file_action' /etc/audit/auditd.conf. Sortie attendue : max_log_file_action = keep_logs.
Inspecter et investiguer
Les fichiers ayant subi une rotation apparaissent à côté de /var/log/audit/audit.log (par ex. audit.log.1) ; les actions de rotation et les avertissements liés à l'espace s'affichent dans journalctl -u auditd.
Remédiation
Le plan de durcissement de Pavois écrit max_log_file_action = keep_logs dans /etc/audit/auditd.conf (ressource conf_line) puis notifie le service auditd pour rechargement. Appliquez-le avec pavois harden apply.
Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :
| command | sed -ri 's/^[[:space:]]*max_log_file_action.*/max_log_file_action = ROTATE/' /etc/audit/auditd.conf; grep -qiE '^[[:space:]]*num_logs' /etc/audit/auditd.conf && sed -ri 's/^[[:space:]]*num_logs.*/num_logs = 20/' /etc/audit/auditd.conf || echo 'num_logs = 20' >> /etc/audit/auditd.conf; systemctl kill -s SIGHUP auditd 2>/dev/null; true |
|---|---|
| name | auditd-rotate |
| not_if | grep -qiE '^[[:space:]]*max_log_file_action[[:space:]]*=[[:space:]]*rotate' /etc/audit/auditd.conf && grep -qiE '^[[:space:]]*num_logs[[:space:]]*=[[:space:]]*[1-9]' /etc/audit/auditd.conf |
| resource | exec |
| service | auditd |
pavois harden plan localoù la cible est local, un alias SSH user@hôte, ou un conteneur , Docs
Impact & précautions
keep_logs ne récupère jamais d'espace de lui-même : les journaux d'audit grossissent jusqu'à saturer la partition si rien ne les exporte ou ne les purge, moment où disk_full_action/space_left_action prennent le relais (pouvant arrêter l'hôte). Précaution : placez les journaux d'audit sur une partition dédiée et supervisée, et mettez en place un export ou une rotation/archivage externe avant d'activer keep_logs. Associez cette règle à space_left_action/admin_space_left_action pour être alerté bien avant l'épuisement du disque.
Mapping des normes
| Norme | Référence | Type | Version | Confiance |
|---|---|---|---|---|
| CIS | 6.2.2.2, 6.3.2.2 | direct | per OS, see the benchmark table | haute |
| NIST | AU-5(1), AU-5(2), AU-5(4), AU-5(b), CM-6(a) | support | 800-53 Rev 5 · 800-171 Rev 2 (pinned) | moyenne |
| PCI DSS | 10.5.1 | support | 4.0.1 | moyenne |
Chaque référence est une référence croisée ancrée dans le benchmark amont et recoupée avec le SCAP Security Guide et ansible-lockdown, pas une affirmation d’équivalence. Direct = une exigence prescriptive au niveau de la ligne ; support = une famille de contrôle abstraite (NIST) vers laquelle le check apporte une preuve. Comment lire un mapping.