Zum Inhalt springen

LogsBenutzeraktivitätNetzwerk

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
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

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

InhaltDebian / UbuntuRHEL / 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.login /var/log/messages
Cronin /var/log/syslog/var/log/cron
Mail/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, passwd und chpasswd.
  • 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 logger schreibt, 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
TeilBedeutung
ZeitstempelZeitpunkt, zu dem der Syslog-Daemon die Zeile geschrieben hat (siehe unten)
HostnameHost, der die Nachricht erzeugt hat (wichtig auf zentralen Logservern)
Tag program[pid]Name und PID des Absenders, wie vom Absender geliefert
NachrichtFreitext; 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. Die rsyslog.conf der 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, einen USER_LOGIN-Datensatz in audit.log geben. Ein fehlendes Gegenstück sollte erklärt werden.
  • Gleichen Sie die Fingerprints aus Accepted publickey mit den Einträgen in authorized_keys ab (siehe SSH-Artefakte), um den verwendeten Schlüssel zu identifizieren.
  • Prüfen Sie /etc/rsyslog.conf und /etc/rsyslog.d/ auf Weiterleitungsziele (@host, @@host, omfwd): Ein entfernter Collector kann Logs noch enthalten, die lokal gelöscht wurden, und eine neu hinzugefügte stop- oder Verwerfungsregel ist selbst eine Manipulation.
  • Ein gestopptes rsyslog.service erscheint 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