SelfLinux Sicherheit Samhain Abschnitt 4 | SelfLinux-0.13.0

| Samhain | Autor Formatierung GFDL

#### 4 Konfiguration der Logging-Eigenschaften

Samhain verfügt über viele verschiedene Log-Möglichkeiten, die teilweise erst durch entsprechende Optionen beim Übersetzten der Quellen verfügbar werden.

Jede unterstützte Log-Option lässt sich über die Konfigurationsdatei gesondert konfigurieren und ein- oder ausschalten.

#### 4.1 Unterstützte Log-Möglichkeiten

Samhain unterstützt standardmäßig Email, Syslog, eine Logdatei (/var/log/samhain_log), und die Konsole (bzw. stderr, wenn Samhain nicht als Daemon läuft). Weiterhin ist es möglich, Log-Nachrichten an ein externes Skript oder ein Programm zu übergeben, und auf diese Weise beliebige weitere Log-Möglichkeiten zu realisieren.

Weitere Möglichkeiten sind:

1. Logging zu einem Log-Server. Dies wird weiter unten in einem eigenen Abschnitt näher beschrieben.
2. Logging zu einem Prelude IDS-System. Hierzu muss die libprelude-Bibliothek installiert sein, und die Option --with-prelude muss bei ./configure angegeben werden, wenn die Quellen übersetzt werden. Der Sensor-Name, der beim Ausführen des Prelude-Programmes sensor-adduser (zum Anmelden eines Sensors) angegeben werden muss, lautet Samhain.
3. Logging zu einer relationalen Datenbank (MySQL, PostgreSQL, Oracle). Hierzu muss die entsprechende Client-Bibliothek der Datenbank installiert sein, und die Option --with-database=mysql (oder postgresql, oracle) muss bei ./configure angegeben werden, wenn die Quellen übersetzt werden.

#### 4.2 Filtern von Log-Berichten

Jede der unterstützten Log-Möglichkeiten lässt sich individuell einstellen. Einerseits ist es möglich, eine Untergrenze anzugeben für die Dringlichkeitsstufe / den Level der Nachrichten, die man erhalten möchte. Je niedriger man diese Untergrenze angibt, desto ausführlicher ist das Logging. Andererseits ist es möglich, das Logging auf bestimmte Klassen von Ereignissen zu beschränken.

#### 4.2.1 Levels (Dringlichkeitsstufen)

Die Reihenfolge der Levels ist:

debug | nur zur Fehlersuche
info | detaillierte Informationen
notice | Informationen
warn | Warnungen
mark | Zeitmarken
err | Fehler
crit | kritische Probleme
alert | Start/Stopp des Programmes; Fehler, die zum Programmabbruch führen

Der gewünschte Level wird eingestellt in der [Log]-Sektion der Konfigurationsdatei mit den Optionen der Form xxxSeverity = level:

/etc/samhainrc

    [Log]
    # E-Mail
    MailSeverity = crit
    # Konsole
    PrintSeverity = info
    # Syslog
    SyslogSeverity = err
    # Logdatei
    LogSeverity = err
    #
    # Log Server (optional)
    # ExportSeverity = err
    #
    # Datenbank
    # DatabaseSeverity = err
    #
    # Prelude
    # PreludeSeverity = crit

#### 4.2.2 Konfigurierbare Levels (Dringlichkeitsstufen)

Der Level einer Nachricht ist im Allgemeinen festgelegt. Die folgenden Nachrichten haben konfigurierbare Levels: Änderungen bei überwachten Dateien, Zugriffsfehler bei Dateien und Directories, Dateien mit ungültigen UIDs/GIDs oder seltsamen Dateinamen (nicht-druckbare Zeichen). Diese Levels werden konfiguriert in der [EventSeverity]-Sektion der Konfigurationsdatei:

/etc/samhainrc

    [EventSeverity]
    #
    # Überwachte Dateien (für die Bedeutung von 'ReadOnly',
    # 'LogFiles', usw. siehe Abschnitt Konfiguration der Integritätseigenschaften
    # innerhalb des Dateisystems).
    #
    SeverityReadOnly=crit
    SeverityLogFiles=crit
    SeverityGrowingLogs=warn
    SeverityIgnoreNone=crit
    SeverityIgnoreAll=info
    #
    # Zugriffsfehler für Dateien (Files) und Directories (Dirs)
    #
    SeverityFiles=err
    SeverityDirs=err
    #
    # Dateinamen, ungültige UIDS/GIDs
    #
    SeverityNames=info

