Zum Inhalt springen

Einrichten eines Hetzner-Servers – Logfiles

Bei Ubuntu ist der rsyslogd als Syslog-Daemon vorinstalliert. Der startet automatisch. Die Konfiguration ist einfach, und den meisten Usern wird die Default-Konfiguration völlig genügen. rsyslog stellt eine Reihe von facilities und priorities zur Verfügung. Dienste, die zum Syslog loggen wollen, deklarieren für sich eine facility und für eine Log-Nachricht eine priority, und rsyslog schreibt diese Nachricht dann in das passende Log. Natürlich ist es wichtig, dass man als Admin die Logs auch regelmäßig liest (oder von geeigneten Parsern lesen lässt und dann per Mail benachrichtigt wird).

Kleine Änderungen

Standardmäßig schreibt rsyslog alles, was an die facilities auth und authpriv geht, nach /var/log/auth.log und alles andere nach /var/log/syslog. Zusätzlich werden noch alle Aktionen des Kernels (facility kern) nach /var/log/kern.log geschrieben.  Bis jetzt läuft nur der sshd als weiterer Dienst. Der loggt standardmäßíg auf die facility auth. 

Ach ja, ein weiterer Dienst läuft bereits:  Der Cron-Daemon. Der startet regelmäßige Aktionen wie z.B. das Aufräumen von tmp-Verzeichnissen oder das im nächsten Abschnitt beschriebene Rotieren von Log-Dateien. Diese Aktionen werden in einem eigenen Logfile notiert und aus dem syslog gestrichen.

Beim Aufsetzen weiterer Dienste ist es wichtig, deren Logging zu konfigurieren. Nicht alle Dienste loggen über den syslogd, manche haben ihre eigenen Log-Möglichkeiten. So schreibt das Tool rkhunter sein Log direkt und nicht über den rsyslogd.

Log-Rotation

Neue Meldungen werden an bestehende Logfiles angehängt. Die wachsen. Und wachsen. Damit nicht eines Tages die Platte voll ist, gibt es logrotate. Dieser sympathische Dienst wird einmal am Tag per cron gestartet. Er schaut sich an, wie alt die Logfiles sind, und wenn ein voreingestelltes Alter erreicht ist, wird ein neues Logfile angelegt. Das alte wird archiviert, und es wird eine Höchstzahl von Archiven aufbewahrt und alle älteren gelöscht.

Das verhindert nicht nur das Überlaufen der Platte, sondern erfüllt auch wichtige Anforderungen an den Datenschutz, sofern fremde Benutzer den Server nutzen. Schließlich können Benutzernamen, IPs, Aktionen geloggt werden. Das sind zweifelsfrei personenbezogene Daten. Deren zeitweise Erfassung ist aus technischen Gründen nötig, um Fehler zu finden, wenn etwas nicht funktioniert. Nach einem vernünftigen Zeitraum MÜSSEN solche Daten aber auch wieder gelöscht werden. Ja, unwiderbringlich. Ich weiß, dass es Admins gibt, die das Löschen von Logfiles als Sakrileg sehen, aber man wird Schwierigkeiten haben, vor Gericht zu begründen, warum 20 Jahre alte Dateien nicht gegen die DSGVO verstoßen. Es gibt auch immer wieder Versuche von Regierungen, Serverbetreiber zum Speichern von Nutzerdaten zu verpflichten, aber in der EU wurden diese Versuche bislang alle als rechtswidrig erklärt.

Ubuntu bringt für alle Dienste bei deren Installation Konfigurationen von logrotate mit. Das eigentliche syslog wird im Standard täglich rotiert. Sieben Dateien werden aufbewahrt und (außer der neuesten) komprimiert. Alle anderen rsyslog-Files (wir haben bisher auth.log und cron.log genutzt) werden wöchentlich rotiert, und es werden vier Archive behalten. Ein Blick ins Verzeichnis /var/log zeigt, dass diese Einstellungen vernünftig sind – nur auth.log wird recht schnell unleserlich groß. Ich ändere zwei Dinge: auth.log wird wie syslog behandelt, und von diesen Dateien werden 14 Archive behalten. Ich bin kein Vollzeit-Administrator und nicht so oft am Gerät, da muss ich mehr speichern. Ein Unternehmen, das auch am Wochenende die IT besetzt, kommt mit 2 Archiven aus, wenn die Logs täglich geprüft werden.

rsyslogd muss natürlich nach Änderung der Konfiguration neu gestartet werden. Logrotate liest bei jedem Aufruf seine aktuelle Konfiguration ein.

Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.