- Veröffentlicht am
- • How2-Tipps
Fail2ban: Brute-Force-Angriffe auf Server automatisch blockieren
- Autor
-
-
- Benutzer
- tmueller
- Beiträge dieses Autors
- Beiträge dieses Autors
-

Fail2ban ist ein Open-Source-Sicherheitstool für Linux-Server, das automatisiert bösartige IP-Adressen sperrt, wenn sie verdächtige Aktivitäten wie Brute-Force-Angriffe verursachen. Es ist besonders hilfreich beim Schutz von Diensten wie SSH, FTP, Mailservern oder Webanwendungen und stellt eine wichtige Ergänzung zur Firewall dar.
Warum ist Fail2ban wichtig?
Ein typischer Linux-Server ist dauerhaft über das Internet erreichbar – und damit auch potenziell Ziel automatisierter Angriffe. Besonders häufig betroffen ist der SSH-Dienst, bei dem Angreifer versuchen, mit zufälligen oder systematisch generierten Passwörtern Zugang zu erlangen.
Fail2ban erkennt solche Angriffsversuche anhand von Logdateien und blockiert die IP-Adresse des Angreifers automatisch über die Firewall – meist für einen begrenzten Zeitraum.
Funktionsweise
Fail2ban funktioniert nach einem einfachen Prinzip:
- Es überwacht Logdateien (z. B.
/var/log/auth.log
bei SSH) - Erkennt wiederholte fehlgeschlagene Loginversuche
- Reagiert auf diese Erkennung mit einer sogenannten "Ban-Aktion" – meist einem temporären Block über
iptables
odernftables
Die Erkennung erfolgt über sogenannte Filter, die auf regulären Ausdrücken basieren. Jede "Jail" überwacht dabei einen spezifischen Dienst oder Pfad.
Installation
Fail2ban ist in den Paketquellen der meisten Distributionen enthalten.
Debian / Ubuntu
sudo apt update
sudo apt install fail2ban
CentOS / RHEL
sudo yum install epel-release
sudo yum install fail2ban
Grundkonfiguration
Die Konfigurationsdateien befinden sich typischerweise unter /etc/fail2ban/
. Die Hauptdatei ist:
/etc/fail2ban/jail.conf
Um eigene Anpassungen vorzunehmen, solltest du stattdessen eine Kopie anlegen:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
In dieser Datei kannst du u. a. festlegen:
- welche Dienste überwacht werden (
[sshd]
,[nginx-http-auth]
usw.) - nach wie vielen Fehlversuchen eine IP geblockt wird
- wie lange die Sperre aktiv bleibt
Beispiel:
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
bantime = 3600
Wichtige Parameter
enabled
– aktiviert die Jail für den jeweiligen Dienstport
– Port, auf dem der Dienst läuft (z. B.ssh
)filter
– der Name des Filters (wird aus/etc/fail2ban/filter.d/
geladen)logpath
– Pfad zur Logdateimaxretry
– maximale Anzahl fehlgeschlagener Versuchebantime
– Dauer der Sperre in Sekunden
Fail2ban starten und verwalten
Nach der Konfiguration sollte der Dienst neu gestartet werden:
sudo systemctl restart fail2ban
Den aktuellen Status aller aktiven Jails zeigt:
sudo fail2ban-client status
Für eine bestimmte Jail:
sudo fail2ban-client status sshd
Um eine IP manuell zu blockieren:
sudo fail2ban-client set sshd banip 192.0.2.123
Oder zu entblocken:
sudo fail2ban-client set sshd unbanip 192.0.2.123
Erweiterte Nutzung
Fail2ban kann mit verschiedenen Firewall-Backends arbeiten, z. B.:
iptables
nftables
firewalld
Ebenso sind E-Mail-Benachrichtigungen, benutzerdefinierte Aktionen und eigene Filterregeln möglich. Die Filter werden als separate .conf
-Dateien in /etc/fail2ban/filter.d/
abgelegt.
Typische Anwendungsfälle
- Schutz von SSH-Logins
- Absicherung von Webservern gegen Auth-Brute-Force
- Schutz von Mailservern (Postfix, Dovecot)
- Erkennung von 404-Attacken auf bestimmte URLs
- Integration in Hosting-Umgebungen
Fazit
Fail2ban ist ein bewährtes, leichtgewichtiges und äußerst effektives Werkzeug zur Abwehr automatisierter Angriffe auf Linux-Systeme. Mit wenigen Konfigurationszeilen bietet es einen wichtigen Schutzmechanismus, der auch in komplexeren Infrastrukturen leicht integrierbar ist. Besonders im Zusammenspiel mit Firewalls und sicheren Authentifizierungsmethoden trägt es entscheidend zur Serverhärtung bei.
Weitere Informationen: https://www.fail2ban.org https://github.com/fail2ban/fail2ban