Userspace-Untersützung für Ereignis-Auditing ist Bestandteil
des FreeBSD-Betriebssystems. Kernel-Unterstützung 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, jede mit einem Präfix, welches anzeigt, ob verglichene Datensätze akzeptiert oder ignoriert werden sollen und optional, um anzuzeigen, ob der Eintrag beabsichtigt, erfolgreiche oder fehlgeschlagene Operationen zu vergleichen. Auswahlausdrücke werden von links nach rechts ausgewertet und zwei Ausdrücke werden durch Aneinanderhängen miteinander kombiniert.
Tabelle 17.1, „Audit-Ereignisklassen“ fasst die Audit-Ereignisklassen zusammen:
Name der Klasse | Beschreibung | Aktion |
---|---|---|
all | all | Vergleicht alle Ereisnisklassen. |
aa | authentifizierung und autorisierung | |
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 ist kombiniert mit einem Präfix, 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 17.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 werden Administratoren nur
audit_control
und
audit_user
änpassen 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 Systemauruf
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 ausser 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>.