Zentraler Loghost

Ein zentraler Loghost dient als gemeinsamer Ablageplatz für Protokolldateien der unterschiedlichsten Geräte, wie z.B. Switche, Router usw. Auch Windows- Systeme können ihre Protokolldateien an einen Syslog Server übermitteln.
Oftmals reicht nach den Sicherheitsanforderungen ein einfaches System wie das hier beschriebene. Zum Einsatz kommt hier ein unter Linux sehr verbreiteter Syslog-Server namens syslog-ng zum Einsatz.

Ziel ist es auf einem Linux-System eine gemeinsame Ablage für Logdateien zu schaffen, die in einer Struktur mit Rechnernamen/IP-Adressen und Datum abgelegt werden.


Vorbereitung und Installation

Das Logverzeichnis ist in diesem Fall ein LVM2 Volume, das unter /data in das Dateisystem eingeklinkt wird.

Aus Performancegründen sollte das Schreiben von Zeitstempeln beim Zugriff auf Dateien und Ordner im Logverzeichnise abgeschaltet werden. Genau das erreicht man mit dem Parameter noatime.

/etc/fstab
...
/dev/mapper/mon001--vg-lv--data /data       ext4    defaults,noatime     0       2
...


Syslog-NG ist in den Repositories von Ubuntu 16.04 derzeit in der Version 3.5.6 vorhanden. Die Installation erfolgt, wie bei Debian basierten Systemen üblich, nach  "apt-get update" mittels "apt-get install syslog-ng".


# syslog-ng --version
syslog-ng 3.5.6
Installer-Version: 3.5.6
Revision: 3.5.6-2.1 [@416d315] (Ubuntu/16.04)
Compile-Date: Oct 24 2015 03:49:19
Available-Modules: confgen,syslogformat,affile,afuser,system-source,dbparser,afsmtp,afprog,redis,cryptofuncs,afamqp,tfgeoip,afmongodb,linux-kmsg-format,afsql,afstomp,csvparser,basicfuncs,afsocket-notls,json-plugin,afsocket,afsocket-tls
Enable-Debug: off
Enable-GProf: off
Enable-Memtrace: off
Enable-IPv6: on
Enable-Spoof-Source: on
Enable-TCP-Wrapper: on
Enable-Linux-Caps: on
Enable-Pcre: on

Konfiguration

Nun geht es an die Anpassung der Hauptkonfigurationsdatei:

/etc/syslog-ng/syslog-ng.conf
...
options {
    use_dns(yes);
    use_fqdn(yes);
    dns_cache(yes);
    dns-cache-size(2000);
    dns-cache-expire(86400);
};
...


Das Setzen dieser Parameter bewirkt, dass die Hosts mit ihrem FQDN angelegt werden und dass die DNS Einträge (maximal 2000) für 1 Tag (86400 Sekunden) gecached werden.

Nun fehlt noch die Anpassung von syslog-ng damit dieses auch Logs entfernter Systeme entgegen nimmt. Hierzu wird eine Datei /etc/syslog-ng/conf.d/remote.conf angelegt. Der Inhalt dieser Datei ist im einfachsten Fall:

source s_udp { udp(); };
destination remotelog { file ("/data/log/$HOST/$YEAR/$MONTH/$FACILITY.log" create-dirs(yes)); };
log { source(s_udp); destination (remotelog); };
Nach einem Neustart des Syslog-NG Daemons durch "service restart syslog-ng" ist das System bereit und lauscht auf Port 514/UDP für eingehende Syslog Nachrichten.

Empfängt das System vom Host www.bayreuth.tk eine Facility 1 Nachricht, so wird diese unter

/data/log/www.bayreuth.tk/2017/09/11/local1.log

aufgezeichnet.