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.