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 (500 statt ' 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.