Alle Konfigurationsdateien für das Sicherheits-Audit finden sich unter /etc/security. Die folgenden Dateien müssen vorhanden sein, bevor der Audit-Daemon gestartet wird:
audit_class – Enthält die Definitionen der Audit-Klassen.
audit_control – Steuert Teile des Audit-Subsystems wie Audit-Klassen, minimaler Plattenplatz auf dem Audit-Log-Datenträger, maximale Größe des Audit-Pfades usw.
audit_event – Wörtliche Namen und Beschreibungen von System-Audit-Ereignissen sowie eine Liste, welche Klassen welches Ereignis aufzeichnen.
audit_user – Benutzerspezifische Audit-Erfordernisse, welche mit den globalen Vorgaben bei der Anmeldung kombiniert werden.
audit_warn – Ein anpassbares Shell-Skript, welches von auditd benutzt wird, um Warnhinweise in aussergewöhnlichen Situationen zu erzeugen, z.B. wenn der Platz für die Audit-Datensätze knapp wird oder wenn die Datei des Audit-Pfades rotiert wurde.
Warnung: Audit-Konfigurationsdateien sollten vorsichtig gewartet und bearbeitet werden, da Fehler in der Konfiguration zu falscher Aufzeichnung von Ereignissen führen könnten.
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.
Die folgende Liste enthält die Standard-Ereignisklassen für das Audit und ist in audit_class festgehalten:
all – all – Vergleiche alle Ereignisklassen.
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-Parametergemäss der Richtlinien-Einstellungen.
fa – file attribute access – Auditierung des Zugriffs auf Objektattribute wie stat(1), pathconf(2) und ähnlichen Ereignissen.
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 welchen Dateiattribute geändert werden, wie chown(8), chflags(1), flock(2) etc.
fr – file read – Audit-Ereignisse, bei denen Daten gelesen oder Dateien zum lesen geöffnet werden usw.
fw – file write – Audit-Ereignisse, bei welchen Daten geschrieben oder Dateien geschrieben oder verändert werden usw.
io – ioctl – Nutzung des Systemaufrufes ioctl(2) durch Audit.
ip – ipc – Auditierung verschiedener Formen von Inter-Prozess-Kommunikation einschliesslich POSIX-Pipes und System V IPC-Operationen.
lo – login_logout – Audit-Ereignisse betreffend login(1) und logout(1), welche auf dem System auftreten.
na – non attributable – Auditierung nicht-attributierbarer Ereignisse (Ereignisse, die nicht auf einen bestimmten Benutzer zurückgeführt werden können).
no – invalid class – Kein Abgleich von Audit-Ereignissen.
nt – network – Audit-Ereignisse in Zusammenhang mit Netzwerkaktivitäten wie z.B. 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 in dieser Liste 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.
(none) Kein Präfix, sowohl erfolgreiche als auch gescheiterte Vorkommen eines Ereignisses werden auditiert.
+ Auditiere nur erfolgreiche Ereignisse in dieser Klasse.
- Auditiere nur gescheiterte Operationen in dieser Klasse.
^ Auditiere weder erfolgreiche noch gescheiterte Ereignisse in dieser Klasse.
^+ Auditiere keine erfolgreichen Ereignisse in dieser Klasse.
^- Auditiere keine gescheiterten Ereignisse in dieser Klasse.
Das folgende Beispiel einer Auswahl-Zeichenkette wählt erfolgreiche und gescheiterte Anmelde/Abmelde-Ereignisse aus, aber nur erfolgreich beendete Ausführungs-Ereignisse:
lo,+ex
In den meisten Fällen müssen Administratoren nur zwei Dateien ändern, wenn sie das Audit-System konfigurieren: audit_control und audit_user. Die erste Datei steuert systemweite Audit-Eigenschaften und -Richtlinien; die zweite Datei kann für die Feinanpassung der Auditierung von Benutzern verwendet werden.
Die audit_control-Datei legt eine Anzahl Vorgabewerte fest. Beim Betrachten des Inhaltes der Datei sehen wir Folgendes:
dir:/var/audit flags:lo minfree:20 naflags:lo policy:cnt filesz:0
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.
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 Benutzer root überflüssig und Anmelde/Abmelde-Ereignisse werden für den Benutzer www ebenfalls aufgezeichnet.
root:lo,+ex:no www:fc,+ex:no
Zurück | Zum Anfang | Weiter |
Installation der Audit-Unterstützung | Nach oben | Administration des Audit-Subsystems |
Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an
<[email protected]>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an <[email protected]>.