[[Vorlage(archiviert, )]] {{{#!vorlage Wissen [:Pakete_installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] [:sudo: Root-Rechte] [:Editor: Einen Editor öffnen] }}} [[Inhaltsverzeichnis(1)]] Anwendungen und insbesondere Serverdienste schreiben Protokolldateien, um bestimmte Systemzustände, Ereignisse oder Schwellwerte zu protokollieren. Nicht nur in Testphasen kann es sinnvoll sein, diese Protokolle zu sammeln und auszuwerten. [wikipedia:Syslog: Syslog] ist faktisch ein Standard zur Übermittlung von Protokoll-Meldungen in einem Netzwerk. [http://www.balabit.com/network-security/syslog-ng/ Syslog-ng] {en} ist eine weit verbreitete, freie Implementierung eines Syslog-Servers unter Linux oder Unix und bietet weitere Funktionen im Vergleich zu syslog. Zusätzlich wurden mit syslog-ng einige Schwachstellen beseitigt. = Installation = Um syslog-ng zu installieren[1], benötigt man das Paket [[Vorlage(Paketinstallation, syslog-ng)]] {{{#!vorlage Hinweis Die Installation von syslog-ng entfernt rsyslog. }}} = Pfad zu den Log-Dateien = Die Log-Dateien liegen dann unter '''/var/log'''. Standardmäßig loggt syslog-ng in die Datei '''/var/log/syslog''' = Konfiguration = Die Einstellungen für die Logs findet man in der Datei '''/etc/syslog-ng/syslog-ng.conf'''. Hier sind einige Logs voreingestellt. Will man weitere Logs definieren, muss man in dieser Konfigurationsdatei eine Quelle, einen Filter und ein Ziel (Englisch: source, filter, destination) definieren. So kann man syslog-ng auch als Syslog-Server im Netzwerk einrichten. Die Konfiguration kann anschließend mit dem Befehl {{{ #!vorlage Befehl syslog-ng --syntax-only }}} überprüft werde. == Beispiel: Log-Dateien des Routers == Um das Prinzip zu verdeutlichen, sei nachfolgend beschrieben, wie man syslog-ng dazu bringt, die Log-Dateien des heimischen Netzwerkrouters zu verwalten. Die Benutzung von syslog-ng bietet sich an, da zwar auch ein normaler syslogd diese Daten empfangen und in eine gemeinsame Log-Datei schreiben kann, es jedoch nur mit syslog-ng möglich ist, die Daten anhand der Absenderadresse (der IP-Adresse des Routers) in eine separate Log-Datei zu schreiben. Angenommen der Router hat die IP-Adresse 192.168.0.1 und ist in der Lage, die Logfiles über UDP-Port 514 an einen Syslog-Server zu übermitteln (das ist Standard). Dann muss man zunächst dem Router mitteilen, dass er seine Logs an den Server zu richten hat. Das kann man bei gängigen Routern über eine Web-Oberfläche machen (siehe Router-Handbuch). Das setzt natürlich voraus, dass der Router seine Logs an einen syslog-Server richten kann. In Datei '''/etc/syslog-ng/syslog-ng.conf''' müssen nun für diese Logs Quelle, Ziel und Filter eingetragen werden. Hierzu öffnet man die Datei mit Rootechten [3] in einem Editor[4] und fügt die folgenden Zeilen ein: {{{ source s_udp { udp(port(514)); }; }}} Der obige Befehl fügt die Quelle zu. Das Quellen-Tag kennt auch noch den Parameter `ip`. Dieser Parameter ist optional. Hier kann die IP-Adresse des Hosts (nicht der Logging-Gäste) angegeben werden. Da das nur der Syslog-Server sein kann, kann man hier auch mit {{{ source s_udp { udp(ip(127.0.0.1) port(514)); }; }}} die Loopback-Adresse des Servers eingeben oder {{{ source s_udp { udp(ip() port(514)); }; }}} die IP-Adresse des Servers eingeben oder eben diesen Parameter weglassen. Nun muss noch ein Ziel für die Logs eingegeben werden. Dazu dient der Eintrag `destination`: {{{ destination d_router { file("/var/log/router.log"); }; }}} Der Name des Zieleintrags (hier `d_router`) kann frei vergeben werden. Außerdem muss ein Filter definiert werden. Das passiert mit dem Eintrag {{{ filter f_router { host("192.168.0.1"); }; }}} Der Name des Filters (hier `f_router`) kann frei vergeben werden. Als Host wird die IP-Adresse des Routers eingetragen. Quelle, Ziel und Filter müssen schließlich noch im Log-Tag zusammengeführt werden: {{{ log { source(s_udp); filter(f_router); destination(d_router); }; }}} Nachdem die Datei '''/etc/syslog-ng/syslog-ng.conf''' gespeichert wurde, muss der Syslog-Dienst im Terminal[2] neu gestartet werden: {{{#!vorlage Befehl sudo /etc/init.d/syslog-ng restart }}} Wenn nun keine Fehlermeldung erscheint, lauscht der Syslog-Server auf Port 514 auf syslogs vom Router und schreibt sie in die Datei '''/var/log/router.log'''. An diesem Beispiel soll nur das Prinzip erläutert werden. Weitergehende Informationen sind der [https://www.balabit.com/sites/default/files/documents/syslog-ng-ose-latest-guides/en/syslog-ng-ose-guide-admin/html/index.html offiziellen Dokumentation] {en} zu entnehmen. = Links = * [http://www.balabit.com/network-security/syslog-ng/opensource-logging-system/overview Webseite von syslog-ng] {en} * [wikipedia:Syslog: syslog bei Wikipedia] * [wikipedia:Syslog-ng: syslog-ng bei Wikipedia] * [http://www.wikidorf.de/reintechnisch/Inhalt/SyslogNGEinfuehrung Einführung in syslog-ng] {de} * [https://wiki.debian.org/DebianEdu/HowTo/syslog-ng syslog-ng howto] {en} #tag: Netzwerk, System, Server