aboutsummaryrefslogtreecommitdiff
path: root/de_DE.ISO8859-1/books/handbook/audit/chapter.xml
diff options
context:
space:
mode:
Diffstat (limited to 'de_DE.ISO8859-1/books/handbook/audit/chapter.xml')
-rw-r--r--de_DE.ISO8859-1/books/handbook/audit/chapter.xml840
1 files changed, 840 insertions, 0 deletions
diff --git a/de_DE.ISO8859-1/books/handbook/audit/chapter.xml b/de_DE.ISO8859-1/books/handbook/audit/chapter.xml
new file mode 100644
index 0000000000..b5aac5a9e5
--- /dev/null
+++ b/de_DE.ISO8859-1/books/handbook/audit/chapter.xml
@@ -0,0 +1,840 @@
+<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
+<!--
+ The FreeBSD Documentation Project
+ The FreeBSD German Documentation Project
+
+ $FreeBSD$
+ $FreeBSDde: de-docproj/books/handbook/audit/chapter.xml,v 1.14 2012/02/16 20:28:26 bcr Exp $
+ basiert auf: 1.36
+-->
+
+<!-- Need more documentation on praudit, auditreduce, etc. Plus more info
+on the triggers from the kernel (log rotation, out of space, etc).
+And the /dev/audit special file if we choose to support that. Could use
+some coverage of integrating MAC with Event auditing and perhaps discussion
+on how some companies or organizations handle auditing and auditing
+requirements. -->
+
+<chapter id="audit">
+ <chapterinfo>
+ <authorgroup>
+ <author>
+ <firstname>Tom</firstname>
+ <surname>Rhodes</surname>
+ <contrib>Geschrieben von </contrib>
+ </author>
+ <author>
+ <firstname>Robert</firstname>
+ <surname>Watson</surname>
+ </author>
+ </authorgroup>
+ <authorgroup>
+ <author>
+ <firstname>Daniel</firstname>
+ <surname>Seuffert</surname>
+ <contrib>Übersetzt von </contrib>
+ </author>
+ </authorgroup>
+ </chapterinfo>
+
+ <title>Security Event Auditing</title>
+
+ <sect1 id="audit-synopsis">
+ <title>Einleitung</title>
+
+ <indexterm><primary>AUDIT</primary></indexterm>
+ <indexterm>
+ <primary>Security Event Auditing</primary>
+ <see>MAC</see>
+ </indexterm>
+
+ <para>Das &os;-Betriebssystem unterstützt
+ ein feingranuliertes Sicherheits-Auditing.
+ Ereignis-Auditing erlaubt die
+ zuverlässige, feingranulierte und konfigurierbare
+ Aufzeichnung einer Vielzahl von sicherheitsrelevanten
+ Systemereignissen einschliesslich Benutzereingaben,
+ Konfigurationsänderungen sowie Datei- und
+ Netzwerkzugriffen. Diese Log-Datensätze können
+ unschätzbar wertvoll sein für direkte
+ Systemüberwachung, Einbruchserkennung und
+ Post-Mortem-Analyse. &os; implementiert &sun;s öffentlich
+ zugängliche <acronym>BSM</acronym> API und Dateiformat. Die
+ &os;-Implementierung kann mit den Audit-Implementierungen von
+ &sun; &solaris; und &apple; &macos; X zusammenarbeiten.</para>
+
+ <para>Dieses Kapitel konzentriert sich auf die Installation
+ und Konfiguration des Ereignis-Auditings. Es erklärt
+ Audit-Richtlinien und stellt ein Beispiel einer
+ Audit-Konfiguration vor.</para>
+
+ <para>Nach dem Lesen dieses Kapitels werden Sie
+ Folgendes wissen:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Was Ereignis-Auditing ist und wie es arbeitet.</para>
+ </listitem>
+
+ <listitem>
+ <para>Wie man Ereignis-Auditing in &os; für Benutzer
+ und Prozesse konfiguriert.</para>
+ </listitem>
+
+ <listitem>
+ <para>Wie man den Audit-Pfad mittels Audit-Reduktion und
+ Revisionswerkzeugen überprüft.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Vor dem Lesen dieses Kapitels sollten Sie:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Sowohl &unix; als auch &os;-Basismechanismen
+ beherrschen (<xref linkend="basics"/>).</para>
+ </listitem>
+
+ <listitem>
+ <para>Mit den grundlegenden Mechanismen der
+ Kernel-Konfiguration und -Kompilierung vertraut sein (<xref
+ linkend="kernelconfig"/>).</para>
+ </listitem>
+
+ <listitem>
+ <para>Mit den Maßnahmen zur Sicherung von &os;
+ vertraut sein (<xref linkend="security"/>).</para>
+ </listitem>
+ </itemizedlist>
+
+ <warning>
+ <para>Die Audit-Funktionalität in &os; besitzt die
+ Einschränkungen, dass zur Zeit nicht alle
+ sicherheitsrelevanten System-Ereignisse auditierbar sind und
+ dass einige Anmelde-Mechanismen, wie z.B. X11-basierte
+ Bildschirm-Manager und Daemonen von Drittanbietern, das
+ Auditing für Benutzeranmeldungen nicht korrekt
+ konfigurieren.</para>
+
+ <para>Das Sicherheits-Auditing ist in der Lage, sehr
+ detaillierte Log-Dateien von Systemaktivitäten zu
+ erzeugen. Auf einem ausgelasteten System kann die Pfad-Datei
+ sehr groß werden, wenn sie für hohe Auflösung
+ konfiguriert ist, und im Extremfall pro Woche um mehrere
+ Gigabyte anwachsen. Administratoren sollten daher den
+ benötigten Plattenplatz in Verbindung mit umfangreichen
+ Audit-Konfigurationen berücksichtigen. So kann es
+ wünschenswert sein, ein eigenes
+ Dateisystem für <filename>/var/audit</filename>
+ einzusetzen, damit andere Dateisysteme nicht betoffen sind,
+ wenn das Dateisystem des Audit voll läuft.</para>
+ </warning>
+ </sect1>
+
+ <sect1 id="audit-inline-glossary">
+ <title>Schlüsselbegriffe</title>
+
+ <para>Vor dem Lesen dieses Kapitels müssen einige
+ Audit-bezogene Schlüsselbegriffe erläutert
+ werden:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><emphasis>event</emphasis>: Ein auditierbares Ereignis
+ ist ein Ereignis, das mit dem Audit-Subsystem
+ aufgezeichnet werden kann. Beispiele für
+ sicherheitsrelevante Systemereignisse sind etwa das Anlegen
+ von Dateien, das Erstellen einer Netzwerkverbindung oder
+ eine Benutzeranmeldung. Ereignisse sind entweder
+ <quote>attributierbar</quote>, können also zu einen
+ authentifizierten Benutzer zurückverfolgt werden, oder
+ sind <quote>nicht-attributierbar</quote>, falls dies nicht
+ möglich ist. Nicht-attributierbare Ereignisse erfolgen
+ daher vor der Authentifizierung im Anmeldeprozess
+ (beispielsweise die Eingabe eines falschen Passworts).</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>class</emphasis>: Ereignisklassen sind
+ benannte Zusammenstellungen von zusammengehörenden
+ Ereignissen und werden in Auswahl-Ausdrücken benutzt.
+ Häufig genutzte Klassen von Ereignissen schließen
+ <quote>file creation</quote> (fc, Anlegen von Dateien),
+ <quote>exec</quote> (ex, Ausführung) und
+ <quote>login_logout</quote> (lo, Anmeldung-Abmeldung)
+ ein.</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>record</emphasis>: Ein Datensatz ist ein
+ Audit-Logeintrag, welcher ein Sicherheitsereignis
+ enthält. Jeder Datensatz enthält einen
+ Ereignistyp, Informationen über den Gegenstand
+ (Benutzer), welcher die Aktion durchführt, Datums- und
+ Zeitinformationen, Informationen über jedes Objekt oder
+ Argument sowie den Zustand hinsichtlich Erfolg oder
+ Scheitern der Operation.</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>trail</emphasis>: Ein Audit-Pfad (audit
+ trail) oder eine Log-Datei besteht aus einer Reihe von
+ Audit-Datensätzen, die Sicherheitsereignisse
+ beschreiben. Normalerweise sind die Pfade in grober
+ zeitlicher Reihenfolge bezüglich des Zeitpunktes,
+ an welchem ein Ereignis beendet wurde. Nur authorisierte
+ Prozesse dürfen Datensätze zum Audit-Pfad
+ hinzufügen.</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>selection expression</emphasis>: Ein
+ Auswahlausdruck ist eine Zeichenkette, welche eine Liste von
+ Präfixen und Audit-Ereignisklassennamen enthält,
+ um Ereignisse abzugleichen.</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>preselection</emphasis>: Die Vorauswahl ist
+ der Prozess, durch den das System erkennt, welche Ereignisse
+ von Interesse für den Administrator sind, um die
+ Erzeugung von Datensätze zu verhindern, welche nicht
+ von Belang sind. Die Konfiguration der Vorauswahl benutzt
+ eine Reihe von Auswahl-Ausdrücken, um zu erkennen,
+ welche Klassen von Ereignissen für welche Benutzer
+ aufgezeichnet werden sollen sowie globale Einstellungen,
+ welche sowohl auf authorisierte
+ als auch unauthorisierte Prozesse angewendet werden.</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>reduction</emphasis>: Die Reduzierung ist
+ der Prozess, durch den Datensätze von bestehenden
+ Audit-Pfaden ausgewählt werden für Speicherung,
+ Ausdruck oder Analyse. Ebenso der Prozess, durch den
+ unerwünschte Datensätze aus dem Audit-Pfad
+ entfernt werden. Mittels Reduzierung können
+ Administratoren Richtlinien für die Speicherung von
+ Audit-Daten vorgeben. Zum Beispiel können
+ ausführliche Audit-Pfade für einen Monat
+ gespeichert werden, um danach den Pfad für
+ archivarische Zwecke auf die Anmeldeinformationen
+ zu reduzieren.</para>
+ </listitem>
+ </itemizedlist>
+ </sect1>
+
+ <sect1 id="audit-install">
+ <title>Installation der Audit-Unterstützung</title>
+
+ <para>Die Unterstützung des Ereignis-Auditings für den
+ Benutzerbereich wird bereits als Teil des Basissystems installiert.
+ Die Audit-Unterstützung ist bereits im &os;-Standardkernel
+ enthalten, jedoch müssen Sie die folgende Zeile explizit in
+ Ihre Kernelkonfigurationsdatei aufnehmen und den Kernel neu bauen:</para>
+
+ <programlisting>options AUDIT</programlisting>
+
+ <para>Bauen und installieren Sie den Kernel wie in
+ <xref linkend="kernelconfig"/> beschrieben ist.</para>
+
+ <para>Nachdem der Kernel mit Audit-Unterstützung
+ gebaut und installiert ist und das System neu gestartet wurde,
+ aktivieren Sie den Audit-Daemon
+ durch das Einfügen der folgenden Zeile in die Datei
+ &man.rc.conf.5;:</para>
+
+ <programlisting>auditd_enable="YES"</programlisting>
+
+ <para>Die Audit-Unterstützung kann nun durch einen
+ Neustart des Systems oder durch das manuelle Starten
+ des Audit-Daemon aktiviert werden:</para>
+
+ <programlisting>/etc/rc.d/auditd start</programlisting>
+ </sect1>
+
+ <sect1 id="audit-config">
+ <title>Die Konfiguration des Audit</title>
+
+ <para>Alle Konfigurationsdateien für das Sicherheits-Audit
+ finden sich unter
+ <filename class="directory">/etc/security</filename>.
+ Die folgenden Dateien müssen vorhanden sein, bevor
+ der Audit-Daemon gestartet wird:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><filename>audit_class</filename>&nbsp;&ndash;&nbsp;Enthält
+ die Definitionen der Audit-Klassen.</para>
+ </listitem>
+
+ <listitem>
+ <para><filename>audit_control</filename>&nbsp;&ndash;&nbsp;Steuert
+ Teile des Audit-Subsystems wie Audit-Klassen, minimaler
+ Plattenplatz auf dem Audit-Log-Datenträger, maximale
+ Größe des Audit-Pfades usw.</para>
+ </listitem>
+
+ <listitem>
+ <para><filename>audit_event</filename>&nbsp;&ndash;&nbsp;Wörtliche
+ Namen und Beschreibungen von System-Audit-Ereignissen sowie
+ eine Liste, welche Klassen welches Ereignis
+ aufzeichnen.</para>
+ </listitem>
+
+ <listitem>
+ <para><filename>audit_user</filename>&nbsp;&ndash;&nbsp;Benutzerspezifische
+ Audit-Erfordernisse, welche mit den globalen Vorgaben bei
+ der Anmeldung kombiniert werden.</para>
+ </listitem>
+
+ <listitem>
+ <para><filename>audit_warn</filename>&nbsp;&ndash;&nbsp;Ein
+ anpassbares Shell-Skript, welches von
+ <application>auditd</application> 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.</para>
+ </listitem>
+ </itemizedlist>
+
+ <warning>
+ <para>Audit-Konfigurationsdateien sollten vorsichtig gewartet und
+ bearbeitet werden, da Fehler in der Konfiguration zu falscher
+ Aufzeichnung von Ereignissen führen könnten.</para>
+ </warning>
+
+ <sect2>
+ <title>Ereignis-Auswahlausdrücke</title>
+
+ <para>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.</para>
+
+ <para>Die folgende Liste enthält die
+ Standard-Ereignisklassen für das Audit und ist in
+ <filename>audit_class</filename> festgehalten:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><literal>all</literal>&nbsp;&ndash;&nbsp;<emphasis>all</emphasis>&nbsp;&ndash;&nbsp;Vergleiche
+ alle Ereignisklassen.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>ad</literal>&nbsp;&ndash;&nbsp;<emphasis>administrative</emphasis>&nbsp;&ndash;&nbsp;Administrative
+ Aktionen ausgeführt auf dem System als Ganzes.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>ap</literal>&nbsp;&ndash;&nbsp;<emphasis>application</emphasis>&nbsp;&ndash;&nbsp;Aktionen
+ definiert für Applikationen.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>cl</literal>&nbsp;&ndash;&nbsp;<emphasis>file
+ close</emphasis>&nbsp;&ndash;&nbsp;Audit-Aufrufe für
+ den Systemaufruf <function>close</function>.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>ex</literal>&nbsp;&ndash;&nbsp;<emphasis>exec</emphasis>&nbsp;&ndash;&nbsp;Ausführung
+ des Audit-Programms. Auditierung von
+ Befehlszeilen-Argumenten und Umgebungsvariablen wird
+ gesteuert durch &man.audit.control.5; mittels der
+ <literal>argv</literal> und
+ <literal>envv</literal>-Parametergemäss der
+ <literal>Richtlinien</literal>-Einstellungen.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>fa</literal>&nbsp;&ndash;&nbsp;<emphasis>file
+ attribute access</emphasis>&nbsp;&ndash;&nbsp;Auditierung
+ des Zugriffs auf Objektattribute wie &man.stat.1;,
+ &man.pathconf.2; und ähnlichen Ereignissen.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>fc</literal>&nbsp;&ndash;&nbsp;<emphasis>file
+ create</emphasis>&nbsp;&ndash;&nbsp;Audit-Ereignisse,
+ bei denen eine Datei als Ergebnis angelegt wird.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>fd</literal>&nbsp;&ndash;&nbsp;<emphasis>file
+ delete</emphasis>&nbsp;&ndash;&nbsp;Audit-Ereignisse,
+ bei denen Dateilöschungen vorkommen.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>fm</literal>&nbsp;&ndash;&nbsp;<emphasis>file
+ attribute modify</emphasis>&nbsp;&ndash;&nbsp;Audit-Ereignisse,
+ bei welchen Dateiattribute geändert werden, wie
+ &man.chown.8;, &man.chflags.1;, &man.flock.2; etc.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>fr</literal>&nbsp;&ndash;&nbsp;<emphasis>file
+ read</emphasis>&nbsp;&ndash;&nbsp;Audit-Ereignisse, bei
+ denen Daten gelesen oder Dateien zum lesen geöffnet
+ werden usw.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>fw</literal>&nbsp;&ndash;&nbsp;<emphasis>file write</emphasis>&nbsp;&ndash;&nbsp;Audit-Ereignisse,
+ bei welchen Daten geschrieben oder Dateien geschrieben
+ oder verändert werden usw.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>io</literal>&nbsp;&ndash;&nbsp;<emphasis>ioctl</emphasis>&nbsp;&ndash;&nbsp;Nutzung
+ des Systemaufrufes &man.ioctl.2; durch Audit.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>ip</literal>&nbsp;&ndash;&nbsp;<emphasis>ipc</emphasis>&nbsp;&ndash;&nbsp;Auditierung
+ verschiedener Formen von Inter-Prozess-Kommunikation
+ einschliesslich POSIX-Pipes und System V
+ <acronym>IPC</acronym>-Operationen.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>lo</literal>&nbsp;&ndash;&nbsp;<emphasis>login_logout</emphasis>&nbsp;&ndash;&nbsp;Audit-Ereignisse
+ betreffend &man.login.1; und &man.logout.1;, welche auf
+ dem System auftreten.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>na</literal>&nbsp;&ndash;&nbsp;<emphasis>non
+ attributable</emphasis>&nbsp;&ndash;&nbsp;Auditierung
+ nicht-attributierbarer Ereignisse (Ereignisse, die nicht auf
+ einen bestimmten Benutzer zurückgeführt werden
+ können).</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>no</literal>&nbsp;&ndash;&nbsp;<emphasis>invalid
+ class</emphasis>&nbsp;&ndash;&nbsp;Kein Abgleich von
+ Audit-Ereignissen.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>nt</literal>&nbsp;&ndash;&nbsp;<emphasis>network</emphasis>&nbsp;&ndash;&nbsp;Audit-Ereignisse
+ in Zusammenhang mit Netzwerkaktivitäten wie
+ z.B. &man.connect.2; und &man.accept.2;.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>ot</literal>&nbsp;&ndash;&nbsp;<emphasis>other</emphasis>&nbsp;&ndash;&nbsp;Auditierung
+ verschiedener Ereignisse.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>pc</literal>&nbsp;&ndash;&nbsp;<emphasis>process</emphasis>&nbsp;&ndash;&nbsp;Auditierung
+ von Prozess-Operationen wie &man.exec.3; und
+ &man.exit.3;.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Diese Ereignisklassen können angepasst werden durch
+ Modifizierung der Konfigurationsdateien
+ <filename>audit_class</filename> und
+ <filename>audit_event</filename>.</para>
+
+ <para>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.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>(none) Kein Präfix, sowohl erfolgreiche als
+ auch gescheiterte Vorkommen eines Ereignisses werden
+ auditiert.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>+</literal> Auditiere nur erfolgreiche
+ Ereignisse in dieser Klasse.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>-</literal> Auditiere nur gescheiterte
+ Operationen in dieser Klasse.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>^</literal> Auditiere weder erfolgreiche
+ noch gescheiterte Ereignisse in dieser Klasse.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>^+</literal> Auditiere keine erfolgreichen
+ Ereignisse in dieser Klasse.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>^-</literal> Auditiere keine gescheiterten
+ Ereignisse in dieser Klasse.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Das folgende Beispiel einer Auswahl-Zeichenkette
+ wählt erfolgreiche und gescheiterte
+ Anmelde/Abmelde-Ereignisse aus, aber nur erfolgreich beendete
+ Ausführungs-Ereignisse:</para>
+
+ <programlisting>lo,+ex</programlisting>
+ </sect2>
+
+ <sect2>
+ <title>Konfigurationsdateien</title>
+
+ <para>In den meisten Fällen müssen Administratoren
+ nur zwei Dateien ändern, wenn sie das Audit-System
+ konfigurieren: <filename>audit_control</filename> und
+ <filename>audit_user</filename>. Die erste Datei steuert
+ systemweite Audit-Eigenschaften und -Richtlinien; die zweite
+ Datei kann für die Feinanpassung der Auditierung von
+ Benutzern verwendet werden.</para>
+
+ <sect3 id="audit-auditcontrol">
+ <title>Die <filename>audit_control</filename>-Datei</title>
+
+ <para>Die <filename>audit_control</filename>-Datei legt eine
+ Anzahl Vorgabewerte fest. Beim Betrachten des Inhaltes der
+ Datei sehen wir Folgendes:</para>
+
+ <programlisting>dir:/var/audit
+flags:lo
+minfree:20
+naflags:lo
+policy:cnt
+filesz:0</programlisting>
+
+ <para>Die Option <option>dir</option> 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.</para>
+
+ <para>Das <option>flags</option>-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.</para>
+
+ <para>Die Option <option>minfree</option> 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.</para>
+
+ <para>Die <option>naflags</option>-Option bestimmt diejenigen
+ Audit-Klassen, für die nicht-attributierbare Ereignisse
+ aufgezeichnet werden sollen (beispielsweise Anmeldeprozesse
+ und System-Daemonen.</para>
+
+ <para>Die Option <option>policy</option> legt eine durch Kommata
+ getrennte Liste von policy-Flags fest, welche verschiedene
+ Aspekte des Audit-Verhaltens steuern. Der vorgegebene Flag
+ <literal>cnt</literal> zeigt an, dass das System trotz eines
+ Audit-Fehlers weiterlaufen soll (dieses Flag wird dringend
+ angeraten). Ein anderes, häufig genutztes Flag ist
+ <literal>argv</literal>, welches dazu führt, dass
+ Befehlszeilen-Argumente für den Systemauruf
+ &man.execve.2; als Teil der Befehlsausführung
+ aufgezeichnet werden.</para>
+
+ <para>Die <option>filesz</option>-Option spezifiziert die
+ maximale Größe in Bytes, welche eine
+ Audit-Pfad-Datei wachsen darf, bevor sie automatisch beendet
+ und rotiert wird. Die Standardvorgabe <literal>0</literal>
+ 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.</para>
+ </sect3>
+
+ <sect3 id="audit-audituser">
+ <title>Die Datei <filename>audit_user</filename></title>
+
+ <para>Die <filename>audit_user</filename>-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 <literal>alwaysaudit</literal>, welches eine Ansammlung
+ von Ereignissen vorgibt, welche immer für diesen Benutzer
+ aufgezeichnet werden. Das zweite Feld
+ <literal>neveraudit</literal> legt eine Menge an Ereignissen
+ fest, die niemals für diesen Benutzer auditiert werden
+ sollen.</para>
+
+ <para>Das folgende Beispiel einer
+ <filename>audit_user</filename>-Datei zeichnet
+ Anmelde/Abmelde-Ereignisse, erfolgreiche
+ Befehlsausführungen für den Benutzer
+ <username>root</username>, Anlegen von Dateien und
+ erfolgreiche Befehlsausführungen für den Benutzer
+ <username>www</username> auf. Falls das Beispiel zusammen
+ mit der vorstehend als Beispiel gezeigten Datei
+ <filename>audit_control</filename> benutzt wird, dann ist
+ der Eintrag <literal>lo</literal> für Benutzer
+ <username>root</username> überflüssig und
+ Anmelde/Abmelde-Ereignisse werden für den Benutzer
+ <username>www</username> ebenfalls aufgezeichnet.</para>
+
+ <programlisting>root:lo,+ex:no
+www:fc,+ex:no</programlisting>
+ </sect3>
+ </sect2>
+ </sect1>
+
+ <sect1 id="audit-administration">
+ <title>Administration des Audit-Subsystems</title>
+
+ <sect2>
+ <title>Audit-Pfade betrachten</title>
+
+ <para>Audit-Pfade werden im binären BSM-Format
+ gespeichert, daher benötigen Sie spezielle Werkzeuge, um
+ derartige Dateien zu ändern oder Sie in Textdateien zu
+ konvertieren. Der
+ Befehl &man.praudit.1; wandelt alle Pfad-Dateien in ein
+ einfaches Textformat um. Der Befehl &man.auditreduce.1; kann
+ genutzt werden, um die Pfad-Dateien für Analyse,
+ Ausdruck, Archivierung oder andere Zwecke zu reduzieren.
+ <command>auditreduce</command> unterstützt eine Reihe von
+ Auswahl-Parametern einschliesslich Ereignistyp,
+ Ereignisklasse, Benutzer, Datum oder Uhrzeit des Ereignisses und
+ den Dateipfad oder das Objekt, mit dem gearbeitet
+ wurde.</para>
+
+ <para>Das Dienstprogramm <command>praudit</command> schreibt
+ zum Beispiel den gesamten Inhalt einer angegebenen
+ Audit-Protokolldatei in eine simple Textdatei:</para>
+
+ <screen>&prompt.root; <userinput>praudit /var/audit/AUDITFILE</userinput></screen>
+
+ <para><filename><replaceable>AUDITFILE</replaceable></filename>
+ ist hier die zu schreibende Protokolldatei.</para>
+
+ <para>Audit-Pfade bestehen aus einer Reihe von Datensätzen,
+ die wiederum aus Kürzeln (token) gebildet werden, die von
+ <command>praudit</command> fortlaufend zeilenweise ausgegeben
+ werden. Jedes Kürzel ist von einem bestimmten Typ, z.B.
+ enthält <literal>header</literal> einen
+ audit-Datensatz-Header oder <literal>path</literal>
+ enthält einen Dateipfad von einer Suche. Hier ein
+ Beispiel eines <literal>execve</literal>-Ereignisses:</para>
+
+ <programlisting>header,133,10,execve(2),0,Mon Sep 25 15:58:03 2006, + 384 msec
+exec arg,finger,doug
+path,/usr/bin/finger
+attribute,555,root,wheel,90,24918,104944
+subject,robert,root,wheel,root,wheel,38439,38032,42086,128.232.9.100
+return,success,0
+trailer,133</programlisting>
+
+ <para>Dieser Audit stellt einen erfolgreichen
+ <literal>execve</literal>-Aufruf dar, in welchem der Befehl
+ <literal>finger doug</literal> ausgeführt wurde. Das
+ Kürzel des Argumentes enthält die Befehlszeile,
+ welche die Shell an den Kernel weiterleitet. Das Kürzel
+ <literal>path</literal> enthält den Pfad zur
+ ausführbaren Datei (wie vom Kernel wahrgenommen). Das
+ Kürzel <literal>attribute</literal> beschreibt die
+ Binärdatei (insbesondere den Datei-Modus, der genutzt
+ werden kann, um zu bestimmen, ob setuid auf die Applikation
+ angewendet wurde). Das Kürzel <literal>subject</literal>
+ beschreibt den untergeordneten Prozess und speichert daher in
+ Aufeinanderfolge Audit-Benutzer-ID, effektive Benutzer-ID und
+ Gruppen-ID, wirkliche Benutzer-ID und Grppen-ID, Process-ID,
+ Session- ID, Port-ID und Anmelde-Adresse. Beachten Sie, dass
+ Audit-Benutzer-ID und wirkliche Benutzer-ID abweichen: Der Benutzer
+ <username>robert</username> wurde zum Benutzer
+ <username>root</username>, bevor er diesen Befehl
+ ausführte, aber er wird auditiert mit dem
+ ursprünglich authentifizierten Benutzer. Schließlich zeigt
+ das Kürzel <literal>return</literal> die erfolgreiche
+ Ausführung an und <literal>trailer</literal> schließt
+ den Datensatz ab.</para>
+
+ <para><command>praudit</command> unterstützt auch
+ die Ausgabe im XML-Format (die sie über die Option
+ <option>-x</option> auswählen können).</para>
+ </sect2>
+
+ <sect2>
+ <title>Audit-Pfade reduzieren</title>
+
+ <para>Da Audit-Protokolldateien sehr groß sein können,
+ wird ein Administrator höchstwahrscheinlich eine Auswahl
+ an Datensätzen verwenden, wie z.B. alle Datensätze
+ zu einem bestimmten Benutzer:</para>
+
+ <screen>&prompt.root; <userinput>auditreduce -u trhodes /var/audit/AUDITFILE | praudit</userinput></screen>
+
+ <para>Dies wird alle Audit-Datensätze des Benutzers
+ <username>trhodes</username> auswählen, die in der
+ Datei
+ <filename><replaceable>AUDITFILE</replaceable></filename>
+ gespeichert sind.</para>
+ </sect2>
+
+ <sect2>
+ <title>Delegation von Rechten für Audit-Reviews</title>
+
+ <para>Mitglieder der Gruppe <groupname>audit</groupname> haben
+ die Erlaubnis, Audit-Pfade in <filename>/var/audit</filename>
+ zu lesen; standardmässig ist diese Gruppe leer, daher
+ kann nur der Benutzer <username>root</username> die Audit-Pfade
+ lesen. Benutzer können der Gruppe
+ <groupname>audit</groupname> hinzugefügt werden, um
+ Rechte für Audit-Reviews zu gewähren. Da die
+ Fähigkeit, Inhalte von Audit-Protokolldateien zu verfolgen,
+ tiefgreifende Einblicke in das Verhalten von Benutzern und
+ Prozessen erlaubt, wird empfohlen, dass die Gewährung von
+ Rechten für Audit-Reviews mit Bedacht erfolgt.</para>
+ </sect2>
+
+ <sect2>
+ <title>Aktive Überwachung mittles Audit-Pipes</title>
+
+ <para>Audit-Pipes sind nachgebildete (geklonte)
+ Pseudo-Geräte im Dateisystem des Gerätes, welche es
+ Applikationen erlauben, die laufenden Audit-Datensätze
+ anzuzapfen. Dies ist vorrangig für Autoren von Intrusion
+ Detection Software und Systemüberwachungsprogrammen von
+ Bedeutung. Allerdings ist für den Administrator das
+ Audit-Pipe-Gerät ein angenehmer Weg, aktive
+ Überwachung zu gestatten, ohne Gefahr von Problemen durch
+ Besitzerrechte der Audit-Pfad-Datei oder Unterbrechung des
+ Stroms von Ereignissen durch Log-Rotation. Um den laufenden
+ Audit-Ereignisstrom zu verfolgen, geben Sie bitte folgende
+ Befehlszeile ein:</para>
+
+ <screen>&prompt.root; <userinput>praudit /dev/auditpipe</userinput></screen>
+
+ <para>In der Voreinstellung kann nur der Benutzer
+ <username>root</username> auf die
+ Audit-Pipe-Geräte-Knotenpunkte zugreifen. Um sie allen
+ Mitgliedern der Gruppe <groupname>audit</groupname>
+ zugänglich zu machen, fügen Sie eine
+ <literal>devfs</literal>-Regel in
+ <filename>devfs.rules</filename> hinzu:</para>
+
+ <programlisting>add path 'auditpipe*' mode 0440 group audit</programlisting>
+
+ <para>Lesen Sie &man.devfs.rules.5; für weitere
+ Informationen, wie das devfs-Dateisystem konfiguriert
+ wird.</para>
+
+ <warning>
+ <para>Es ist sehr leicht, Rückmeldungszyklen von
+ Audit-Ereignissen hervorzurufen, in welcher das Betrachten
+ des Resultates eines Audit-Ereignisses in die Erzeugung von
+ mehr Audit-Ereignissen mündet. Wenn zum Beispiel der
+ gesamte Netzwerk-I/O auditiert wird, während
+ &man.praudit.1; in einer SSH-Sitzung gestartet wurde, dann
+ wird ein kontinuierlicher, mächtiger Strom von
+ Audit-Ereignissen erzeugt, da jedes ausgegebene Ereignis
+ wiederum neue Ereignisse erzeugt. Es ist anzuraten,
+ <command>praudit</command> an einem Audit-Pipe-Gerät
+ nur von Sitzungen anzuwenden (ohne feingranuliertes
+ I/O-Auditing), um dies zu vermeiden.</para>
+ </warning>
+ </sect2>
+
+ <sect2>
+ <title>Rotation von Audit-Pfad-Dateien</title>
+
+ <para>Audit-Pfade werden nur vom Kernel geschrieben und nur
+ vom Audit-Daemon <application>auditd</application> verwaltet.
+ Administratoren sollten nicht versuchen, &man.newsyslog.conf.5;
+ oder andere Werkzeuge zu benutzen, um Audit-Protokolldateien
+ direkt zu rotieren. Stattdessen sollte das
+ <command>audit</command> Management-Werkzeug benutzt werden,
+ um die Auditierung zu beenden, das Audit-System neu zu
+ konfigurieren und eine Log-Rotation durchzuführen. Der
+ folgende Befehl veranlasst den Audit-Daemon, eine neue
+ Protokolldatei anzulegen und dem Kernel zu signalisieren, die
+ neue Datei zu nutzen. Die alte Datei wird beendet und
+ umbenannt. Ab diesem Zeitpunkt kann sie vom Administrator
+ bearbeitet werden.</para>
+
+ <screen>&prompt.root; <userinput>audit -n</userinput></screen>
+
+ <warning>
+ <para>Falls der <application>auditd</application>-Daemon
+ gegenwärtig nicht läuft, wird dieser Befehl scheitern
+ und eine Fehlermeldung wird ausgegeben.</para>
+ </warning>
+
+ <para>Das Hinzufügen der folgenden Zeile in
+ <filename>/etc/crontab</filename> wird die Log-Rotation alle
+ zwölf Stunden durch &man.cron.8; erzwingen:</para>
+
+ <programlisting>0 */12 * * * root /usr/sbin/audit -n</programlisting>
+
+ <para>Die Änderung wird wirksam, sobald Sie die neue
+ <filename>/etc/crontab</filename> gespeichert haben.</para>
+
+ <para>Die automatische Rotation der Audit-Pfad-Datei in
+ Abhängigkeit von der Dateigröße ist möglich
+ durch die Angabe der Option <option>filesz</option> in
+ &man.audit.control.5;. Dieser Vorgang ist im Abschnitt
+ Konfigurationsdateien dieses Kapitels beschrieben.</para>
+ </sect2>
+
+ <sect2>
+ <title>Komprimierung von Audit-Pfaden</title>
+
+ <para>Da Audit-Pfad-Dateien sehr groß werden können,
+ ist es oft wünschenswert, Pfade zu komprimieren oder
+ anderweitig zu archivieren, sobald sie vom Audit-Daemon
+ geschlossen wurden. Das Skript
+ <filename>audit_warn</filename> kann genutzt werden, um
+ angepasste Aktionen für eine Vielzahl von audit-bezogenen
+ Ereignissen auszuführen, einschliesslich der sauberen
+ Beendigung von Audit-Pfaden, wenn diese geschlossen werden.
+ Zum Beispiel kann man die folgenden Zeilen in das
+ <filename>audit_warn</filename>-Skript aufnehmen, um
+ Audit-Pfade beim Beenden zu komprimieren:</para>
+
+ <programlisting>#
+# Compress audit trail files on close.
+#
+if [ "$1" = closefile ]; then
+ gzip -9 $2
+fi</programlisting>
+
+ <para>Andere Archivierungsaktivitäten können das
+ Kopieren zu einem zentralen Server, die Löschung der alten
+ Pfad-Dateien oder die Reduzierung des alten Audit-Pfades durch
+ Entfernung nicht benötigter Datensätze
+ einschliessen. Das Skript wird nur dann ausgeführt, wenn
+ die Audit-Pfad-Dateien sauber beendet wurden, daher wird es
+ nicht auf Pfaden laufen, welche durch ein unsauberes Herunterfahren
+ des Systems nicht beendet wurden.</para>
+ </sect2>
+ </sect1>
+</chapter>