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:

/etc/audit/rules.d/linuxfabrik-deletion.rules
-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-02-28