#### 4.2.3 Ereignisklassen

Die folgenden Ereignisklassen sind definiert:

EVENT | Überwachte Ereignisse (z.B. Änderungen einer Datei)
START | Start/Stopp-Meldungen
STAMP | Zeitmarken
LOGKEY | Der Schlüssel zur Verifikation der Log-Datei (siehe Abschnitt Verifikation der lokalen Log-Datei)
ERROR | Fehlermeldungen
OTHER | Alles andere (z.B. detaillierte Informationen)
AUD | System-Aufrufe (für Fehlersuche)

Standardmäßig sind alle Ereignisklassen für alle Log-Möglichkeiten zugelassen. Will man dies ändern, so geschieht dies in der [Log]-Sektion der Konfigurationsdatei mit Optionen der Form xxxClass = Liste der zugelassen Ereignisklassen, wobei in der Liste Leerzeichen zur Separation benutzt werden sollten, z. B.:

/etc/samhainrc

    [Log]
    # E-Mail
    MailClass = EVENTS ERROR LOGKEY
    # Konsole
    PrintClass = EVENTS ERROR STAMP
    # Syslog
    SyslogClass = START
    # Logdatei
    LogClass = EVENTS START STAMP ERROR OTHER

#### 4.3 Ausschalten von Log-Möglichkeiten

Möchte man eine unterstützte Log-Möglichkeit nicht benutzen, so kann man sie ausschalten, indem man den Level auf den speziellen Wert none (nichts) setzt, z. B. MailSeverity = none.

#### 4.4 Spezielle Optionen

Einige Log-Möglichkeiten erfordern spezielle Optionen, die im Folgenden beschrieben werden.

#### 4.4.1 Email

Spezielle Optionen für Email werden in der [Misc]-Sektion der Konfigurationsdatei gesetzt:

/etc/samhainrc

    [Misc]
    #
    # Für Email ist die Angabe der Empfängeradresse notwendig mit:
    SetMailAddress = xyz@example.com
    #
    # Ferner kann es notwendig sein, ein Relay anzugeben:
    SetMailRelay = relay.example.com
    #
    # Nachrichten werden i.A. zunächst in eine Warteschlange gestellt, und
    # dann in einer Email versendet. Die maximale Anzahl von Nachrichten
    # in der Warteschlage ist konfigurierbar (Obergrenze: 128):
    SetMailNum = 10
    #
    # Auch die maximale Zeitspanne (in Sekunden) bis zum Versenden der
    # Nachrichten in der Warteschlange ist konfigurierbar:
    SetMailTime = 86400
    #
    # Schließlich ist es möglich, die Subjekt-Zeile der Email zu bestimmen:
    MailSubject = xyz

#### 4.4.2 Datenbank

Für den Zugriff auf eine Datenbank ist es notwendig, die relevanten Informationen anzugeben. Dies geschieht in der [Database]-Sektion der Konfigurationsdatei:

/etc/samhainrc

    [Database]
    #
    # Zunächst wird der Name der Datenbank benötigt (standardmäßig 'samhain')
    SetDBName = samhain
    #
    # Außerdem ist der Name der Log-Tabelle anzugeben:
    SetDBTable = log
    #
    # Auf welchem Rechner läuft der Datenbank-Server ?
    SetDBHost = localhost
    #
    # Für den Zugriff auf die Datenbank sind Benutzername und Passwort notwendig:
    #
    # Benutzername
    SetDBUser = samhain
    #
    # Passwort (kein voreingestellter Standardwert)
    SetDBPassword = ...
    #
    # Soll der Log-Server eigene Zeitstempel für erhaltene Nachrichten loggen ?
    SetDBServerTstamp = True
    #
    # Soll eine ständige Verbindung zur Datenbank aufrecht erhalten werden ?
    UsePersistent = True