Linux auditd-Befehl
auditd ist der Audit-Daemon auf Linux-Systemen und die Kernkomponente des Linux-Audit-Frameworks. Zu seinen Hauptfunktionen gehören die Überwachung und Aufzeichnung von Systemaktivitäten, darunter:
- Datei- und Verzeichniszugriff
- Systemaufrufe
- Benutzer-Anmeldung/-Abmeldung
- Ausführung privilegierter Befehle
- Änderungen der Systemkonfiguration
Diese Audit-Protokolle sind sehr wichtig für die Überwachung der Systemsicherheit, Compliance-Prüfungen und Fehlerbehebung.
auditd-Kernkomponenten
auditd-Daemon
Ein kontinuierlich laufender Daemon, der für das Sammeln und Speichern von Audit-Ereignissen verantwortlich ist.
auditctl-Werkzeug
Ein Befehlszeilenwerkzeug, mit dem Audit-Regeln konfiguriert und das Audit-System gesteuert werden.
ausearch-Werkzeug
Ein Befehlszeilenwerkzeug zum Abfragen von Audit-Protokollen.
aureport-Werkzeug
Erzeugt Zusammenfassungsberichte aus Audit-Protokollen.
auditd-Installation und Start
auditd installieren
Auf den meisten Linux-Distributionen ist auditd normalerweise vorinstalliert. Wenn eine manuelle Installation erforderlich ist:
Beispiel
sudo apt-get install auditd
# CentOS/RHEL
sudo yum install audit
auditd-Dienst starten und aktivieren
Beispiel
sudo systemctl start auditd
# Start beim Booten aktivieren
sudo systemctl enable auditd
# Dienststatus prüfen
sudo systemctl status auditd
auditd-Konfigurationsdatei
Die Hauptkonfigurationsdatei für auditd befindet sich unter/etc/audit/auditd.confund enthält die folgenden wichtigen Parameter:
| Parameter | Beschreibung | Standardwert |
|---|---|---|
log_file |
Pfad zur Audit-Logdatei | /var/log/audit/audit.log |
max_log_file |
Maximale Größe einer einzelnen Logdatei (MB) | 8 |
num_logs |
Anzahl der aufzubewahrenden Logdateien | 5 |
flush |
Protokoll-Schreibmodus | INCREMENTAL |
freq |
Wie oft synchronisiert werden soll, wenn flush=INCREMENTAL | 20 |
Nach dem Ändern der Konfiguration den Dienst neu starten:
sudo systemctl restart auditd
Details zum auditctl-Befehl
auditctlist das Hauptwerkzeug zum Konfigurieren von Audit-Regeln.
Grundlegende Syntax
auditctl [选项] [规则]
Häufige Optionen
| Option | Beschreibung |
|---|---|
-l |
Alle aktuellen Regeln auflisten |
-D |
Alle Regeln löschen |
-s |
Audit-Systemstatus anzeigen |
-R <file> |
Regeln aus einer Datei laden |
Regeltypen
Dateisystemregeln: Datei-/Verzeichniszugriff überwachen
Beispiel
auditctl -w /etc/passwd -p rwxa -k passwd_access
-w: Pfad überwachen-p: Berechtigungen (r=Lesen, w=Schreiben, x=Ausführen, a=Attributänderung)-k: Schlüssel (zur Protokollfilterung)
Systemaufruf-Regeln: Bestimmte Systemaufrufe überwachen
Beispiel
auditctl -a always,exit -F arch=b64 -S execve -F path=/usr/bin/sudo -k sudo_cmds
-a: Aktion und Liste (always,exit zeichnet beim Verlassen eines Systemaufrufs auf)-F: Filterbedingungen-S: Systemaufrufname
Benutzerregeln: Spezifisches Benutzerverhalten überwachen
Beispiel
auditctl -a always,exit -S unlink -S unlinkat -S rename -S renameat -F auid>=500 -F auid!=4294967295 -k delete_files
Audit-Log-Analyse
ausearch-Befehl
Wird zum Abfragen von Audit-Protokollen verwendet.
Beispiel
ausearch -k passwd_access
# Protokolle nach spezifischer Zeit durchsuchen
ausearch -ts today
ausearch -ts 10:00:00 -te 11:00:00
# Protokolle nach bestimmtem Benutzer durchsuchen
ausearch -ua 1000
aureport-Befehl
Erzeugt Zusammenfassungsberichte aus Audit-Protokollen.
Beispiel
aureport -l
# Bericht über Dateizugriffe generieren
aureport -f
# Zusammenfassung aller Ereignisse generieren
aureport --summary
Praktische Anwendungsbeispiele
Beispiel 1: Sensible Dateien überwachen
Beispiel
auditctl -w /etc/shadow -p wa -k shadow_mod
# Zugehörige Protokolle anzeigen
ausearch -k shadow_mod | less
Beispiel 2: Benutzer-Privilegieneskalation überwachen
Beispiel
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
# Privilegieneskalationsbericht erstellen
aureport --start today --event --summary -i | grep priv_esc
Beispiel 3: SSH-Anmeldung überwachen
Beispiel
auditctl -a always,exit -F arch=b64 -S execve -F path=/usr/sbin/sshd -k sshd_login
# SSH-Anmeldeprotokolle anzeigen
ausearch -k sshd_login | grep 'acct="user"' | grep 'res=success'
Best Practices
Logrotation richtig einrichten: Stellen Sie sicher, dass Logs nicht die Festplatte füllen
Beispiel
max_log_file = 50
num_logs = 10
Audit-Regeln zentral verwalten: Regeln in einer Datei speichern
Beispiel
-w /etc/passwd -p wa -k passwd_changes
-w /etc/group -p wa -k group_changes
# Regeln laden
auditctl -R /etc/audit/rules.d/my.rules
Protokolle regelmäßig überprüfen: Richten Sie einen Cron-Job ein, um Protokolle regelmäßig zu analysieren
Beispiel
0 0 * * * /usr/sbin/aureport --summary --start yesterday --end now | mail -s "Täglicher Audit-Bericht" admin@example.com
Audit-Protokolle schützen: Verhindern Sie, dass Protokolle manipuliert werden
Beispiel
chown root:root /var/log/audit/audit.log
Fehlerbehebung bei häufigen Problemen
Problem 1: auditd-Dienst startet nicht
Lösung:
- Syntax der Konfigurationsdatei prüfen:
auditd -f /etc/audit/auditd.conf - Systemprotokolle prüfen:
journalctl -u auditd
Problem 2: Keine Audit-Protokolle generiert
Lösung:
- Bestätigen Sie, dass der Dienst ausgeführt wird:
systemctl status auditd - Überprüfen Sie, ob Regeln geladen sind:
auditctl -l - Überprüfen Sie die Kernel-Unterstützung:
grep "audit" /boot/config-$(uname -r)
Problem 3: Protokolldateien zu groß
Lösung:
- Protokollgröße und -anzahl anpassen: ändern
/etc/audit/auditd.confinmax_log_fileundnum_logs - Protokollkomprimierung aktivieren: hinzufügen
compress = yeszur Konfigurationsdatei
Zusammenfassung
auditd ist ein leistungsstarkes Audit-Tool für Linux-Systeme. Mit der richtigen Konfiguration können Sie:
- Überwachen Sie den Zugriff auf kritische Dateien und Verzeichnisse
- Verfolgen Sie die Nutzung privilegierter Befehle
- Zeichnen Sie Benutzeranmeldungen und Systemaktivitäten auf
- Erfüllen Sie Compliance-Anforderungen
auditd zu beherrschen ist für Systemadministratoren und Sicherheitsexperten unerlässlich; es hilft Ihnen, Ihr Linux-System besser zu verstehen und zu schützen.
Andere Erweiterungen
Linux-Befehlsenzyklopädie