Linux-Arbeitskreis Hamburg

Protokolldateien

Grundlagen

Unser Linux-Server protokolliert alle Aktionen in verschiedenen Dateien mit. Das Wissen aus diesen Dateien kann wichtig werden, wenn ein Benutzer mit seinem Account Unfug treibt. Solange, bis wir Auswertungsscripten erstellt haben, muß diese Übersicht der Dateien genügen.

Korrekturen und Ergänzungen zu den Ausführungen sind willkommen.

Allgemein

/var/log/messages

Hier werden sehr viele unterschiedliche Vorgänge protokolliert. Wichtig ist hier vor allem, daß jeder Versuch den Benutzer zu wechseln (mittels su) hier protokolliert wird.
Der Kernel, Samba, DHCP, der Nameserver und viele andere Prozesse machen hier Einträge. Die meisten Einträge werden beim Booten bzw. beim Herunterfahren des Systems vorgenommen.

/var/log/warn

Samba mach auch in dieser Datei Einträge. Warum ist momentan nicht klar. Ansonsten sind hier Meldungen zu finden, die auf Fehler hinweisen. Auch Fehlermeldungen für Festplattenzugriffe finden sich hier.

/var/log/lastlog

Aus dieser Datei geht der jeweils letzte Einwahltermin (per Telnet) aller Benutzer hervor. Die Datei wird nicht direkt gelsen, sondern über den Aufruf des Programmes /usr/sbin/lastlog ausgelesen.

/var/log/wtmp

In dieser Datei werden alle Ein- und Auslogvorgänge protokolliert. Man darf sich die Datei aber nicht direkt anzeigen lassen, da sie in einem gepackten Format vorliegt. Zum Auslesen der Daten dient der Befehl /usr/bin/last.

/var/run/utmp

Hier wird festgehalten, wer momentan an den einzelnen Terminals eingeloggt ist. Auch diese Datei ist gepackt und kann daher nicht direkt angezeigt werden. Zum Auslesen der Daten dienen /usr/bin/w,  /usr/bin/who und /usr/bin/finger.

Apache

/var/log/httpd.access_log

Alle Zugriffe protokolliert der Apache mit Namen des Rechners, Zeit, Methode und Adresse der Datei. Aus dieser Datei kann man entnehmen, welche Seiten wie oft nachgefragt werden und von wem. Für die Auswertung dieser Datei gibt es eine Vielzahl von Programmen, die man sich besorgen kann, z.B. wwstat oder webalizer.

hh1-7.lmz.hh.schule.de - - [28/Apr/1998:16:00:11 +0200] "POST /cgi-bin/admin HTTP/1.0" 200 320
hh1-7.lmz.hh.schule.de - - [28/Apr/1998:16:03:00 +0200] "GET /linux/neu/linux.gif HTTP/1.0" 200 4066
hh1-7.lmz.hh.schule.de - - [28/Apr/1998:16:03:11 +0200] "GET /linux/neu/admin/admin_pl.htm HTTP/1.0" 200 1837
hh1-7.lmz.hh.schule.de - - [28/Apr/1998:16:03:16 +0200] "GET /linux/neu/admin/admin.pl HTTP/1.0" 200 3282
hh1-7.lmz.hh.schule.de - - [28/Apr/1998:16:03:46 +0200] "GET /linux/neu/admin/admin_c.htm HTTP/1.0" 200 1219

/var/log/httpd/error_log

In diese Datei schreibt der Apache seine Starts und Stops, sowie fehlgeschlagene Seitenaufrufe.

[Sun Apr 26 21:49:30 1998] httpd: caught SIGTERM, shutting down
[Mon Apr 27 19:48:49 1998] created shared memory segment #0
[Mon Apr 27 19:48:49 1998] Server configured -- resuming normal operations
[Mon Apr 27 21:42:13 1998] access to /usr/local/httpd/cgi-bin/miniserv.pl failed for hh1-7.lmz.hh.schule.de, reason: malformed header from script. Bad header=HTTP/1.0 401 Unauthorized

Hier ist zuerst die Nachricht vom Shutdown am Sonntag zu lesen, dann vom Start am Montag. Die letzte Zeile resultiert von einem fehlerhaften Perl-Script.
Falls HTML-Seiten oder CGI-Scripte nicht richtig funktionieren, so kann man oft die Ursache hier finden.

DHCPD

Der DHCPD speichert die von ihm zugeteilten Adressen in der Datei

/var/dhcpd/dhcpd.leases

das Format dieser Datei ist in unserer Dokumentation zum DHCPD beschrieben.

Samba

Samba schreibt sehr viel mit, aber in sehr unterschiedlichen Dateien.

/var/log/samba/log.xxx

In unserer /etc/smb.conf steht im Abschnitt Global die Zeile "log file= /var/log/samba/log.%m". Dadurch gibt es für jeden Client-Rechner eine eigene Log-Datei. Ohne diese Eintragung würde für alle Rechner die Datei /var/log/log.smb benutzt werden.
Die folgenden Einträge geben einen typischen Inhalt dieser Dateien wieder. Jede Verbindungsaufnahme (mounten) zu einem Laufwerk oder Drucker auf dem Server wird mir Datum, Uhrzeit und den Benutzerdaten protokolliert. In vorliegenden Fall wird zuerst mit "Netlogon" verbunden, für die Domänenanmeldung, anschließend mit der "Homes" Freigabe und dann mit dem öffentlichen Bereich.

