Logfiles
Allgemeines zu den Logfiles unter Linux

 
 

Allgemein

Unter Linux finden sich die meisten Log-Files in /var/log. Dort finden sich beispielsweise:

  • auth.log
  • cron
  • debug
  • dmesg
  • kern.log
  • lastlog
  • mail.err
  • mail.info
  • mail.warn
  • messages
  • mysql.log
  • syslog
  • user.log

Manche Anwendungen speichern die Logs an anderern Ordnern. Es ist beispielsweise nicht unüblich das Webserverlogs direkt im Kundenverzeichnis (/var/www/domain.tld/logs/) gespeichert werden, damit dieser Zugriff auf diese hat. Aus den einzelnen Logs können essentielle Informationen entnommen werden: Informationen darüber, ob alle Anwendungen so funktionieren wie sie sollen, ob ein Angriff oder Einbruch stattfindet beziehungsweise statt gefunden hat und ähnliches.

So finden sich in der Datei auth.log zum Beispiel Authentifizierungsinformationen wie der letzte Login:


Feb 13 15:56:32 localhost sshd[59289]: Accepted password for root 
  from 91.16.yy.xx port 36254 ssh2

Feb 13 15:56:32 localhost sshd[59289]: pam_unix(sshd:session): session opened 
  for user root by (uid=0)

Ist hier ein Login von einer IP zu verzeichnen der nie hätte zustande kommen dürfen, beispielsweise aus einem anderen Land, ist das ein Zeichen für einen Einbruch. Sollte allerdings ein Einbruch als "root" geschehen ist es recht wahrscheinlich das die Logfiles ersetzt wurden um Hinweise auf den Einbruch zu vernichten.

In diesem Log lassen sich aber auch fehlerhafte Logins einsehen:


Feb 13 12:47:47 localhost sshd[46905]: 
  pam_unix(sshd:auth): authentication failure; 
  logname= uid=0 euid=0 tty=ssh ruser= rhost=220.113.135.154  user=root

Feb 13 12:47:48 localhost sshd[46905]: 
  Failed password for root from 220.113.135.154 port 51178 ssh2

Mithilfe des Auth logs lässt sich auch nachvollziehen wer, wann und wie lange eingeloggt war. Hierbei ist auch der Befehl "lastlog" hilfreich, welcher von allen Nutzern im System den letzten Login anzeigt:


lyra:/var/log# lastlog
Username         Port     From             Latest
root             pts/0    pyy.dip.t-       Wed Feb 13 15:56:32 +0100 2013
daemon                                     **Never logged in**
bin                                        **Never logged in**
sys                                        **Never logged in**
sync                                       **Never logged in**
games                                      **Never logged in**
man                                        **Never logged in**
lp                                         **Never logged in**
...

In den Logs syslog oder messages finden sich meist sämtliche Nachrichten des Systems.

Im debug Log finden sich Debugging Informationen. Beispielsweise:


Feb 12 19:05:53 localhost kernel: 
  [6742692.463009] TCP: Peer 93.208.34.128:65222/80 
  unexpectedly shrunk window 3340316157:3340379397 (repaired)
 

Apache Logs

Das Access / Combined Log des Webservers liefert beispielsweise folgende Zeilen:


5.9.7.208 - - [13/Feb/2013:16:15:01 +0100] 
"GET / HTTP/1.0" 301 8375 "-" 
"Mozilla/5.0 (compatible; MJ12bot/v1.4.3; http://www.majestic12.co.uk/bot.php?+)"

5.9.7.208 - - [13/Feb/2013:16:15:04 +0100] 
"GET /index HTTP/1.0" 406 376 "-" 
"Mozilla/5.0 (compatible; MJ12bot/v1.4.3; http://www.majestic12.co.uk/bot.php?+)"

208.115.113.88 - - [13/Feb/2013:16:30:49 +0100] 
"GET / HTTP/1.1" 301 8379 "-" 
"Mozilla/5.0 (compatible; Ezooms/1.0; ezooms.bot@gmail.com)"

Die erste Spalte zeigt dabei die IP von welcher der Zugriff stattgefunden hat. Dannach folgt das Datum, der Request Typ und das Protokol (GET / HTTP/1.0). Anschliessend der HTTP-Status Code (301 » permanente Weiterleitung).

