Fail2ban überwacht Protokolle und blockiert vorübergehend IP-Adressen nach wiederholten fehlgeschlagenen Anmeldeversuchen. Es wird häufig verwendet, um SSH-Brute-Force-Angriffe auf öffentlichen Linux-Servern zu reduzieren.
Fail2ban funktioniert, indem es Protokolldateien liest, fehlgeschlagene Anmeldeversuche mit Filtern abgleicht und vorübergehende Sperren durch eine Jail-Konfiguration anwendet.
Ubuntu oder Debian
sudo apt update sudo apt install fail2ban sudo systemctl enable --now fail2ban
AlmaLinux, Rocky Linux, Oracle Linux oder CentOS
sudo dnf install fail2ban sudo systemctl enable --now fail2ban
Wenn das Paket nicht verfügbar ist, aktivieren Sie zuerst das entsprechende zusätzliche Repository für Ihre Distribution.
Erstellen Sie eine lokale Jail-Konfiguration
Bearbeiten Sie jail.conf nicht direkt. Erstellen oder bearbeiten Sie jail.local, damit Paketaktualisierungen Ihre Änderungen nicht überschreiben.
sudo nano /etc/fail2ban/jail.local
Ein einfaches SSH-Jail sieht so aus:
[sshd] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 5 findtime = 10m bantime = 1h
Auf AlmaLinux, Rocky Linux, Oracle Linux oder CentOS können SSH-Protokolle stattdessen in /var/log/secure sein:
logpath = /var/log/secure
Häufige Einstellungen
| Einstellung | Was sie steuert |
|---|---|
enabled | Schaltet das Jail ein oder aus. |
port | Der Dienstport, den Fail2ban schützen soll. |
filter | Der Fail2ban-Filter, der fehlgeschlagene Versuche erkennt. |
logpath | Die Protokolldatei, die Fail2ban liest. |
maxretry | Wie viele Fehler erlaubt sind, bevor eine Sperre erfolgt. |
findtime | Das Zeitfenster, in dem Fail2ban Fehler zählt. |
bantime | Wie lange die IP gesperrt wird. |
ignoreip | IP-Adressen, die niemals gesperrt werden sollten. |
Whitelist Ihrer eigenen IP
Wenn Sie eine feste IP-Adresse zu Hause oder im Büro haben, fügen Sie diese zu ignoreip hinzu, damit Sie sich beim Testen nicht selbst aussperren:
[DEFAULT] ignoreip = 127.0.0.1/8 YOUR_IP_ADDRESS
Fügen Sie nur IP-Adressen hinzu, denen Sie vertrauen. Whitelisten Sie keine breiten öffentlichen Bereiche, es sei denn, Sie verstehen die Sicherheitsauswirkungen.
Fail2ban neu starten und überprüfen
- Starten Sie Fail2ban nach dem Ändern der Jail-Konfiguration neu:
sudo systemctl restart fail2ban
- Überprüfen Sie den Fail2ban-Dienst und den Jail-Status:
sudo systemctl status fail2ban --no-pager sudo fail2ban-client status sudo fail2ban-client status sshd

Eine IP-Adresse entsperren
sudo fail2ban-client set sshd unbanip IP_ADDRESS
Fail2ban-Protokolle anzeigen
sudo journalctl -u fail2ban --since "1 hour ago" sudo tail -100 /var/log/fail2ban.log
Fail2ban ist hilfreich, aber es ersetzt nicht SSH-Schlüssel, starke Passwörter, Updates und eine sinnvolle Firewall.
