Userspace-Unterstützung für Ereignis-Auditing ist
Bestandteil des FreeBSD-Betriebssystems. Kernel-Unterstützung ist
in der Voreinstellung im GENERIC
-Kernel
enthalten und auditd(8) kann durch Hinzufügen der folgenden
Zeile in /etc/rc.conf
aktiviert
werden:
auditd_enable="YES"
Starten Sie anschließend den Audit-Daemon:
#
service auditd start
Benutzer, die es bevorzugen einen angepassten Kernel zu kompilieren, müssen folgende Zeile in die Kernelkonfigurationsdatei aufnehmen:
options AUDIT
Auswahlausdrücke werden an einigen Stellen der Audit-Konfiguration benützt, um zu bestimmen, welche Ereignisse auditiert werden sollen. Die Ausdrücke enthalten eine Liste der Ereignisklassen, welche verglichen werden sollen. Auswahlausdrücke werden von links nach rechts ausgewertet und zwei Ausdrücke werden durch Aneinanderhängen miteinander kombiniert.
Tabelle 16.1, „Audit-Ereignisklassen“ fasst die Audit-Ereignisklassen zusammen:
Name der Klasse | Beschreibung | Aktion |
---|---|---|
all | all | Vergleicht alle Ereigsnisklassen. |
aa | authentication and authorization | |
ad | administrative | Administrative Aktionen, ausgeführt auf dem System als Ganzes. |
ap | application | Aktionen definiert für Applikationen. |
cl | file close | Audit-Aufrufe für den Systemaufruf
close . |
ex | exec | Ausführung des Audit-Programms. Auditierung von
Befehlszeilen-Argumenten und Umgebungsvariablen wird
gesteuert durch audit_control(5) mittels der
argv und
envv -Parameter gemäß der
Richtlinien -Einstellungen. |
fa | file attribute access | Auditierung des Zugriffs auf Objektattribute wie stat(1) und pathconf(2). |
fc | file create | Audit-Ereignisse, bei denen eine Datei als Ergebnis angelegt wird. |
fd | file delete | Audit-Ereignisse, bei denen Dateilöschungen vorkommen. |
fm | file attribute modify | Audit-Ereignisse, bei denen Dateiattribute geändert werden, wie chown(8), chflags(1) und flock(2). |
fr | file read | Audit-Ereignisse, bei denen Daten gelesen oder Dateien zum lesen geöffnet werden. |
fw | file write | Audit-Ereignisse, bei denen Daten geschrieben oder Dateien geschrieben oder verändert werden. |
io | ioctl | Nutzung des Systemaufrufes
ioctl durch Audit. |
ip | ipc | Auditierung verschiedener Formen von Inter-Prozess-Kommunikation einschließlich POSIX-Pipes und System V IPC-Operationen. |
lo | login_logout | Audit-Ereignisse von login(1) und logout(1). |
na | non attributable | Auditierung nicht-attributierbarer Ereignisse. |
no | invalid class | Kein Abgleich von Audit-Ereignissen. |
nt | network | Audit-Ereignisse in Zusammenhang mit Netzwerkaktivitäten wie connect(2) und accept(2) |
ot | other | Auditierung verschiedener Ereignisse. |
pc | process | Auditierung von Prozess-Operationen wie exec(3) und exit(3). |
Diese Ereignisklassen können angepasst werden durch
Modifizierung der Konfigurationsdateien
audit_class
und
audit_event
.
Jede Audit-Klasse kann mit einem Präfix kombiniert werden, welches anzeigt, ob erfolgreiche/gescheiterte Operationen abgebildet werden, und ob der Eintrag den Abgleich hinzufügt oder entfernt für die Klasse und den Typ. Tabelle 16.2, „Präfixe für Audit-Ereignisklassen“ fasst die verfügbaren Präfixe zusammen.
Präfix | Aktion |
---|---|
+ | Auditiert erfolgreiche Ereignisse in dieser Klasse. |
- | Auditiert fehlgeschlagene Ereignisse in dieser Klasse. |
^ | Auditiert weder erfolgreiche noch fehlgeschlagene Ereignisse. |
^+ | Auditiert keine erfolgreichen Ereignisse in dieser Klasse. |
^- | Auditiert keine fehlgeschlagenen Ereignisse in dieser Klasse. |
Wenn kein Präfix vorhanden ist, werden sowohl erfolgreiche als auch fehlgeschlagene Ereignisse auditiert.
Das folgende Beispiel einer Auswahl-Zeichenkette wählt erfolgreiche und gescheiterte Anmelde/Abmelde-Ereignisse aus, aber nur erfolgreich beendete Ausführungs-Ereignisse:
lo,+ex
Die folgenden Konfigurationsdateien für
Sicherheits-Auditing befinden sich in
/etc/security
.
audit_class
: enthält die
Definitionen der Audit-Klassen.
audit_control
: steuert die
Eigenschaften des Audit-Subsystems, wie
Standard-Audit-Klassen, Mindestfestplattenspeicher auf
dem Audit-Log-Volume und die maximale Größe des
Audit-Trails.
audit_event
: Namen und
Beschreibungen der Audit-Ereignisse, und eine Liste
von Klassen mit den dazugehörigen Ereignissen.
audit_user
: benutzerspezifische
Audit-Anforderungen, kombinierbar mit den globalen
Standardeinstellungen bei der Anmeldung.
audit_warn
: ein anpassbares
Skript, das von auditd(8) verwendet wird, um in
bestimmten Situationen Warnmeldungen zu generieren,
z.B. wenn der Platz für Audit-Protokolle knapp wird, oder
wenn die Datei des Audit-Trails rotiert wurde.
Konfigurationsdateien von Audit sollten sorgfältig bearbeitet und gepflegt werden, da Fehler in der Konfiguration zu einer fehlerhaften Protokollierung der Ereignisse führen können.
In den meisten Fällen wird der Administrator nur
audit_control
und
audit_user
anpassen müssen. Die erste
Datei steuert systemweite Audit-Eigenschaften, sowie
Richtlinien. Die zweite Datei kann für die Feinabstimmung bei
der Auditierung von Benutzern verwendet werden.
Die audit_control
-Datei legt eine
Anzahl Vorgabewerte fest:
dir:/var/audit dist:off flags:lo,aa minfree:5 naflags:lo,aa policy:cnt,argv filesz:2M expire-after:10M
Die Option dir
wird genutzt, um eines
oder mehrere Verzeichnisse festzulegen, in welchen
Audit-Protokolle gespeichert werden. Gibt es mehrere
Verzeichniseinträge, werden diese in der angegebenen
Reihenfolge genutzt, bis sie jeweils gefüllt sind. Es ist
üblich, Audit so zu konfigurieren, dass die Audit-Logs auf
einem dedizierten Dateisystem abgelegt werden, um
Wechselwirkungen zwischen dem Audit-Subsystem und anderen
Subsystemen zu verhindern, falls das Dateisystem voll
läuft.
Ist die Option dist
auf
on
oder yes
gesetzt,
wird ein Link der Dateien des Audit-Trails in
/var/audit/dist
erstellt.
Das flags
-Feld legt die systemweite
Standard-Vorauswahl-Maske für attributierbare (direkt einem
Benutzer zuordenbare) Ereignisse fest. Im obigen Beispiel
werden alle gescheiterten und erfolgreichen Anmelde- und
Abmelde-Ereignisse für alle Benutzer aufgezeichnet.
Die Option minfree
definiert den
minimalen Prozentsatz an freiem Plattenplatz für das
Dateisystem, in welchem der Audit-Pfad abgespeichert wird.
Wenn diese Schwelle überschritten ist, wird ein
Warnhinweis erzeugt.
Die naflags
-Option bestimmt diejenigen
Audit-Klassen, für die nicht-attributierbare Ereignisse
aufgezeichnet werden sollen, wie beispielsweise
Anmeldeprozesse, Authentifizierung und Autorisierung.
Die Option policy
legt eine durch
Kommata getrennte Liste von policy-Flags fest, welche
verschiedene Aspekte des Audit-Verhaltens steuern. Der Flag
cnt
zeigt an, dass das System trotz eines
Audit-Fehlers weiterlaufen soll (dieses Flag wird dringend
empfohlen). Ein anderes, häufig genutztes Flag ist
argv
, welches dazu führt, dass
Befehlszeilen-Argumente für den Systemaufruf
execve(2) als Teil der Befehlsausführung
aufgezeichnet werden.
Die filesz
-Option spezifiziert die
maximale Größe der Audit-Datei, bevor sie automatisch
beendet und rotiert wird. Der Wert 0
setzt die automatische Log-Rotation außer Kraft. Falls die
angeforderte Dateigröße unterhalb des Minimums von 512K
ist, dann wird die Angabe verworfen und ein Log-Hinweis wird
erzeugt.
Die Option expire-after
legt fest, wann
die Audit-Dateien verfallen und entfernt werden.
Die audit_user
-Datei erlaubt es dem
Administrator, weitere Audit-Erfordernisse für bestimmte
Benutzer festzulegen. Jede Zeile konfiguriert das Auditing
für einen Benutzer über zwei Felder:
alwaysaudit
gibt eine Ansammlung von
Ereignissen vor, welche immer für diesen Benutzer
aufgezeichnet werden. neveraudit
legt
Ereignisse fest, die niemals für diesen Benutzer auditiert
werden sollen.
Das folgende Beispiel einer
audit_user
-Datei zeichnet
Anmelde/Abmelde-Ereignisse, erfolgreiche
Befehlsausführungen für den Benutzer
root
, Anlegen von
Dateien und erfolgreiche Befehlsausführungen für den
Benutzer www
auf.
Falls die voreingestellte audit_control
benutzt wird, dann ist der Eintrag lo
für
root
überflüssig
und Anmelde/Abmelde-Ereignisse werden für www
ebenfalls
aufgezeichnet.
root:lo,+ex:no www:fc,+ex:no
Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an
<de-bsd-questions@de.FreeBSD.org>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an
<de-bsd-translators@de.FreeBSD.org>.