Linux auditd-Befehl

Linux 命令大全Linux-Befehlsenzyklopädie


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

# Ubuntu/Debian
sudo apt-get install auditd

# CentOS/RHEL
sudo yum install audit

auditd-Dienst starten und aktivieren

Beispiel

# Dienst starten
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

# Lese-, Schreib- und Attributänderungen an /etc/passwd überwachen
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

# Alle Befehle überwachen, die sudo verwenden
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

# Dateilöschung durch Benutzer mit UID größer als 500 überwachen
auditctl -a always,exit -S unlink -S unlinkat -S rename -S renameat -F auid&gt;=500 -F auid!=4294967295 -k delete_files

Audit-Log-Analyse

ausearch-Befehl

Wird zum Abfragen von Audit-Protokollen verwendet.

Beispiel

# Protokolle nach spezifischem Schlüsselwort durchsuchen
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

# Bericht über Benutzeranmeldungen generieren
aureport -l

# Bericht über Dateizugriffe generieren
aureport -f

# Zusammenfassung aller Ereignisse generieren
aureport --summary

Praktische Anwendungsbeispiele

Beispiel 1: Sensible Dateien überwachen

Beispiel

# Datei /etc/shadow überwachen
auditctl -w /etc/shadow -p wa -k shadow_mod

# Zugehörige Protokolle anzeigen
ausearch -k shadow_mod | less

Beispiel 2: Benutzer-Privilegieneskalation überwachen

Beispiel

# Alle Befehle überwachen, die sudo oder su verwenden
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

# Erfolgreiche und fehlgeschlagene SSH-Anmeldungen überwachen
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

# /etc/audit/auditd.conf bearbeiten
max_log_file = 50
num_logs = 10

Audit-Regeln zentral verwalten: Regeln in einer Datei speichern

Beispiel

# Regeldatei /etc/audit/rules.d/my.rules erstellen
-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

# Täglich einen Bericht erstellen und ihn an den Administrator senden
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

chmod 600 /var/log/audit/audit.log
chown root:root /var/log/audit/audit.log

Fehlerbehebung bei häufigen Problemen

Problem 1: auditd-Dienst startet nicht

Lösung:

  1. Syntax der Konfigurationsdatei prüfen:auditd -f /etc/audit/auditd.conf
  2. Systemprotokolle prüfen:journalctl -u auditd

Problem 2: Keine Audit-Protokolle generiert

Lösung:

  1. Bestätigen Sie, dass der Dienst ausgeführt wird:systemctl status auditd
  2. Überprüfen Sie, ob Regeln geladen sind:auditctl -l
  3. Überprüfen Sie die Kernel-Unterstützung:grep "audit" /boot/config-$(uname -r)

Problem 3: Protokolldateien zu groß

Lösung:

  1. Protokollgröße und -anzahl anpassen: ändern/etc/audit/auditd.confinmax_log_fileundnum_logs
  2. Protokollkomprimierung aktivieren: hinzufügencompress = 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.


Linux 命令大全Linux-Befehlsenzyklopädie

Andere Erweiterungen