Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

Logs lesen und Fehler finden

Nach dieser Lektion: Ich kann in einem Log finden, was schiefgelaufen ist.

Lektion, 55 Min.7 BefehleLab zu Incident Response und Forensik: einen kompromittierten Server im Browser untersuchen

Kunden können nachts nicht zahlen

In einem Webshop gehen nachts keine Kartenzahlungen mehr durch. Niemand hat etwas geändert. Die Inhaberin ruft Sie beim Frühstück an.

Sie raten nicht. Sie öffnen das Log. Es sagt, was die Maschine getan hat, und wann.

Am Ende dieser Lektion

Notiz

Ich kann in einem Log finden, was schiefgelaufen ist.

Schlüsselwörter

BegriffWas er bedeutetBeispiel
Logeine Datei, in die ein Programm schreibt, was es getan hat
Logzeileein Eintrag: eine Zeit, eine Quelle und eine Meldung
ZeitstempelDatum und Uhrzeit auf einer Logzeile
Filternur die Zeilen behalten, die Sie interessierengrep
ZeitleisteEreignisse aus vielen Logs in zeitlicher Reihenfolge
Belegeine Logzeile, die Ihre Aussage stützt

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Eine Logzeile hat Teile

Maschinen schreiben Logs nach einem festen Muster, damit Werkzeuge sie lesen können. Lernen Sie das Muster einmal, dann ist jede Zeile leicht.

Eine Zeile des Anmeldelogs nennt Datum und Uhrzeit, die Maschine, das Programm und eine Meldung. Die Meldung enthält die Fakten: wer es versuchte, von wo, und ob es klappte.

Die Belege in diesem Lab

Befehl
ls case

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Wie viele Zeilen hat das Anmeldelog?

Befehl
wc -l case/var/log/auth.log

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Die ersten zwei Zeilen des Weblogs

Befehl
head -n 2 case/var/log/nginx/access.log

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Die letzten drei Zeilen des Weblogs

Befehl
tail -n 3 case/var/log/nginx/access.log

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Ein Beispiel: eine Zeile des Weblogs

TeilBeispielBedeutung
Adresse192.0.2.77Wer gefragt hat
Zeit[14/Oct/2026:00:01:49 +0000]Wann
Anfrage"GET /login HTTP/1.1"Was verlangt wurde
Status200Die Antwort: 200 erfolgreich, 404 nicht gefunden, 403 verweigert
Größe2557Gesendete Bytes

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Erst filtern, dann zählen

grep behält die Zeilen, die bestimmte Wörter enthalten. grep -c zählt sie, statt sie auszugeben.

Um nach einer Spalte zu zählen, schneiden Sie die Spalte mit awk aus, sortieren sie und lassen uniq -c die gleichen Werte zählen. Ein zweites sort -rn stellt die größte Zahl nach oben.

Die fehlgeschlagenen Passwörter zählen

Befehl
grep -c "Failed password" case/var/log/auth.log

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Die angenommenen Anmeldungen zählen

Befehl
grep -c "Accepted" case/var/log/auth.log

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Das Weblog nach Statuscode zählen

Befehl
awk '{print $9}' case/var/log/nginx/access.log | sort | uniq -c

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Ein kleiner Auszug zum Lesen

Code: bash
Oct 14 02:11:03 web01 sshd[2211]: Invalid user admin from 198.51.100.7 port 4410
Oct 14 02:11:03 web01 sshd[2211]: Failed password for invalid user admin from 198.51.100.7 port 4410 ssh2
Oct 14 02:11:09 web01 sshd[2214]: Failed password for root from 198.51.100.7 port 4418 ssh2
Oct 14 02:14:40 web01 sshd[2230]: Accepted password for alice from 192.0.2.10 port 5120 ssh2

Ein Beispiel: nach Adresse zählen

SchrittWas er tutErgebnis für den Auszug
1Die Zeilen mit Failed password behalten2 Zeilen
2Die Adresse nach „from“ ausschneiden198.51.100.7 zweimal
3Jede Adresse zählen198.51.100.7: 2
4Nach einer Zeile mit Accepted von ihr suchenKeine, sie kam also nie hinein

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Ein häufiger Fehler

Warnung

Viele glauben, die Adresse mit den meisten Fehlversuchen sei die, die hineingekommen ist. Fehlschläge und Erfolge sind verschiedene Zeilen. Eine Adresse kann tausendmal scheitern und nie Erfolg haben. Suchen Sie immer eine Erfolgszeile und prüfen Sie, ob sie von der verdächtigen Adresse kam.

Eine Zeitleiste verbindet die Logs

Ein Log erzählt selten die ganze Geschichte. Legen Sie Ereignisse aus mehreren Logs in zeitliche Reihenfolge. Dann sehen Sie, was zuerst geschah.

Das erste Ereignis zählt am meisten. Alles danach kann eine Folge davon sein.

Ein Beispiel: eine Zeitleiste

ZeitQuelleEreignis
02:11AnmeldelogViele fehlgeschlagene Passwörter von einer Adresse
02:14AnmeldelogEine Anmeldung für alice von einer anderen Adresse angenommen
02:16WeblogEine Anfrage nach einer Admin-Seite, beantwortet mit 200
02:30Cron-LogEin neuer Job läuft zum ersten Mal

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Ein Log verfolgen und ein langes lesen

Tippen Sie tail -f und den Namen eines Logs, um neue Zeilen ankommen zu sehen. Mit Strg+C hören Sie auf. Eine Schaltfläche kann kein Strg+C drücken, tippen Sie diesen Befehl deshalb selbst.

Tippen Sie less und den Namen eines Logs, um eine lange Datei seitenweise zu lesen. Mit / und einem Wort suchen Sie, mit q verlassen Sie less.

Weiterführend

Im Weblog ist Spalte 7 die angefragte Seite. Bauen Sie eine Pipeline, die nur die Zeilen mit 404 behält, Spalte 7 ausschneidet und jede Seite zählt.

Sortieren Sie so, dass die größte Zahl oben steht, und behalten Sie die ersten drei. Sagen Sie dann in einem Satz, welche Art von Besucher nach Seiten fragt, die es nicht gibt.

Über dieses Lab und seinen Quellcode: Lab zu Incident Response und Forensik: einen kompromittierten Server im Browser untersuchen

Sie unterrichten eine Gruppe? Weisen Sie dieses Modul Ihren Studierenden zu, mit Handbuch für Lehrende, automatisch geprüften Aufgaben und einem Lab für jede Person.