18.3. Audit Konfiguration

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

18.3.1. Ereignis-Auswahlausdrücke

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 18.1, „Audit-Ereignisklassen“ fasst die Audit-Ereignisklassen zusammen:

Tabelle 18.1. Audit-Ereignisklassen
Name der KlasseBeschreibungAktion
allallVergleicht alle Ereisnisklassen.
adadministrativeAdministrative Aktionen, ausgeführt auf dem System als Ganzes.
apapplicationAktionen definiert für Applikationen.
clfile closeAudit-Aufrufe für den Systemaufruf close.
exexecAusfü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.
fafile attribute accessAuditierung des Zugriffs auf Objektattribute wie stat(1) und pathconf(2).
fcfile createAudit-Ereignisse, bei denen eine Datei als Ergebnis angelegt wird.
fdfile deleteAudit-Ereignisse, bei denen Dateilöschungen vorkommen.
fmfile attribute modifyAudit-Ereignisse, bei denen Dateiattribute geändert werden, wie chown(8), chflags(1) und flock(2).
frfile readAudit-Ereignisse, bei denen Daten gelesen oder Dateien zum lesen geöffnet werden.
fwfile writeAudit-Ereignisse, bei denen Daten geschrieben oder Dateien geschrieben oder verändert werden.
ioioctlNutzung des Systemaufrufes ioctl durch Audit.
ipipcAuditierung verschiedener Formen von Inter-Prozess-Kommunikation einschließlich POSIX-Pipes und System V IPC-Operationen.
lologin_logoutAudit-Ereignisse von login(1) und logout(1).
nanon attributableAuditierung nicht-attributierbarer Ereignisse.
noinvalid classKein Abgleich von Audit-Ereignissen.
ntnetworkAudit-Ereignisse in Zusammenhang mit Netzwerkaktivitäten wie connect(2) und accept(2)
ototherAuditierung verschiedener Ereignisse.
pcprocessAuditierung 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 18.2, „Präfixe für Audit-Ereignisklassen“ fasst die verfügbaren Präfixe zusammen.

Tabelle 18.2. Präfixe für Audit-Ereignisklassen
PräfixAktion
+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

18.3.2. Konfigurationsdateien

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.

Warnung:

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.

18.3.2.1. Die audit_control-Datei

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.

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. Das obige Beispiel legt den minimalen freien Platz auf zwanzig Prozent fest.

Die naflags-Option bestimmt diejenigen Audit-Klassen, für die nicht-attributierbare Ereignisse aufgezeichnet werden sollen (beispielsweise Anmeldeprozesse und System-Daemonen.

Die Option policy legt eine durch Kommata getrennte Liste von policy-Flags fest, welche verschiedene Aspekte des Audit-Verhaltens steuern. Der vorgegebene Flag cnt zeigt an, dass das System trotz eines Audit-Fehlers weiterlaufen soll (dieses Flag wird dringend angeraten). 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 in Bytes, welche eine Audit-Pfad-Datei wachsen darf, bevor sie automatisch beendet und rotiert wird. Die Standardvorgabe 0 setzt die automatische Log-Rotation ausser Kraft. Falls die angeforderte Dateigröße größer Null und gleichzeitig unterhalb des Minimums von 512K ist, dann wird die Angabe verworfen und ein Log-Hinweis wird erzeugt.

18.3.2.2. Die Datei audit_user

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: Das erste Feld ist alwaysaudit, welches eine Ansammlung von Ereignissen vorgibt, welche immer für diesen Benutzer aufgezeichnet werden. Das zweite Feld neveraudit legt eine Menge an Ereignissen 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 das Beispiel zusammen mit der vorstehend als Beispiel gezeigten Datei 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>.