auth.log, secure und syslog: Textlogs unter Linux
rsyslog-Textlogs unter Linux: auth.log und syslog unter Debian/Ubuntu, secure und messages unter RHEL, mit Fallstricken bei Rotation und Zeitformat.
- Speicherort
- /var/log/auth.log, /var/log/secure
- Distributionen
- Belegt
- Wer sich von wo mit welcher Methode authentifiziert hat und was Dienste und Kernel gemeldet haben, im Klartext
- Zeitstempel
- Traditionell: Ortszeit, ohne Jahr und Zeitzone. RFC 3339: Ortszeit mit Offset und Mikrosekunden
- Zugriff
- root oder Gruppe adm (Debian/Ubuntu); root (RHEL)
- Aufbewahrung
- logrotate: wöchentlich, 4 Generationen in den Standardeinstellungen von Debian/Ubuntu und RHEL
- Sicherung
- UAC, Velociraptor, cp -a, tar
- Linux Log ParserBrowser
- grep / zgrepCLI · in Linux enthalten
- PlasoCLI · Open Source
- lnavCLI · Open Source
Was es ist
Ein Syslog-Daemon (rsyslog auf fast allen gängigen Distributionen, gelegentlich syslog-ng) empfängt Nachrichten von Programmen und vom Kernel und schreibt sie nach Facility- und Prioritätsregeln in Textdateien. Auf systemd-Systemen liest rsyslog in der Regel aus journald, sodass die Textdateien und das Journal sich überschneidende Kopien derselben Ereignisse enthalten, die unabhängig voneinander gespeichert und rotiert werden.
Die Authentifizierungsdatei ist das Rückgrat der meisten Intrusions-Timelines: SSH-Anmeldungen und Fehlversuche, Nutzung von sudo und su, Öffnen und Schließen von PAM-Sitzungen, Kontoanlage und Passwortänderungen landen dort über die Facilities auth und authpriv.
Wo es liegt
| Inhalt | Debian / Ubuntu | RHEL / Rocky / Alma / Fedora (mit rsyslog) |
|---|---|---|
Authentifizierung (auth, authpriv) | /var/log/auth.log | /var/log/secure |
| Allgemeine Meldungen | /var/log/syslog | /var/log/messages |
| Kernel | /var/log/kern.log | in /var/log/messages |
| Cron | in /var/log/syslog | /var/log/cron |
/var/log/mail.log | /var/log/maillog | |
| Regeln | /etc/rsyslog.conf, /etc/rsyslog.d/50-default.conf (Ubuntu) | /etc/rsyslog.conf, /etc/rsyslog.d/ |
| Rotation | /etc/logrotate.d/rsyslog | /etc/logrotate.conf, /etc/logrotate.d/rsyslog (ältere Releases: syslog) |
Die RHEL-Standardkonfiguration schickt authpriv.* nach secure und *.info;mail.none;authpriv.none;cron.none nach messages. Ubuntus 50-default.conf schickt auth,authpriv.* nach auth.log und alles außer auth nach syslog.
Nicht jeder Host hat diese Dateien. Debian 12 installiert rsyslog nicht mehr standardmäßig, und Fedora hat damit in Fedora 20 aufgehört; eine frische Installation protokolliert also möglicherweise nur ins Journal. Aktualisierte Systeme behalten rsyslog. Prüfen Sie /etc/rsyslog.conf und das rsyslog-Paket, bevor Sie eine fehlende Datei als Löschung werten.
Was es belegt
- Erfolgreiche und fehlgeschlagene SSH-Authentifizierung mit Benutzer, Quell-IP, Port und Methode (
Accepted password,Accepted publickey ... SHA256:<fingerprint>,Failed password,Invalid user). - Rechteausweitung:
sudo:-Befehlszeilen,su:-Sitzungen,pam_unix(...:session): session opened for user. - Kontoänderungen: Meldungen von
useradd,usermod,groupadd,passwdundchpasswd. - Dienst- und Kernel-Ereignisse in
syslog/messages/kern.log: Neustarts von Diensten, angeschlossene USB-Geräte, Firewall-LOG-Zeilen. - Es belegt nicht, was ein Benutzer nach der Anmeldung getan hat, und alles, was ein lokaler Benutzer über
loggerschreibt, sieht wie eine normale Zeile aus. Programmname und PID in der Zeile stammen vom Absender und werden nicht überprüft.
Wichtige Felder
Eine traditionelle Zeile (im Stil von RFC 3164):
Sep 20 03:14:07 web-prod-03 sshd[4190]: Accepted password for deploy from 203.0.113.50 port 40318 ssh2
Dieselbe Zeile im hochauflösenden Standardformat von rsyslog (Zeitstempel nach RFC 3339):
2026-09-20T03:14:07.512345+02:00 web-prod-03 sshd[4190]: Accepted password for deploy from 203.0.113.50 port 40318 ssh2
| Teil | Bedeutung |
|---|---|
| Zeitstempel | Zeitpunkt, zu dem der Syslog-Daemon die Zeile geschrieben hat (siehe unten) |
| Hostname | Host, der die Nachricht erzeugt hat (wichtig auf zentralen Logservern) |
Tag program[pid] | Name und PID des Absenders, wie vom Absender geliefert |
| Nachricht | Freitext; die Muster sind programmspezifisch |
Nützliche Nachrichtenmuster: Accepted, Failed password, Invalid user, Connection closed by authenticating user, session opened, session closed, COMMAND=, new user:, new group:, password changed for. Ab OpenSSH 9.8 läuft der Prozess pro Verbindung als eigenes sshd-session, suchen Sie also nach beiden Namen.
Zeitstempel
Zwei Formate sind verbreitet, und Sie müssen feststellen, welches der Host verwendet hat:
- Traditionell (
RSYSLOG_TraditionalFileFormat):Mmm dd HH:MM:SS, Ortszeit, ohne Jahr, ohne Zeitzone. Diersyslog.confder RHEL-Familie setzt dieses Template ausdrücklich. - Hochauflösend (rsyslogs eingebauter Standard
RSYSLOG_FileFormat): RFC 3339 mit Mikrosekunden und UTC-Offset. Debian hat es ab bookworm (12) aktiviert, indem das traditionelle Template nicht mehr erzwungen wird, und auch Ubuntu 24.04 protokolliert so.
Beim traditionellen Format ermitteln Sie die Zeitzone aus /etc/localtime (unter Debian auch /etc/timezone) im Image und leiten das Jahr aus Dateimetadaten und Rotationsreihenfolge ab. Achten Sie auf Jahreswechsel innerhalb einer Datei und auf Sommerzeitumstellungen, die eine Stunde doppeln oder überspringen.
ls -l /mnt/evidence/etc/localtime # symlink target names the zone
TZ=Europe/Paris date -u -d '2026-09-20 03:14:07' # local -> UTC
Aufbewahrung
logrotate bestimmt die Lebensdauer. Debians /etc/logrotate.d/rsyslog rotiert wöchentlich, behält 4 Generationen und komprimiert mit delaycompress (auth.log, auth.log.1, auth.log.2.gz ...). Unter RHEL gelten standardmäßig wöchentlich, rotate 4 und dateext (secure-20260920). Rechnen Sie mit etwa einem Monat Texthistorie, sofern die Konfiguration nicht geändert wurde. Das Journal kann mehr oder weniger enthalten, vergleichen Sie also immer beide.
Sicherung
# Dead box, from a read-only mount
tar -C /mnt/evidence -cpf /cases/2026-017/varlog.tar var/log etc/rsyslog.conf etc/rsyslog.d etc/logrotate.conf etc/logrotate.d etc/localtime
# Live, as root: copy, do not tail or edit in place
tar -C / -cpf /media/ir/varlog.tar var/log etc/rsyslog.conf etc/rsyslog.d etc/logrotate.d etc/localtime
Das UAC-Artefakt var_log sammelt das gesamte /var/log; Velociraptor kann dieselben Pfade mit seinen Artefakten zur Dateisammlung sichern. Nehmen Sie auch rotierte und komprimierte Generationen mit und notieren Sie den Sicherungszeitpunkt: logrotate kann auslösen, während Sie arbeiten.
Auswertung
Mit einfachen Textwerkzeugen kommt man weit; entscheidend ist, jede Generation in der richtigen Reihenfolge zu lesen.
cd /mnt/evidence/var/log
zgrep -hE 'Accepted|Failed password|Invalid user' auth.log* secure* 2>/dev/null
zgrep -h 'sudo:' auth.log* secure* 2>/dev/null
zgrep -hE 'new user|new group|password changed' auth.log* secure* 2>/dev/null
Für Timelines bringt Plaso die Parser-Plugins text/syslog und text/syslog_traditional mit; übergeben Sie bei Dateien im traditionellen Format --timezone, damit die Ortszeiten korrekt umgerechnet werden. lnav eignet sich gut zum interaktiven Durchsehen vieler rotierter Dateien. Linux Log Parser liest auth.log / secure, syslog, Journal-Dateien, audit.log und wtmp / btmp / lastlog im Browser und führt sie in einer Zeitleiste mit rekonstruierten Login-Sitzungen zusammen; es wird nichts hochgeladen.
Tipps für die Untersuchung
- Zeilenzahlen, die mitten am Tag einbrechen, eine aktuelle Datei, die viel kleiner ist als ihre rotierten Vorgänger, oder eine Datei, deren mtime vor bekannter Aktivität liegt, sind Anzeichen für Bearbeitung oder Kürzung. Gleichen Sie mit dem Journal und wtmp ab.
- Zu jeder
Accepted-Zeile sollte es eine wtmp-Sitzung und, falls auditd läuft, einenUSER_LOGIN-Datensatz in audit.log geben. Ein fehlendes Gegenstück sollte erklärt werden. - Gleichen Sie die Fingerprints aus
Accepted publickeymit den Einträgen inauthorized_keysab (siehe SSH-Artefakte), um den verwendeten Schlüssel zu identifizieren. - Prüfen Sie
/etc/rsyslog.confund/etc/rsyslog.d/auf Weiterleitungsziele (@host,@@host,omfwd): Ein entfernter Collector kann Logs noch enthalten, die lokal gelöscht wurden, und eine neu hinzugefügtestop- oder Verwerfungsregel ist selbst eine Manipulation. - Ein gestopptes
rsyslog.serviceerscheint im Journal; eine Lücke im Textlog bei weiterlaufendem Journal deutet direkt auf den Syslog-Daemon. - Denken Sie auf zentralen Logservern daran, dass der Zeitstempel je nach Template vom Empfänger und nicht vom Absender stammen kann.
Siehe auch
Verwandte Artefakte
Ausführliche Leitfäden
Glossar
- systemd Journal (journald)Englisch
- Super TimelineEnglisch