Auditd
Das Linux Auditing System „auditd“ hilft SysAdmins bei der Erstellung eines „Audit-Trails“, also eines Protokolls für jede Aktion auf dem Server. auditd protokolliert standardmässig SELinux AVCs, Systemanmeldungen, Kontoänderungen und Authentifizierungsereignisse in /var/log/audit/audit.log
. Die Aufzeichnung der Ereignisse kann je nach Umfang und Auslastung der Systeme einiges an Speicherplatz beanspruchen (mehrere GByte Textdateien täglich).
Wichtig: auditd bietet keine zusätzliche Sicherheit, aber hilft dabei, Verstösse gegen Systemrichtlinien zu verfolgen und so zusätzliche Sicherheitsmassnahmen zu implementieren. Es ist zudem die einzige Möglichkeit, ohne Zusatzsoftware und Shell-unabhängig sauber und sicher Aktivitäten zu loggen.
auditd wird für seine kryptischen Eventlogs geliebt. Beispiel mit künstlichen Zeilenumbrüchen und Kommentaren:
type=CRYPTO_KEY_USER Was wurde auditiert?
msg=audit(1671611910.534:108057): Timestamp:Audit Event Number
pid=8940
uid=0
auid=299006 Audit-ID des Users, der die Meldung getriggert hat
ses=4305
subj=system_u:system_r:sshd_t:s0-s0:c0.c1023
msg='op=destroy kind=server fp=SHA256:de:3e:84:f7 direction=? spid=896440 suid=0 exe="/usr/sbin/sshd" hostname=? addr=? terminal=? res=success'
UID="root"
AUID="john.doe"
SUID="root"
Mit auditd lässt sich festlegen, welche Aktionen im System in welchem Umfang protokolliert werden sollen. Beispiel: Um das Löschen von Dateien für alle Benutzer inkl. root (ab UID 1000) auf 64 Bit-Systemen zu protokollieren, konfiguriert man auditd mit je einer Rule für 32 Bit und 64 Bit:
-a always,exit -F arch=b64 -S unlink -S unlinkat -S rename -S renameat -F auid>=1000 -F auid!=4294967295 -k delete
-a always,exit -F arch=b32 -S unlink -S unlinkat -S rename -S renameat -F auid>=1000 -F auid!=4294967295 -k delete
Die Reihenfolge der Regeln ist entscheidend („first-match wins“).
Tipp
F auid!=4294967295
ignoriert Daemon-Events.
Werden Anpassungen an der auditd-Konfiguration in /etc/audit/rules.d/
an den auf .rules
endenden Dateien vorgenommen, kann/muss auditd folgendermassen neu gestartet werden (ansonsten hilft nur ein Reboot):
service auditd reload
Audit Rate Limit und auditd’s Status ermitteln:
sudo auditctl -s
enabled 1
failure 1
pid 1303
rate_limit 0
backlog_limit 64
lost 0
backlog 0
backlog_wait_time 60000
backlog_wait_time_actual 0
loginuid_immutable 0 unlocked
Built on 2024-09-30