04/20/1998 15:28:47 pc_62 (192.168.1.42) connect to service netlogon as user debacher (uid=502,gid=103) (pid 357)
04/20/1998 15:28:48 pc_62 (192.168.1.42) connect to service debacher as user debacher (uid=502,gid=103) (pid 357)
04/20/1998 15:28:48 pc_62 (192.168.1.42) connect to service pub as user debacher (uid=502,gid=103) (pid 357)
04/20/1998 15:30:40 pc_62 (192.168.1.42) closed connection to service netlogon
04/20/1998 15:56:25 pc_62 (192.168.1.42) closed connection to service pub
04/20/1998 15:56:26 pc_62 (192.168.1.42) closed connection to service debacher

Beim Abmelden werden ebenfalls die Zeiten protokolliert. Wobei erwähnt werden muß, daß der Squid einen Dienst nach 15 Minuten Untätigkeit automatisch trennt. Für den Benutzer hat das keine Nachteile, da der Dienst im Bedarfsfall automatisch wieder verbunden wird. Nur bei der Auswertung der Protokolldateien muß man dies Berücksichtigen.

/var/log/log.nmb

In dieser Datei werden die Kämpfe des Servers um die Vorherrschaft im Windows-Netz protokolliert. Hier sollte stehen, daß Samba nun "domain master browser" für unsere Arbeitsgruppe geworden ist. Außerdem müßte Samba auch mitteilen, daß es "master browser" für die Arbeitsgruppe geworden ist.

/var/lock/STATUS..LCK

Hier werden alle momentan gültigen Samba-Anmeldungen und Dateisperren protokolliert. Die Datei wird nicht direkt ausgelesen, sondern mittel smbstatus. Die Ausführlichere Ausgabe mittle smbststus -d ergibt folgende Ausgabe:

using configfile = /etc/smb.conf
lockdir = /var/lock
Opened status file /var/lock/STATUS..LCK

Samba version 1.9.18p8
Service      uid      gid      pid     machine
----------------------------------------------
www          debacher users     1290   uwes     (192.168.1.42) Mon Mar 22 19:02:51 1999

Locked files:
Pid    DenyMode   R/W        Oplock           Name
--------------------------------------------------
1290   DENY_NONE  RDONLY     EXCLUSIVE+BATCH  ak/linux/neu/linux.gif   Mon Mar 22 20:27:09 1999
1290   DENY_NONE  RDONLY     EXCLUSIVE+BATCH  ak/linux/welcome.htm   Mon Mar 22 20:23:05 1999

Share mode memory usage (bytes):
   101640(99%) free + 592(0%) used + 168(0%) overhead = 102400(100%) total

SQUID

Die Logdateien des Squid finden sich im Ordner /var/squid. Im Unterordner /var/squid/cache befinden sich die eigentlichen Seiten und im Unterordner /var/squid/logs die Protokolle über Zugriff und Speicherung.

/var/squid/access.log

Die erste Zahl gibt den Zeitpunkt an, die dritte Zahl die IP-Adresse des Aufrufenden und danach kommen dann Informationen über die angeforderte Seite. Der Zeitpunkt steht hier leider nicht im Klartext sondern in Sekunden seit dem Beginn von Unix.

892826765.328     91 192.168.1.100 TCP_MISS/200 536 GET http://acer.lmz.hh.schule.de/hbs/shared/workicn6.gif - DIRECT/acer.lmz.hh.schule.de image/gif
892826768.886    590 192.168.1.100 TCP_MISS/200 1987 GET http://acer.lmz.hh.schule.de/hbs/email/sbrett.phtml - DIRECT/acer.lmz.hh.schule.de text/html
892826775.415    136 192.168.1.100 TCP_MISS/200 1649 GET http://acer.lmz.hh.schule.de/hbs/email/welcome.htm - DIRECT/acer.lmz.hh.schule.de text/html
892907214.496    480 192.168.1.100 TCP_MISS/301 368 GET http://acer.lmz.hh.schule.de/hbs - DIRECT/acer.lmz.hh.schule.de text/html

Will man lesbarere Einträge haben, so kann man in /etc/squid.conf den Eintrag

 emulate_httpd_log on

auskommentieren.

Mail und UUCP

Auch hier werden mehrere Protokolldateien benutzt.

/var/log/mail

Für jede Mail, die abgeliefert wird, legt das Mailsystem einen Eintrag an, der folgendermaßen aussehen könnte:

Apr 28 17:57:30 boss sendmail[736]: RAA00736: from=<debacher@boss.lmz.hh.schule.de>, size=313, class=0, pri=30313, nrcpts=1, msgid=<Pine.LNX.3.96.980428175708.734A-100000@acer.lmz.hh.schule.de>, proto=SMTP, relay=debacher@localhost
Apr 28 17:57:32 boss sendmail[737]: RAA00736: to=<gast@boss.lmz.hh.schule.de>, ctladdr=<debacher@boss.lmz.hh.schule.de> (502/103), delay=00:00:02, xdelay=00:00:01, mailer=local, stat=Sent

/var/spool/uucp/Log

In dieser Datei werden die Verbindungen des UUCP-Systems protokolliert.

/var/spool/uucp/Debug

Diese Datei wird immer dann angelegt, wenn uucp mit der Debug-Option aufgerufen wird, also mittles

 /usr/lib/uucp/uucico -S shuttle -x all 

Dann wird hier sehr ausführlich protokolliert. Man sollte mit dieser Funktion sehr vorsichtig sein, weil in der Protokolldatei auch die Zugangsdaten im Klartext auftauchen.

ISDN

Die Verbindungsdaten und -gebühren werden in der Datei

/var/log/isdn.log

abgelegt. Auch diese Datei kann nicht direkt abgefragt werden, hierzu dient das Programm /usr/bin/isdnrep, das man meist mit dem Schalter -a aufruft, also /usr/bin/isdnrep -a


Kritik, Anregungen und Ergänzungen willkommen. Zusammengestellt von Uwe Debacher, letzte Änderung am 27.01.2006