Übersicht
auditctl verwaltet dynamisch die Regeln des Linux-Auditing-Systems. Diese Regeln werden auf Kernel-Ebene definiert und können so konfiguriert werden, dass sie verschiedene Ereignisse protokollieren, wie z. B. bestimmte Dateizugriffe, Systemaufrufe und Benutzeraktivitäten. Audit-Protokolle werden typischerweise in der Datei /var/log/audit/audit.log gespeichert.
Hauptfunktionen
- Hinzufügen und Löschen von Audit-Regeln
- Abrufen einer Liste der aktuell aktiven Audit-Regeln
- Überwachung von Datei- und Verzeichniszugriffen
- Überwachung spezifischer Systemaufrufe
- Konfiguration von Audit-Regeln basierend auf Benutzern und Gruppen
Installation
auditctl ist Teil des Pakets 'audit' oder 'auditd'. Wenn es auf den meisten Linux-Distributionen nicht standardmäßig installiert ist, können Sie es mit den folgenden Befehlen installieren.
Debian/Ubuntu
sudo apt update
sudo apt install auditd
Installiert auditctl auf Debian- oder Ubuntu-basierten Systemen.
RHEL/CentOS/Fedora
sudo yum install audit
# oder
sudo dnf install audit
Installiert auditctl auf RHEL-, CentOS- oder Fedora-basierten Systemen.
Nach der Installation müssen Sie den auditd-Dienst starten und aktivieren: `sudo systemctl enable auditd --now`
Hauptoptionen
Der Befehl auditctl verwendet verschiedene Optionen, um Audit-Regeln zu definieren und zu verwalten.
Regelverwaltung
Regeldefinition
Erzeugter Befehl:
Kombinieren Sie die Befehle.
Beschreibung:
`auditctl` Führen Sie den Befehl aus.
Kombinieren Sie diese Optionen und führen Sie die Befehle virtuell zusammen mit der KI aus.
Anwendungsbeispiele
Verschiedene Beispiele für die Konfiguration von Audit-Regeln mit auditctl.
Alle aktuellen Audit-Regeln auflisten
sudo auditctl -l
Überprüft alle aktuell im Kernel geladenen Audit-Regeln.
Änderungen an der Datei /etc/passwd überwachen
sudo auditctl -w /etc/passwd -p wa -k passwd_changes
Überwacht alle Schreib- (w) und Attributänderungs- (a) Zugriffe auf die Datei /etc/passwd und weist den Schlüssel 'passwd_changes' zu.
Leseversuche auf die Datei /etc/shadow überwachen
sudo auditctl -w /etc/shadow -p r -k shadow_read
Überwacht Lese- (r) Zugriffe auf die Datei /etc/shadow und weist den Schlüssel 'shadow_read' zu.
Datei-Erstellung/-Löschung im Verzeichnis /var/log überwachen
sudo auditctl -a always,exit -F dir=/var/log -F perm=wa -S creat,unlink -k log_dir_changes
Überwacht die Systemaufrufe zum Erstellen (creat) und Löschen (unlink) von Dateien im Verzeichnis /var/log. Weist den Schlüssel 'log_dir_changes' zu.
Datei-Löschversuche eines bestimmten Benutzers (UID) überwachen
sudo auditctl -a always,exit -F arch=b64 -S unlink -F auid=1000 -k user_file_delete
Überwacht Systemaufrufe zum Löschen (unlink) von Dateien durch einen Benutzer mit UID 1000. Gibt die 64-Bit-Systemarchitektur an.
Alle Audit-Regeln löschen
sudo auditctl -D
Löscht alle aktuell geladenen Audit-Regeln. (Vorsicht: Mit Bedacht verwenden!)
Regel mit einem bestimmten Schlüssel löschen
sudo auditctl -w /etc/passwd -p wa -k passwd_changes -d
Löscht die Regel mit dem Schlüssel 'passwd_changes'. Sie müssen dieselben Optionen verwenden wie beim Hinzufügen der Regel.
Tipps & Hinweise
Nützliche Tipps und Vorsichtsmaßnahmen bei der Verwendung von auditctl.
Regeln dauerhaft speichern
Mit auditctl hinzugefügte Regeln gehen beim Neustart des Systems verloren. Um Regeln dauerhaft zu speichern, fügen Sie die Regeln zur Datei /etc/audit/rules.d/audit.rules hinzu und wenden Sie sie mit dem Befehl 'augenrules --load' oder 'systemctl restart auditd' an.
- Regeldatei: /etc/audit/rules.d/audit.rules
- Regeln anwenden: sudo augenrules --load
Leistungsauswirkungen
Das Festlegen zu vieler Audit-Regeln oder die Überwachung umfangreicher Verzeichnisse kann die Systemleistung beeinträchtigen. Es ist ratsam, nur die notwendigen Regeln festzulegen und sich auf wichtige Pfade zu konzentrieren.
Protokolldatei prüfen
Audit-Ereignisse werden in der Datei /var/log/audit/audit.log protokolliert. Die Verwendung der Befehle ausearch und aureport ist effizient, um diese Protokolle zu überprüfen.
Architektur angeben (-F arch=b64/b32)
Beim Überwachen von Systemaufrufen ist es ratsam, explizit '-F arch=b64' für 64-Bit-Systeme und '-F arch=b32' für 32-Bit-Systeme anzugeben. Dies liegt daran, dass Systemaufrufnummern je nach Architektur variieren können.