Syslog
aus FAQ-vServer, der freien Wissensdatenbank
Inhaltsverzeichnis |
Protokolle, Protokolle
Syslog, besser der NewGeneration Syslog ist ein ultramächtiges Werkzeug zum Festhalten von Systemereignissen.
Der Syslog-ng ist ein Daemon, der neben dem Protokollieren von Ergeignissen mit verschiedensten Filtern und Zustandssignalen auch noch lokales und entferntes Logging beherrscht.
Auf unseren Systemen werden alle "auth"-Meldungen, ob erfolgreich oder nicht über das Netzwerk zum Syslog-Sammel-Server gesendet.
Dies ist ein Sicherheitsmechanismus, den wir uns neben einer Menge weiteren anderen Werkzeugen eingerichtet haben um Euch letztlich auf vermehrte Einbruchsversuche hinzuweisen.
Hier nun wieder eine ausführliche Erklärung.. zum Nachbauen ;)
ServerConfig
Denkt daran, das in der /etc/syslog-ng/syslog-ng.conf alles deaktiviert sein sollte, was mit "kern*" zu tun hat, da ein VPS damit nix zu tun hat ;)
Beispiel:
## kern.* -/var/log/kern.log
#log {
# source(s_all);
# filter(f_kern);
# destination(df_kern);
#};
Defaults
In der folgenden Datei stellt Ihr die Menge der Meldungen ein.
/etc/default/syslog-ng CONSOLE_LOG_LEVEL=1 KERNEL_RINGBUF_SIZE=8192
Sources
Ab jetzt wird in der globalen Konfigurationsdatei gearbeitet. Wir werden hier Ziele, Quelle, Filter und Signalhandler erstellen:
Zunächst eine Quelle, nämlich das der Syslog-ng auf einem ZielPort auf Meldungen von seinen Clients wartet, bzw. akzeptiert.
Übrigends klären wir auch, wieviele Verbidnungen der Syslog maximal entgegennehmen soll:
/etc/syslog-ng/syslog-ng.conf
# sources
source remote {
tcp(ip(ServerIP) port(ZielPort)
max-connections(40));
};
Destinations
Nun werden wir ein Ziel definieren:
Alle entgegengenommen Meldungen, die einem bestimmten Muster entsprechen, werden in die Protokolldatei geschrieben.
/etc/syslog-ng/syslog-ng.conf
## Remote logging von VPS
destination df_sysl_remote { file("/var/log/syslog-remote-auth.log"); };
Filters
Hier nun definieren wir, was geloggt werden soll. Schaut mal in den verschiedenen Filtern in Eurer Config nach.
# Logging Remote-Auths /var/log/syslogd-remote-auth.log
log {
source(remote);
filter(f_at_least_info);
destination(df_sysl_remote);
};
Lokale Configs
Auch wieder daran denken, das in der /etc/syslog-ng/syslog-ng.conf alles deaktiviert sein sollte, was mit "kern*" zu tun hat, da ein VPS damit nix zu tun hat ;)
/etc/syslog-ng/syslog-ng.conf
Sources
/etc/syslog-ng/syslog-ng.conf
/etc/syslog-ng/syslog-ng.conf
Filters
Das Ziel ist nun, das alle auth-Meldungen, also Loggins auf Euren Server protokolliert werden und an den entfernten Syslog-Server gesendet werden.
Wir brauchen einen Filter und ein Ziel. Zunächst der Filter:
Ein voreingestellter Filter, der sich um die auth-Signale kümmert existiert bereits:
# filters
# all messages from the auth and authpriv facilities
filter f_auth { facility(auth, authpriv); };
Für das Handling könnt ihr einfach den bereits vorhandenen Eintrag verwenden und an den entsprechenden Stellen mit den neuen Daten erzeten.
Denn in Euren eigenen Logfiles wollt Ihr sicherlich auch erkennen, ob jemand versucht sich auf Eurem Server einzuloggen.
/etc/syslog-ng/syslog-ng.conf
# (alter Eintrag) auth,authpriv.* /var/log/auth.log
log {
source(s_all);
filter(f_auth);
destination(df_auth);
};
# (neuer Eintrag) auth,authpriv.* Logging-Server
log {
source(s_all);
filter(f_auth);
destination(loghost);
};
=== Destinations ===
#destination loghost {
#tcp ("ServerIP" port(ZielPort));
#};
Empfehlenswerte Literatur
http://www.selflinux.org/selflinux/html/syslog-ng03.html
http://www.linux-magazin.de/Artikel/ausgabe/2003/11/tagebuch/tagebuch.html
Suchmaschinen und Man-Pages ;)
[1] Syslog-NG-Homepage: balabit.com/products/syslog_ng/
[2] Referenzmanual: [1]
[3] Beispiel-Konfiguration: [2]
[4] Howto zur Verschlüsselung mit Syslog-NG: [3]
[5] Secure Syslog von SDSC: [4]
[6] Syslog-sec: [5]
[7] RFC 3164, "The BSD Syslog Protocol": [6]
[8] RFC 3195, "Reliable Delivery for Syslog": [7]
[9] Logsurfer: [8]