Apache bietet die Möglichkeit das Logging für jeden einzelnen vHost vorzunehmen. Dies sorgt für eine klare Trennung der vHosts und unterstützt den Administrator bei der Analyse enorm, da dadurch die wichtige Übersichtlichkeit bewahrt werden kann.


LogFormat combined \"%h %1 %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\""
ErrorLog /var/www/www.domain.tld/logs/error.log
CustomLog /var/www/domain.tld/logs/access.log combined
LogLevel warn

Der obere Ausschnitt eines vHosts konfiguriert einen separaten access.log und error.log für den vHost. Über die Direktive LogFormat ist eine Art Template für das Logging mit dem Namen combined definiert. Es bestimmt die Ausgabe im Logfile, welcher mit "combined" angegeben wird. In diesem Fall wird der CustomLog nach den in LogFormat definierten Vorgaben angelegt.

 

Postfix Logs

Postfix speichert seine Log-Informationen in /var/log/mail.log. Hier werden sämtliche Einträge auch in Bezug auf die Queue abgelegt. Dazu werden Warnungen noch einmal zusätzlich in /var/log/mail.warn und Fehler in /var/log/mail.err abgelegt, damit keine Loginformationen verloren gehen. Außerdem erhöht es die Übersichtlichkeit.

Im folgenden ist ein Eintrag aus einem Postfix-Log gegeben, welcher einen Login eines Clients protokolliert. Daraufhin wurde von diesem Nutzer eine E-Mail versendet. Wie wir an postfix/qmgr sehen können, wurde das erscheinen der E-Mail in der Queue protokolliert. Als nächstes folgt die Bestätigung, dass der Client die verbindung zum SMTP-Server geschlossen hat. Nachdem die E-Mail erfolgreich zugestellt wurde (status=sent) wird noch das Entfernen der Mail aus der Queue bestätigt.


Feb 20 20:53:28 Debian postfix/smtpd[28075]: AC733394073E: 
  client=Debian[127.0.0.1], sasl_method=LOGIN, sasl_username=user@domain.tld

Feb 20 20:53:28 Debian postfix/cleanup[28077]: AC733394073E: 
  message-id=<20130220195328.AC733394073E@Debian.localdomain>

Feb 20 20:53:28 Debian postfix/qmgr[17607]: AC733394073E: 
  from=<user@domain.tld>, size=2528, nrcpt=1 (queue active)

Feb 20 20:53:28 Debian postfix/smtpd[28075]: 
  disconnect from Debian[127.0.0.1]

Feb 20 20:53:30 Debian postfix/smtp[28078]: AC733394073E: 
  to=<weranderes@domain.tld>, relay=mx-xy.domain.tld[321.321.321.321]:25, 
  delay=1.7, delays=0.18/0.04/0.36/1.2, dsn=2.0.0, status=sent (250 
  Requested mail action okay, completed, id=0Lbt1s-1UXeqk1L1Q-00jIhF)

Feb 20 20:53:30 Debian postfix/qmgr[17607]: AC733394073E: removed

Dieser Auszug aus dem Log von Postfix zeigt einen Versuch mit einer gefälschten IP (in diesem Fall die vom SMTP-Server) einen SMTP-HELO-Request abzuschicken. Durch geeigenete Konfiguration erkennt Postfix, dass dies nicht Sinn der Sache ist und entschließt sich die SMTP-Verbindung mit einem reject zu beenden.


postfix/smtpd[2694]: NOQUEUE: reject: RCPT from 
  321-321-321-321.dynamic-ip.hinet.net[321.321.321.321]: \
  
554 5.7.1 <123.123.123.123>: Helo command rejected: Faked address!; 
  from=<sender@domain.tld> to=<empfänger@domain.tld> 
  proto=SMTP helo=<123.123.123.123>
 

Logrotate

Einige Logger haben einen logrotate Dienst integriert (lard z.B.) bei anderen ist die Verwendung von logrotate notwendig. Logrotate wird genutzt um ein Überfüllen des Servers mit Logs zu verhindern, dabei werden ältere Logfiles komprimiert und nach einer einstellbaren Vorhaltezeit gelöscht.

Einrichten von Logrotate

