fail2ban unter Ubuntu gegen Brute-Force
fail2ban unter Ubuntu 24.04 installieren und konfigurieren, um Brute-Force-Angreifer automatisch zu sperren: SSH-Jail, Sperrzeiten, Eskalation und eigene IP sicher whitelisten.
Jeder Server mit einem öffentlichen SSH-Port wird innerhalb von Minuten nach dem Online-Gehen von automatisierten Brute-Force-Angriffen getroffen — Bots probieren rund um die Uhr gängige Benutzernamen und Passwörter durch. fail2ban ist die klassische Abwehr: Es überwacht Logdateien, erkennt wiederholte fehlgeschlagene Anmeldungen und sperrt die angreifende IP-Adresse automatisch, indem es eine Firewall-Regel einfügt. Aus einem lauten, angegriffenen Dienst wird so ohne manuelles Zutun ein ruhiger.
Diese Anleitung installiert und konfiguriert fail2ban unter Ubuntu 24.04 LTS: eine lokale Override-Konfiguration anlegen, ein SSH-Jail mit sinnvollen Sperrzeiten aktivieren, die eigene IP whitelisten, damit Sie sich nie aussperren, und prüfen, dass Sperren tatsächlich erfolgen. Jeder Befehl ist direkt kopierbar.
Voraussetzungen
- Ubuntu-24.04-LTS-Server mit
sudo-Zugriff. - SSH funktioniert bereits — idealerweise mit Schlüssel-Authentifizierung. Siehe unsere Anleitung zu SSH-Key-Auth und Härtung.
- Ihre aktuelle öffentliche IP-Adresse, um sie zu whitelisten. Ermitteln Sie sie von Ihrem Arbeitsplatz mit
curl ifconfig.me.
Schritt 1: fail2ban installieren
Installieren Sie das Paket aus dem Ubuntu-Repository und stellen Sie sicher, dass der Dienst aktiviert ist:
sudo apt update
sudo apt install -y fail2ban
sudo systemctl enable --now fail2banUnter Ubuntu 24.04 liest fail2ban standardmäßig über systemd das Journal, funktioniert also out of the box mit modernem SSH-Logging. Prüfen Sie, ob es gestartet ist:
systemctl status fail2banSchritt 2: Lokale Konfiguration erstellen
Bearbeiten Sie niemals jail.conf direkt — Paket-Updates überschreiben sie. Legen Sie stattdessen eine jail.local-Datei an, die fail2ban zuletzt liest und die Vorrang hat:
sudo nano /etc/fail2ban/jail.localFügen Sie die folgende Basiskonfiguration ein. Der Abschnitt [DEFAULT] gilt für jedes Jail; [sshd] aktiviert den Schutz speziell für SSH:
[DEFAULT] # Whitelist: diese nie sperren (localhost + eigene IP/Bereich) ignoreip = 127.0.0.1/8 ::1 203.0.113.45Nach 5 Fehlversuchen in 10 Minuten fuer 1 Stunde sperren
bantime = 1h findtime = 10m maxretry = 5
Das systemd-Journal als Log-Quelle nutzen
backend = systemd
[sshd] enabled = true port = ssh
Ersetzen Sie 203.0.113.45 durch Ihre echte öffentliche IP aus den Voraussetzungen. Sie können mehrere Adressen oder CIDR-Bereiche durch Leerzeichen getrennt angeben.
Schritt 3: Wiederholungstäter eskalierend sperren
Um hartnäckige Angreifer härter zu bestrafen, aktivieren Sie inkrementelles Sperren, sodass jede erneute Sperre länger dauert. Fügen Sie dies dem Abschnitt [DEFAULT] hinzu:
bantime.increment = true
bantime.factor = 2
bantime.maxtime = 1wMit diesen Einstellungen verdoppelt sich die Sperrzeit eines Wiederholungstäters bei jeder neuen Sperre, gedeckelt auf eine Woche — ein starkes Abschreckungsmittel gegen immer wiederkehrende Bots.
Schritt 4: Konfiguration anwenden
Starten Sie fail2ban neu, damit es jail.local liest, und bestätigen Sie, dass es keine Syntaxfehler gab:
sudo systemctl restart fail2ban
sudo systemctl status fail2banStartet der Dienst nicht, enthält Ihre Konfiguration einen Tippfehler; prüfen Sie das Journal:
journalctl -u fail2ban --since '5 min ago'Schritt 5: Aktives Jail überprüfen
fail2ban bringt einen Steuerungsclient mit, fail2ban-client. Listen Sie aktive Jails auf und inspizieren Sie das SSH-Jail:
sudo fail2ban-client status
sudo fail2ban-client status sshdDer sshd-Status zeigt aktuell fehlgeschlagene und gesperrte IPs sowie das überwachte Journal:
Status for the jail: sshd
|- Filter
| |- Currently failed: 0
| |- Total failed: 12
| - Journal matches: _SYSTEMD_UNIT=sshd.service + _COMM=sshd - Actions
|- Currently banned: 1
|- Total banned: 3
`- Banned IP list: 198.51.100.22Schritt 6: Sperren testen und verwalten
Sie können Adressen von Hand sperren und entsperren, um die Firewall-Integration zu bestätigen. Entsperren Sie eine legitime IP, die erwischt wurde:
sudo fail2ban-client set sshd unbanip 198.51.100.22Um die Firewall-Seite zu testen, inspizieren Sie die Regeln, die fail2ban einfügt (unter Ubuntu 24.04 nutzt es nftables):
sudo nft list ruleset | grep -A5 f2bGesperrte Adressen erscheinen in einem eigenen fail2ban-Set, und Verbindungsversuche von ihnen werden verworfen, bevor SSH sie überhaupt sieht.
Andere Dienste schützen
fail2ban ist nicht auf SSH beschränkt. Betreiben Sie einen Webserver, können Sie Jails für Nginx-Authentifizierungsfehler oder bösartige Bots ergänzen. Um etwa wiederholte HTTP-Auth-Fehler zu sperren, fügen Sie zu jail.local hinzu:
[nginx-http-auth]
enabled = true
port = http,httpsDas passt gut zu einem korrekt konfigurierten Nginx-Reverse-Proxy vor Ihren Apps.
Fehlerbehebung und typische Stolperfallen
- Jail zeigt trotz Angriffen 0 Sperren — der
backendist falsch. Verwenden Sie unter Ubuntu 24.04backend = systemd, damit fail2ban das Journal liest und nicht eine fehlende/var/log/auth.log. - Sie haben sich selbst gesperrt — greifen Sie über die Server-Konsole zu und führen Sie
fail2ban-client set sshd unbanip IHRE_IPaus, dann tragen Sie Ihre IP inignoreipein. - Dienst startet nicht — ein Syntaxfehler in
jail.local; prüfen Siejournalctl -u fail2ban. - Sperren laufen zu schnell oder zu langsam ab — passen Sie
bantime,findtimeundmaxretryan Ihr Bedrohungsmodell an.
Wo das in eine gehärtete Basis passt
fail2ban ist eine Schicht der Verteidigung in der Tiefe. Kombinieren Sie es mit einer Host-Firewall — siehe UFW einrichten — und mit Schlüssel-only-SSH aus der Härtungs-Anleitung oben. Zusammen bilden sie die Sicherheitsbasis, die von jedem mit dem Internet verbundenen Server erwartet wird.
Fazit
Sie haben fail2ban installiert, ein SSH-Jail mit sinnvollen Sperrzeiten und Eskalation konfiguriert, Ihre eigene IP gewhitelistet und bestätigt, dass Angreifer an der Firewall gesperrt werden. Genau diese mehrschichtige Härtung ist der Standard, den clouditiv plattformweit anlegt: eine souveräne, ISO 27001 / BSI C5-zertifizierte Private Cloud mit Ubuntu 24.04 + OpenStack 2025.2, mit eingebautem Eindringschutz und Daten in Deutschland. Erfahren Sie mehr über unsere Lösung für digitale Souveränität.