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.
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:
-
Logging zu einem Log-Server. Dies wird weiter unten in einem
eigenen Abschnitt
näher beschrieben.
-
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.
-
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.
|
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.
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
|
|
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
|
|
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
|
|
|
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.
|
Einige Log-Möglichkeiten erfordern spezielle Optionen, die im Folgenden
beschrieben werden.
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
|
|
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
|
|
|
|