Skip to content

Linux Log Parser

auth.log, syslog, secure, das systemd-Journal, auditd und wtmp/btmp in einer Zeitleiste: SSH-Anmeldungen und Brute-Force, sudo und su, neue Konten, Persistenz über cron und systemd, rekonstruierte Sitzungen und Hinweise auf Protokollmanipulation. Verarbeitet im Browser mit WebAssembly; Ihre Protokolle werden nie hochgeladen.

Linux-Protokolle, einen /var/log-Ordner oder eine UAC- / Velociraptor-Sammlung hier ablegen

auth.log, secure, syslog, messages (rotiert und .gz), *.journal, journalctl -o export / -o json, audit.log, wtmp, btmp, utmp, lastlog, wtmp.db, lastlog2.db sowie /etc/localtime, /etc/timezone und /etc/passwd als Kontext. Dateien, Ordner, .zip, .tar und .tar.gz.

Das Beispiel ist synthetisch: ein fiktiver Einbruch auf dem Jump-Host fin-jump-01, gefahrlos zu erkunden.

Im Browser verarbeitet. Nichts wird hochgeladen.

So erhalten Sie Ihre Protokolle

Vollständige Anleitung zur Sammlung

Der Parser liest die Dateien so, wie sie auf dem Host liegen: Textprotokolle (auch rotiert und komprimiert), Journal-Dateien, audit.log und die binären Anmeldeeinträge. Kopieren Sie sie mit root-Rechten, behalten Sie die Ordnerstruktur bei und legen Sie das Archiv hier ab.

  1. Als root sammeln (ein Befehl)
  2. .tar.gz oder Ordner hier ablegen
  3. Lokal verarbeitet, nie hochgeladen

Auf dem Host, als root: ein Archiv mit /var/log (Textprotokolle, Journal, Audit, wtmp/btmp/lastlog), dem flüchtigen Journal und den Kontextdateien. Fehlende Pfade werden mit einer Warnung übersprungen.

bash · root
sudo tar -C / -czf /tmp/linux-logs.tar.gz --ignore-failed-read --sparse \
  var/log run/log/journal etc/localtime etc/timezone etc/passwd etc/hostname

Kopieren Sie /tmp/linux-logs.tar.gz auf Ihren Arbeitsplatz und legen Sie es unverändert hier ab: Das Archiv wird im Browser geöffnet.

bash
scp user@host:/tmp/linux-logs.tar.gz .

Wenn Sie nur journalctl ausführen können

Das Exportformat von journalctl ist verlustfrei und behält alle Felder; dieses Werkzeug liest es ebenso wie -o json. Rohe Journal-Dateien sind trotzdem besser: Sie behalten die Sequenznummern, die gelöschte Einträge aufdecken.

bash · root
sudo journalctl -o export > journal.export
sudo journalctl -D /mnt/evidence/var/log/journal -o export > journal.export   # from a mounted image

Alle rotierten Audit-Protokolle in einer Datei, im Rohformat:

bash · root
sudo ausearch --input-logs --raw > audit.log

Vor dem Sammeln

  • Als root ausführen: auth.log, btmp, audit.log und das Journal sind für normale Benutzer nicht lesbar.
  • Alle Rotationen (.1, .2.gz, datierte Dateien) und die .journal~-Dateien mitnehmen: Sie enthalten die ältere Historie und beschädigte Enden.
  • Auf einem laufenden Host /run/log/journal kopieren: Ein flüchtiges Journal geht beim Neustart verloren.
  • lastlog ist eine Sparse-Datei, die riesig wirken kann; tar --sparse (wie oben) speichert nur die belegten Slots.
  • Einen Hash des Archivs aufbewahren und den Sammelzeitpunkt notieren: logrotate kann laufen, während Sie arbeiten.

Was Linux Log Parser liest

Ein Linux-Host protokolliert Authentifizierung, Rechtenutzung und Dienstaktivität an mehreren Stellen gleichzeitig: in Textdateien, die rsyslog schreibt (auth.log und syslog unter Debian und Ubuntu, secure und messages unter RHEL), im binären systemd-Journal, im von auditd geschriebenen Audit-Protokoll und in den binären Anmeldeeinträgen wtmp, btmp, utmp und lastlog (oder wtmpdb und lastlog2 auf neueren Systemen).

Dieses Werkzeug liest sie alle in Ihrem Browser und führt sie in einer Zeitleiste zusammen. Jede Zeile wird zu einem Ereignis mit Host, Programm, Prozess-ID, Benutzer, Quelladresse und Befehl normalisiert und eingeordnet: SSH-Anmeldungen und Fehlschläge, sudo und su, Konto- und Passwortänderungen, Änderungen an cron und systemd, Kernelmodule, gestoppte Protokollierung. An- und Abmeldungen werden zu Sitzungen zusammengeführt, mit den darin ausgeführten Befehlen, sofern auditd sie erfasst hat.