Logrotate läst sich über den Konfigurationsfile in /etc/logrotate.conf einstellen. Dazu gibt es noch das Verzeichnis /etc/logrotate.d in dem andere Software (z.B. Apache2) ihre Konfigurationen zur Benutzung von logrotate ablegen können. Ein Konfigurationsbeispiel vom Apache2:


/var/log/apache2/*.log {
weekly
missingok
rotate 52
compress
delaycompress
notifempty
create 640 root adm
sharedscripts
postrotate
    /etc/init.d/apache2 reload > /dev/null
endscript
prerotate
    if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
        run-parts /etc/logrotate.d/httpd-prerotate; \
    fi; \
endscript
}

Hier ist zu sehen (/var/log/apache2/*.log), dass diese Sektion auf alle .log-Dateien in dem Verzeichnis /var/log/apache2/ zutrifft.

In dieser Section kann dann die eigentliche Konfiguration erfolgen. Im folgenden werden die wichtigsten Parameter erklärt.

  • weekly : rotiert die Dateien jede Woche. alternativ: daily
  • rotate n : maximal n Dateien behalten.
  • compress : Alte Dateien mit gzip komprimieren. alternativ: nocompress
  • delaycompress : Dateien vom Vortag nicht komprimieren. alternativ: compress
  • notifempty : Datei nicht rotieren, wenn diese leer ist. alternativ: ifempty
  • create xx user group : Neue Dateien unter gegebenem User und Gruppe anlegen.
  • sharedscripts : Für jeden Logfile einzelne prerotate- und postrotate-Scripte ausführen. alternativ: nosharedscripts.
  • postrotate + endscript : Diese Zeilen werden ausgeführt nach(post) oder vor(pre) dem Rotate. alternativ : prerotate + endscript
 

Logüberwachung

Ist eine kurze Zusammenfassung der Logfiles gewünscht, um sich einen Überblick zu verschaffen, kann logwatch genutzt werden. Logwatch ist in Perl geschrieben und ermöglicht das Zusammenfassen der wichtigsten Inhalte von Logdateien. Die meisten Dienste werden von Haus aus unterstüzt, sprich es sind schon vorkonfigurierte Richtlinien definiert, mit denen Logwatch die Zusammenfassungen erstellt.

Eine kurze Liste der von Haus aus unterstützten Dienste:

  • Firewall: iptables / Fail2Ban
  • DNS-Server: BIND
  • SSH und OpenVPN
  • Webserver: Apache
  • Mailserver: Postfix / Sendmail / Exim / qMail / Dovecot / Courier
  • SpamAssassin
  • FTP-Server: PureFTPd / ProFTPD / vsftpd
  • ClamAV
  • Samba

Mit etwas Perl-Erfahrung können eigene Dienste implementiert werden.

Der folgende Befehl soll beispielhaft die Verwendung zeigen. Er erstellt eine Zusammenfassung der letzten 30 Tage und verschickt diese per E-Mail an die angegebene Adresse.

logwatch --detail low --range "-30 days" --mailto nobody@domain.tld 

Ein weiteres Features ermöglicht logwatch auch die Ausgabe im formatierten html. In Kombination mit Cron kann ein regelmäßiger Report erstellt werden.

 

Hotline
 
Hotline des Rechenzentrums

Fragen? Rufen Sie uns an!
Montag - Freitag 10:00 - 19:00 Uhr

+49 69 - 900 180 - 0

 
Aktionen & News
 

Dedizierte Supermicro Xeon Server - ab 70,00 Euro

Angebote

 

Zweiter Standort
 
Hotline des Rechenzentrums

Erfahren Sie mehr über unseren zweiten Standort in der Hanauer Landstrasse in Frankfurt am Main.

mehr erfahren

Zertifizierungen
 
TüV geprüftes Rechenzentrum
ISO 27001 zertifiziertes Rechenzentrum
ISO 9001 zertifiziertes Rechenzentrum


Knowledge Base
 

Hilfreiche Artikel zum Thema Netzwerk, Server & IT.

mehr erfahren


Galerie
 

Sehen Sie sich in einem virtuellen Rundgang in unserem Rechenzentrum um:

Niederspannungshauptverteilung Unterbrechungsfreie Strom Versorgung
Kaltwassererzeuger Bereitstellung individueller SAT-Dienstleistungen


100% Ökostrom
 
100% Öko-Strom