Brute-Force Protection: Multi-Layer Defense (Artikel 327)
Ganzheitliche Strategien zur Abwehr von Brute-Force-Angriffen. Erfahren Sie, wie Sie Netzwerkfilter, Betriebssystem-Sperren und Protokoll-Härtung zu einer unüberwindbaren Mauer kombinieren.
# Brute-Force Abatement: Verteidigung in Schichten
TL;DR / Management Summary Ein einzelnes Security-Tool reicht nicht aus. Um Brute-Force-Angriffe (automatisches Durchprobieren von Passwörtern) effektiv zu stoppen, nutzen wir das Swiss Cheese Model: Wir legen mehrere Schichten übereinander. Layer 1 (Firewall/Fail2Ban) blockiert den Traffic, Layer 2 (SSHD) erschwert den Protokoll-Handshake und Layer 3 (PAM) sperrt den Account lokal. Wer dieses Trio beherrscht, macht seinen Server für Botnetze wertlos.
# 1. Einführung & Architektur
Defense in Depth.
Jede Verteidigungsschicht hat Schwächen. Durch die Kombination eliminieren wir diese.
# Die Verteidigungs-Kette (Mermaid)
graph TD
A[Attacker Bot] -->|Phase 1: Connection| B{Firewall / Fail2Ban}
B -->|Drop IP| C[Blocked at Edge]
B -->|Passed| D{Layer 2: SSHD Hardening}
D -->|Invalid Port / Key| E[Immediate Disconnect]
D -->|Passed| F{Layer 3: PAM Faillock}
F -->|Attempts > 5| G[Account Locked Locally]
F -->|Success| H[Successful Login]
# 2. Layer 1: Die Netzwerk-Barriere (Fail2Ban)
Den Lärm draußen lassen.
Fail2Ban (Artikel 028) reagiert, bevor der Angreifer überhaupt den Login-Prozess belasten kann.
- Best Practice: Setzen Sie
findtime = 1hundmaxretry = 3. Ein Mensch braucht keine 3 Versuche pro Stunde, wenn er SSH-Keys nutzt.
# 3. Layer 2: Protokoll-Härtung (SSHD)
Die Verhandlung erschweren.
In der sshd_config:
# Reduziert die Zeit, die ein unauthentifizierter Socket offen bleibt
LoginGraceTime 30s
# Begrenzt parallele Verbindungsaufbauten (Tarpit)
MaxStartups 10:30:60
10:30:60: Ab 10 parallelen Verbindungen werden 30% der neuen Anfragen verworfen, ab 60 Verbindungen alle.
# 4. Layer 3: Lokale Account-Sperre (PAM)
Der letzte Schutz.
Selbst wenn der Angreifer über tausende verschiedene IPs angreift (Distributed Brute-Force), greift PAM Faillock (Artikel 326), da es auf den Ziel-Benutzernamen schaut, nicht auf die Quell-IP.
# 5. Day-2 Operations: Tarpitting (Die Teergrube)
Angreifer Zeit kosten.
Ein effizienter Schutz ist das künstliche Verlangsamen von Antworten.
- Nutzen Sie in der Firewall (nftables) die
limitFunktion, um Antworten auf falsche Ports zu verzögern. - Resultat: Ein Scanner, der normalerweise 1000 Passwörter pro Sekunde testet, schafft nur noch 1 Passwort alle 10 Sekunden. Der Angriff wird ökonomisch unrentabel.
# 6. Troubleshooting & “War Stories”
Wenn die Abwehr zu gut funktioniert.
# Story 1: “Der ausgesperrte Admin-Bot”
Symptom: Das automatisierte Monitoring-System (z.B. Zabbix) kann den Server-Status nicht mehr via SSH abfragen.
Ursache: Das Monitoring-Skript hatte einen Fehler, hat hunderte falsche Logins produziert und wurde von Fail2Ban auf allen Servern gleichzeitig gebannt.
Lösung: Whitelisting der Monitoring-IPs in jail.local (ignoreip) und Nutzung von SSH-Keys ohne Passphrase für Bots.
# Story 2: “Log Injection Attack”
Symptom: Fail2Ban blockiert keine IPs mehr, obwohl das Log voll mit Fehlern ist.
Ursache: Ein Angreifer sendet speziell formatierte Benutzernamen (z.B. admin from 127.0.0.1), die den Regex-Parser von Fail2Ban verwirren oder die IP eines anderen (vielleicht Ihres DNS-Servers) vortäuschen.
Lösung: Nutzen Sie modernere Regex-Pattern, die den Ursprung des Logs (systemd-journal) verifizieren, statt nur rohe Textfiles zu parsen.
# 7. Fazit & Empfehlung
- Priorität: Schalten Sie Passwort-Logins ab. Das ist der beste Brute-Force-Schutz.
- Kombination: Nutzen Sie Fail2Ban für die Masse und PAM für die gezielten Angriffe.
- Wartung: Prüfen Sie wöchentlich
faillockundfail2ban-client status.
# Anhang: Die ultimative Brute-Force Checkliste
| Layer | Maßnahme | Tool |
|---|---|---|
| Netzwerk | IP-Blocking | Fail2Ban |
| Protokoll | Port Change (22 -> 2222) | SSHD |
| Protokoll | Key-based Auth only | SSHD |
| Protokoll | MaxStartups (Tarpit) | SSHD |
| Betriebssystem | Account Lockout | PAM Faillock |
| Überwachung | Login Alerts (Real-time) | Log-Shipper / SIEM |