Wo die Dateien liegen

  • /var/log/auth.log, /var/log/syslog (Debian, Ubuntu) und /var/log/secure, /var/log/messages (RHEL, Rocky, Alma, Fedora), mit ihren Rotationen (.1, .2.gz, datierte Namen).
  • /var/log/journal/<machine-id>/*.journal und *.journal~ (persistentes Journal), /run/log/journal/ (flüchtig).
  • /var/log/audit/audit.log und seine Rotationen (audit.log.1 …).
  • /var/log/wtmp, /var/log/btmp, /var/log/lastlog, /run/utmp; wtmpdb unter /var/lib/wtmpdb/wtmp.db (Debian 13: /var/log/wtmp.db) und lastlog2 unter /var/lib/lastlog/lastlog2.db.
  • /etc/localtime oder /etc/timezone (Zeitzone für klassische syslog-Zeilen) und /etc/passwd (UID zu Name).

Was es zeigt

  • Passwort-Raten, gefolgt von einer erfolgreichen Anmeldung, von derselben oder einer anderen Adresse; Anmeldungen von Adressen, die ein Konto nie benutzt hat; direkte root-Anmeldungen.
  • Nutzung von sudo und su, einschließlich interaktiver root-Shells, sowie fehlgeschlagene oder abgelehnte Versuche.
  • Angelegte Konten, Aufnahmen in Admin-Gruppen oder neue Passwörter; crontab-Änderungen, systemd-Unit-Dateien und Units, die zum ersten Mal starten; Kernelmodule.
  • Hinweise auf Protokollmanipulation: Lücken in Journal-Sequenznummern, Authentifizierungszeilen, die im Journal stehen, aber in auth.log fehlen, genullte oder gekürzte wtmp-Einträge, gestoppte Protokolldienste und Befehle zum Löschen von Protokollen.
  • Sitzungen von der Anmeldung bis zur Abmeldung, rekonstruiert aus sshd- und PAM-Zeilen, systemd-logind, Audit-Sitzungs-IDs und wtmp, mit dem, was darin geschah.

Was es nicht sagen kann

  • Protokolle enthalten nur, was protokolliert wurde: Ohne execve-Audit-Regeln gibt es keine Aufzeichnung von Befehlen, und Shell-Builtins werden nie erfasst.
  • Meldungen werden von Programmen geschrieben, und jeder lokale Benutzer kann mit logger ähnlich aussehende Zeilen einschleusen. Die Journal-Felder mit Unterstrich (_UID, _EXE, _CMDLINE) sind die vertrauenswürdigen.
  • Klassische syslog-Zeilen haben weder Jahr noch Zone: Das Ergebnis hängt vom Dateidatum und der von Ihnen gesetzten Zone ab. Das Werkzeug zeigt an, wo es geschätzt hat.
  • Befunde sind Ansatzpunkte, keine Urteile: Administratoren hinterlassen viele der gleichen Spuren. Webserver-Protokolle werden nicht ausgewertet.

So erhalten Sie die Dateien

  • Am einfachsten: als root /var/log, /run/log/journal sowie /etc/localtime, /etc/timezone, /etc/passwd, /etc/hostname mit tar in ein .tar.gz packen und hier ablegen (siehe Anleitung oben).
  • UAC-Sammlungen (tar.gz) und Velociraptor-ZIPs können unverändert abgelegt werden.
  • Auf einem ausgeschalteten System das Dateisystem schreibgeschützt einhängen und dieselben Pfade archivieren.

Fragen

Werden meine Protokolle hochgeladen?

Nein. Die Dateien werden in Ihrem Browser von WebAssembly in einem Web Worker gelesen und ausgewertet. Nichts wird an einen Server gesendet; beim Schließen des Tabs ist alles vergessen.

Kann es binäre Journal-Dateien ohne journalctl lesen?

Ja. Die Engine dekodiert das Journal-Dateiformat direkt, einschließlich des kompakten Layouts ab systemd 252 und mit XZ, LZ4 oder ZSTD komprimierter Felder. Sie liest auch die Ausgabe von journalctl -o export und -o json.

Wie geht es mit auth.log-Zeilen ohne Jahr um?

Klassische syslog-Zeilen (Sep 14 10:02:11) haben weder Jahr noch Zeitzone. Das Werkzeug ermittelt die Jahre rückwärts ab dem Änderungsdatum der Datei (oder dem jüngsten datierten Ereignis) und rechnet die Ortszeit mit der Zone aus /etc/localtime oder /etc/timezone um. Beides lässt sich manuell festlegen, und jede geschätzte Zeit wird markiert.

Warum erscheinen manche auth.log-Zeilen als Duplikate?

Auf systemd-Hosts erhält rsyslog seine Zeilen von journald, daher enthalten auth.log und das Journal dieselben Ereignisse. Die Journal-Kopie hat vertrauenswürdige Felder und Zeiten in Mikrosekunden, daher wird die Textzeile als Duplikat markiert und standardmäßig ausgeblendet. Zeilen, die nur in einer der beiden Quellen stehen, bleiben erhalten und werden, bei in auth.log fehlenden Authentifizierungszeilen, gemeldet.

Erkennt es gelöschte Protokolleinträge?

Es meldet, was sich messen lässt: Lücken in Journal-Sequenznummern, Authentifizierungseinträge, die das Journal enthält, auth.log aber nicht, genullte oder gekürzte wtmp-Einträge sowie Befehle, die die Protokollierung stoppen oder Protokolle löschen. Ein unauffälliges Ergebnis beweist nicht, dass nichts entfernt wurde.

Welche Distributionen werden unterstützt?

Die Verzeichnisstrukturen von Debian, Ubuntu, RHEL und seinen Nachbauten, Fedora, SUSE und Arch: rsyslog im klassischen und im RFC-3339-Format, RFC 5424, das systemd-Journal, auditd-Protokolle im Format RAW und ENRICHED, wtmp in den Eintragslayouts für x86_64 und aarch64, wtmpdb und lastlog2.

Befehlszeilen aus audit.log rekonstruieren: Einträge nach Ereignis gruppieren, EXECVE-Argumente zusammensetzen, Hex-Argumente, auid und ses über sudo hinweg.
auth.log und secure in der Ermittlung lesen: SSH-Brute-Force und Logins, Root-Shells über sudo und su, Passwort- und Kontoänderungen, Zeitformate.
Was Sie für eine Linux-Log-Ermittlung sichern und wie: ein tar-Befehl am laufenden Host, journalctl-Export, ausearch, UAC, Velociraptor oder ein Abbild.