In diesem Kapitel wird grep realistisch.
Du lernst:
- SSH-Brute-Force erkennen
- Fehlgeschlagene Logins zählen
- IP-Adressen extrahieren
- HTTP-Statuscodes analysieren
- grep mit awk kombinieren
- einfache Security-Checks durchführen
- Getestet mit GNU grep 3.x (Ubuntu 22.04+)
🔹 SSH-Login-Fehler analysieren
Typische Datei:
/var/log/auth.log
Fehlgeschlagene Logins anzeigen:
grep "Failed password" /var/log/auth.log
Nur fehlgeschlagene SSH-Logins zählen
grep -c "Failed password" /var/log/auth.log
🔹 IP-Adressen extrahieren (Brute-Force erkennen)
Beispiel (Testdatei simulieren):
cat > auth_test.log <<'EOF' Failed password for invalid user root from 192.168.1.10 port 22 Failed password for root from 10.0.0.5 port 22 Failed password for admin from 192.168.1.10 port 22 EOF
IP-Adressen extrahieren:
grep -oE '[0-9]+.[0-9]+.[0-9]+.[0-9]+' auth_test.log
🔹 Häufigkeit pro IP zählen
grep -oE ‚[0-9]+.[0-9]+.[0-9]+.[0-9]+‘ auth_test.log | sort | uniq -c
Ergebnis:
2 192.168.1.10 1 10.0.0.5
👉 Jetzt erkennst du sofort einen möglichen Angreifer.
🔹 Apache HTTP-Statuscodes analysieren
Beispiel-Log:
cat > access_test.log <<'EOF'
192.168.0.10 - - [20/Sep/2025] "GET /index.html" 200
10.0.0.5 - - [20/Sep/2025] "POST /login" 500
192.168.0.10 - - [20/Sep/2025] "GET /admin" 404
EOF
Alle 500-Fehler anzeigen
grep ' 500 ' access_test.log
Anzahl 404-Fehler
grep -c ' 404 ' access_test.log
Alle Statuscodes extrahieren
grep -oE ' [0-9]{3} ' access_test.log
🔹Verdächtige Anfragen finden
Beispiel:
grep -E 'admin|login|wp-admin' access_test.log
🔹 Schneller Security-Check (Mini-Workflow)
1️⃣ Fehlgeschlagene SSH-Logins zählen:
grep -c "Failed password" auth_test.log
2️⃣ IP-Adressen extrahieren:
grep -oE '[0-9]+.[0-9]+.[0-9]+.[0-9]+' auth_test.log | sort | uniq -c | sort -nr
3️⃣ Verdächtig hohe Anzahl prüfen.
🔹 Kombination mit awk (Admin-Level)
Nur IP und Anzahl ausgeben:
grep -oE '[0-9]+.[0-9]+.[0-9]+.[0-9]+' auth_test.log
| sort | uniq -c
| awk '$1 > 1 {print "Verdächtig:", $2, "Versuche:", $1}'
⚠️ Typische Fehler
- Logdateien ohne sudo lesen
- falsche Datei (z. B. journalctl statt auth.log)
- Regex zu breit
- Statuscodes ohne Leerzeichen suchen (
500statt' 500 ')
✅ Übung
Aufgabe 1
Ermittle die IP mit den meisten fehlgeschlagenen Logins.
Aufgabe 2
Zähle alle HTTP-Fehler (4xx und 5xx).
Aufgabe 3
Finde verdächtige Admin-Zugriffe im Apache-Log.
🧾 Zusammenfassung (Kapitel 5)
In diesem Kapitel hast du gelernt:
- SSH-Brute-Force erkennen
- IP-Adressen extrahieren
- Statuscodes analysieren
- Angriffe sichtbar machen
- grep mit awk kombinieren
👉 grep ist ein zentrales Werkzeug für Security-Analysen unter Linux.
👉 Im nächsten Kapitel
Im Bonus-Kapitel schauen wir uns an:
- PCRE mit
-P - Lookahead & Lookbehind
- komplexe Muster
- Grenzen von grep
Damit schließt du den Deep Dive ab.
