Master Audit Rules: Enterprise Hardening (Artikel 338)
Die ultimative Audit-Konfiguration für Enterprise-Linux. Erfahren Sie den Aufbau eines umfassenden Regelsatzes nach CIS-Benchmarks zur lückenlosen Überwachung kritischer Infrastrukturen.
# Master Audit Rules: Den Server lückenlos überwachen
TL;DR / Management Summary Ein leeres Audit-Log ist kein Zeichen für Sicherheit, sondern für Blindheit. In diesem Modul stellen wir einen Enterprise Master-Regelsatz zusammen, der alle kritischen Aspekte eines Linux-Servers abdeckt: Benutzer-Änderungen, Netzwerk-Manipulationen, unautorisierte Dateizugriffe und Kernel-Eingriffe. Basierend auf den CIS-Benchmarks bauen wir eine Konfiguration, die jedem Security-Audit (ISO 27001) standhält.
# 1. Einführung & Architektur
Strukturierte Überwachung.
Wir teilen unsere Audit-Regeln in vier funktionale Kategorien ein, um bei der späteren Analyse (ausearch) effizient filtern zu können.
# Die Regel-Kategorien (Mermaid)
graph TD
A[Master Audit Rules] --> B[Identity: User/Group Changes]
A --> C[Network: Sockets & Config]
A --> D[Filesystem: sensitive etc / bin]
A --> E[System: Kernel Modules / Time]
B --> B1[Tag: auth_changes]
C --> C1[Tag: net_activity]
D --> D1[Tag: integrity_check]
E --> E1[Tag: core_system]
# 2. Der Enterprise Regelsatz (audit.rules)
Kopieren, anpassen, härten.
Datei: /etc/audit/rules.d/99-master.rules
# 1. Überwachung von Identitätsänderungen
-w /etc/group -p wa -k identity
-w /etc/passwd -p wa -k identity
-w /etc/shadow -p wa -k identity
-w /etc/sudoers -p wa -k identity
# 2. Netzwerk- und Hostname-Manipulationen
-a always,exit -F arch=b64 -S sethostname,setdomainname -k system_config
-w /etc/issue -p wa -k system_config
-w /etc/hosts -p wa -k system_config
-w /etc/network/ -p wa -k net_config
# 3. Datei-Integrität (Kernel-Level)
# Überwache das Löschen oder Umbenennen von Dateien durch unautorisierte User
-a always,exit -F arch=b64 -S unlink,unlinkat,rename,renameat -F auid>=1000 -F auid!=4294967295 -k delete_ops
# 4. Privilegierte Ausführungen (SUID)
# Überwache jeden SUID-Aufruf
-a always,exit -F arch=b64 -S execve -C uid!=euid -F euid=0 -k elevated_privs
# 3. Day-2 Operations: Automatisierte Berichte
Wöchentliche Auswertung.
Nutzen Sie aureport, um aus dem Rauschen der Millionen Events handlungsorientierte Berichte zu erstellen.
# Der ‘Chef-Bericht’
# Zusammenfassung der letzten Woche: Fehlgeschlagene Logins, Sudo-Versuche, Config-Änderungen
aureport --start yesterday --summary
# 4. Troubleshooting & “War Stories”
Wenn das Log den Dienst quittiert.
# Story 1: “Der CPU-Engpass bei Audit-Events”
Symptom: Der Server hat massiv Load, obwohl keine Last anliegt. auditd verbraucht 40% CPU.
Ursache: Zu breite Regeln. Ein -w /var/www -p r loggt jeden Lesezugriff auf die Webseite.
Lösung: Überwachen Sie niemals Lesezugriffe (r) in viel genutzten Verzeichnissen. Beschränken Sie sich auf Schreibzugriffe (w) und Attribut-Änderungen (a).
# Story 2: “Der verlorene Kontext”
Symptom: ausearch liefert Treffer, aber das Feld auid (Audit User ID) zeigt nur -1 oder 4294967295.
Ursache: Die Verbindung wurde durch einen Dämon (z.B. einen Webserver oder Cron) initiiert, der die ursprüngliche Login-ID des Benutzers nicht weitergegeben hat.
Lösung: Das ist normales Verhalten für Systemdienste. Nutzen Sie in diesem Fall das Feld uid (aktuelle ID) und verknüpfen Sie es mit dem Zeitstempel der Session-Eröffnung.
# 5. Fazit & Empfehlung
- CIS Compliance: Dieser Regelsatz deckt ca. 80% der CIS-Anforderungen ab. Ergänzen Sie Hardware-spezifische Regeln bei Bedarf.
- Tags: Nutzen Sie konsequent
-k <tag>. Ohne Tags ist die Suche inaudit.logeine Sisyphusarbeit. - Retention: Sorgen Sie dafür, dass
auditdseine Logs rotiert, bevor die Disk voll ist:max_log_file = 100in derauditd.conf.
# Anhang: Die ‘Golden Rules’ Checkliste
| Ziel | Regel-Snippet | Tag |
|---|---|---|
| Systemstart | -w /sbin/insmod -p x |
modules |
| Sudoers | -w /etc/sudoers -p wa |
priv_esc |
| Passwd | -w /etc/passwd -p wa |
identity |
| Login/Logout | -w /var/log/lastlog -p wa |
logins |
| Zeit-Änderung | -S settimeofday,adjtimex |
time_change |
| Network-Sys | -S socket,connect |
net_activity |
| App-Config | -w /etc/nginx/ -p wa |
web_config |
| Kernel Tuning | -w /etc/sysctl.conf -p wa |
kernel_tuning |