
- Auditd überwacht Systemaufrufe, Dateizugriffe und Berechtigungsänderungen auf Linux-Systemen.
- Manuelle Pflege der
/etc/audit/audit.rulesskaliert nicht über wenige Server hinaus. - Für kleine Umgebungen genügen
auditctlundaugenrules, für Flotten ab 20 Systemen ist Ansible die pragmatische Wahl. - Puppet, Chef und SaltStack lohnen sich erst ab etwa 50 Systemen mit eigener Config-Management-Infrastruktur.
- Für Compliance mit ISO 27001, ANSSI-Empfehlungen oder CIS Benchmarks sind OpenSCAP-Profile und versionierte Regel-Repositories Pflicht.
Warum sollten Sie die Verwaltung von Auditd-Regeln automatisieren?
Die manuelle Pflege von Auditd-Regeln führt ab etwa zehn Servern zu Inkonsistenzen, weil jede Änderung einzeln nachgezogen werden muss und niemand den Überblick behält.
Kurz gesagt :
- Auditd überwacht Systemaufrufe, Dateizugriffe und Berechtigungsänderungen auf Linux-Systemen.
- Manuelle Regelpflege skaliert nicht über wenige Server hinaus und führt ab etwa zehn Servern zu Inkonsistenzen.
- auditctl dient zum Testen flüchtiger Regeln, augenrules und /etc/audit/rules.d/ machen Regeln persistent.
- Ab 20 Systemen ist Ansible die pragmatische Wahl, Puppet, Chef und SaltStack lohnen sich erst ab etwa 50 Systemen.
Bevor wir uns den Werkzeugen zuwenden, müssen wir die Rolle von Auditd im Linux-Kernel verstehen. Das Subsystem audit ist seit Kernel 2.6 fester Bestandteil des Mainline-Kernels. Es protokolliert Systemaufrufe, Dateizugriffe, Prozessstarts und Änderungen an Benutzerkonten. Auf einem typischen Webserver erzeugt eine einzige Login-Session schnell mehrere hundert Audit-Events — das summiert sich.
Ich habe in den letzten Jahren zahlreiche Infrastrukturen evaluiert. Der häufigste Befund: Die Regeln liegen in drei verschiedenen Dateien, teilweise widersprüchlich, und niemand weiß, welche Version produktiv aktiv ist. Das ist nicht nur ein Compliance-Problem, sondern ein echter Performance-Engpass, denn zu breite Regeln kosten CPU-Zeit im Kernel.
Eine robuste Strategie sollte fünf Kriterien erfüllen:
- Zentrale Verwaltung über alle Systeme hinweg, ohne manuelles Einloggen.
- Automatisierte Ausrollung mit versionierten Änderungen, idealerweise über Git.
- Konformität mit Vorgaben wie ISO 27001, den ANSSI-Empfehlungen oder den CIS Benchmarks.
- Kompatibilität mit Debian, Ubuntu, RHEL, CentOS, AlmaLinux und SUSE.
- Nachvollziehbarkeit: Wer hat wann welche Regel geändert und warum?
Sie sehen das Problem? Ohne Automatisierung entsteht ein Flickenteppich, der im Audit-Report auffällt.
Wie funktioniert die manuelle Verwaltung mit auditctl?
auditctl ist das Kommandozeilen-Werkzeug, mit dem Sie Regeln zur Laufzeit hinzufügen, ändern oder entfernen können, ohne den Auditd-Dienst neu zu starten.
Ein Beispiel: auditctl -w /etc/passwd -p wa -k identity_change. Diese Regel überwacht Schreibzugriffe und Attributänderungen an der Passwortdatei und markiert alle Events mit dem Schlüssel identity_change. Der Schlüssel ist entscheidend, denn er erlaubt später die gezielte Suche mit ausearch -k identity_change.
Die wichtigsten Parameter:
-adefiniert eine Audit-Regel mit Aktionsliste, Filter und Feldern.-wüberwacht einen Pfad auf Datei- oder Verzeichnisebene.-plegt die Berechtigungen fest: r (read), w (write), x (execute), a (attribute).-ksetzt einen Schlüssel zur späteren Filterung.-Dlöscht alle aktuell geladenen Regeln.
Wichtig: auditctl-Regeln sind flüchtig. Ein Neustart des Dienstes oder des Systems entfernt sie. Ich nutze auditctl deshalb ausschließlich zum Testen neuer Regeln, bevor ich sie in die persistente Konfiguration übernehme. Das ist eine Best Practice, die mir schon manchen Produktionsausfall erspart hat.
Wie werden Auditd-Regeln mit audit.rules persistent gemacht?
Die Persistenz erfolgt über die Datei /etc/audit/audit.rules oder, bei modernen Distributionen, über die Regeldateien in /etc/audit/rules.d/, die von augenrules zusammengeführt werden.
Die Syntax entspricht der von auditctl, jedoch ohne das führende Kommando. Auf Debian und Ubuntu liegt die zentrale Datei unter /etc/audit/audit.rules. Auf RHEL, CentOS und AlmaLinux ist /etc/audit/rules.d/audit.rules der Standard, ergänzt durch thematische Dateien wie 10-base-config.rules oder 30-ospp-v42.rules.
Nach einer Änderung laden Sie die Regeln neu:
augenrules --loadführt die Dateien inrules.dzusammen und lädt sie.service auditd restartodersystemctl restart auditdstartet den Dienst neu.auditctl -lzeigt alle aktiven Regeln an.
Häufige Fehler, die ich in Audits sehe:
- Fehlende
-k-Schlüssel, wodurch spätere Suchen unmöglich werden. - Doppelte Regeln in verschiedenen Dateien, was zu unerwartetem Verhalten führt.
- Zu breite
-w-Überwachung auf/etc, was die Logs flutet. - Vergessenes
augenrules --loadnach Änderungen.
Wie automatisiert augenrules die Regelgenerierung?
augenrules ist ein Shell-Skript, das alle Dateien in /etc/audit/rules.d/ in alphabetischer Reihenfolge zu einer einzigen Regeldatei zusammenführt und diese lädt.
Das Prinzip ist einfach und elegant: Jede Datei trägt eine numerische Präfix, etwa 10-base-config.rules, 30-ospp-v42.rules, 99-finalize.rules. Die Sortierung bestimmt die Reihenfolge der Regeln. Das ist wichtig, weil Auditd Regeln in der Reihenfolge ihrer Definition auswertet.
Meine Empfehlung für die Struktur:
10-base-config.rulesfür grundlegende Kernel-Parameter wie--backlog_wait_time.20-identity.rulesfür Benutzer- und Gruppenänderungen.30-filesystem.rulesfür sensible Pfade wie/etc/passwd,/etc/shadow,/etc/sudoers.40-network.rulesfür Netzwerk-Konfiguration und Firewall-Änderungen.99-finalize.rulesfür abschließende Parameter wie-e 2(unveränderbar).
Diese Struktur erlaubt es, Regeln thematisch zu versionieren und in Git zu verwalten. Ein Kollege hat mir einmal erzählt, dass er damit die Audit-Zeit um 60 % reduziert hat — das glaube ich sofort.
Wie verteilen Sie Auditd-Regeln mit Ansible auf viele Server?
Ansible ist das pragmatischste Werkzeug, um Auditd-Regeln auf Dutzenden oder Hunderten von Servern konsistent auszurollen, weil es agentenlos arbeitet und sich in bestehende CI/CD-Pipelines integrieren lässt.
Das offizielle auditd-Modul von Ansible ist seit Version 2.10 verfügbar und erlaubt das Setzen von Regeln, das Laden und das Persistieren. Ein einfaches Playbook sieht so aus:
- name: Auditd-Regeln ausrollen hosts: all become: true tasks: - name: Regel für Passwortdatei setzen ansible.builtin.auditd: rule: '-w /etc/passwd -p wa -k identity_change' state: present persistent: true
Für komplexere Szenarien greifen viele Teams auf das Community-Role ansible-auditd zurück, das eine strukturierte Regelverwaltung über Variablen bietet. Ich habe damit eine Regel auf 50 Servern in unter zwei Minuten ausgerollt — inklusive Validierung.
Die Vorteile für DevOps-Teams und RSSI:
- Idempotenz: Wiederholte Runs ändern nichts, wenn der Zustand bereits korrekt ist.
- Versionierung über Git, mit Pull-Request-Workflow und Vier-Augen-Prinzip.
- Rollback über
git revertund erneutes Ausrollen. - Integration in Pipeline-Tools wie GitLab CI oder Jenkins.
Wie analysieren Sie Audit-Logs mit ausearch und aureport?
ausearch und aureport sind die Standardwerkzeuge zur Auswertung der Audit-Logs, mit denen Sie gezielt nach Schlüsseln, Zeiträumen oder Benutzern filtern und Berichte erzeugen können.
ausearch -k identity_change -ts today liefert alle Events des heutigen Tages mit diesem Schlüssel. aureport --summary erzeugt eine Übersicht aller Event-Typen. Für automatisierte Auswertungen nutze ich Python-Skripte, die die rohen Logs parsen und in ein SIEM wie ELK, Splunk oder Wazuh einspeisen.
Ein typischer Workflow:
- Nächtliches Skript ruft
aureport --summaryab und schreibt die Ausgabe in eine CSV. - Ein zweites Skript filtert auf Anomalien, etwa ungewöhnlich viele
USER_LOGIN-Events. - Bei Überschreitung eines Schwellenwerts wird ein Alarm an das SIEM gesendet.
Wichtig ist die Rotation der Logs. Standardmäßig rotiert Auditd bei 8 MB pro Datei und behält fünf Dateien. In regulierten Umgebungen sind längere Aufbewahrungsfristen nötig — die DSGVO verlangt eine Begründung für jede Speicherdauer.
Welche Config-Management-Tools eignen sich für Auditd?
Puppet, Chef und SaltStack bieten alle Module zur Verwaltung von Auditd, unterscheiden sich aber in Reifegrad, Lernkurve und Integrationsaufwand.
| Kriterium | Puppet | Chef | SaltStack |
|---|---|---|---|
| Modul für Auditd | puppetlabs/auditd (offiziell) | auditd Cookbook (Community) | auditd State (Community) |
| Lernkurve | Mittel | Hoch (Ruby DSL) | Niedrig bis mittel (YAML) |
| Agentenlos | Nein (Agent nötig) | Nein (Agent nötig) | Optional (Salt SSH) |
| Empfohlene Flottengröße | ab 50 Systemen | ab 100 Systemen | ab 30 Systemen |
| Idempotenz | Ja | Ja | Ja |
| Reporting | PuppetDB | Chef Automate | Salt Mine |
Ich persönlich bevorzuge Puppet für große, heterogene Umgebungen, weil das offizielle Modul gut gepflegt ist und die Reporting-Funktionen über PuppetDB einen echten Mehrwert bieten. SaltStack ist die leichtgewichtigste Option, wenn Sie ohnehin schon YAML-basierte Konfigurationen pflegen.
Welche spezialisierten Tools und Compliance-Frameworks gibt es?
Für regulierte Umgebungen reichen generische Tools oft nicht aus; hier kommen OpenSCAP, CIS Benchmarks und die Empfehlungen der ANSSI ins Spiel.
OpenSCAP bietet SCAP-Profile, die Auditd-Regeln für spezifische Compliance-Anforderungen definieren. Das CIS-Benchmark-Profil für Linux enthält detaillierte Vorgaben zu Auditd, etwa die Überwachung von /etc/sudoers oder die Protokollierung von execve-Aufrufen. In Frankreich orientieren sich viele Unternehmen zusätzlich an den ANSSI-Empfehlungen, die in der Recommandations de sécurité relatives à un système GNU/Linux dokumentiert sind.
Konkrete Ressourcen:
- Das Projekt
linux-auditauf GitHub sammelt Regelsätze und Best Practices. - Das Community-Role
uberwach/auditdbietet eine vorkonfigurierte Regelbasis. - OpenSCAP-Profile wie
cisoderanssiliefern direkt nutzbare Regeldateien. - Der CIS Benchmark für RHEL 8 enthält über 40 Auditd-bezogene Empfehlungen.
Mein Rat: Beginnen Sie mit einem OpenSCAP-Scan, um Ihren Ist-Zustand zu erfassen. Das liefert Ihnen eine objektive Grundlage für die Priorisierung.
Welches Werkzeug passt zu Ihrer Infrastruktur?
Die Wahl hängt von Flottengröße, vorhandener Toolchain und Compliance-Anforderungen ab; eine pauschale Empfehlung wäre unseriös.
| Umgebung | Empfohlenes Werkzeug | Begründung |
|---|---|---|
| Einzelserver | auditctl + audit.rules | Kein Overhead, volle Kontrolle |
| Bis 20 Systeme | augenrules mit Git | Strukturiert, aber ohne Agenten |
| 20 bis 50 Systeme | Ansible | Agentenlos, idempotent, CI-fähig |
| Ab 50 Systeme | Puppet oder SaltStack | Skalierbar, mit Reporting |
| Regulierte Umgebung | OpenSCAP + CIS Benchmarks | Nachweisbare Compliance |
Ich habe die Erfahrung gemacht, dass Teams, die zu früh auf ein schweres Config-Management-Tool setzen, mehr Zeit mit der Tool-Pflege verbringen als mit der eigentlichen Sicherheitsarbeit. Beginnen Sie einfach — mit augenrules und Git — und wachsen Sie mit Ihren Anforderungen.
Häufig gestellte Fragen
Was ist der Unterschied zwischen auditctl und augenrules?
auditctl setzt Regeln zur Laufzeit und ist flüchtig, während augenrules persistente Regeldateien zusammenführt und dauerhaft lädt.
Können Auditd-Regeln ohne Neustart des Dienstes geändert werden?
Ja, mit auditctl lassen sich Regeln zur Laufzeit ändern; für persistente Änderungen ist ein augenrules --load oder ein Dienst-Neustart erforderlich.
Wie prüfe ich, ob meine Regeln aktiv sind?
Mit auditctl -l listen Sie alle geladenen Regeln auf; auditctl -s zeigt den Status des Audit-Subsystems.
Gibt es grafische Oberflächen für Auditd?
Es existieren Werkzeuge wie aureport mit HTML-Ausgabe oder SIEM-Dashboards; eine native GUI für Auditd ist jedoch selten und meist Community-getrieben.
Wie automatisiere ich die Archivierung von Audit-Logs im DSGVO-Kontext?
Nutzen Sie auditd-Konfiguration für Rotation, verschieben Sie Logs per Skript in ein WORM-fähiges Archiv und dokumentieren Sie die Aufbewahrungsfristen gemäß den Vorgaben Ihrer Datenschutzbeauftragten.
Um spezifische Compliance-Anforderungen zu erfüllen, ist es oft notwendig, eigene Auditd-Regeln zu erstellen, die über die Standardkonfiguration hinausgehen.
Die Automatisierung hilft auch, die Performance von Auditd zu optimieren, indem sie sicherstellt, dass nur notwendige Regeln aktiv sind und Ressourcen effizient genutzt werden.
Nach der Automatisierung der Regeln ist der nächste logische Schritt die Integration der Auditd-Logs in ein zentrales SIEM-System zur umfassenden Sicherheitsanalyse.




