← Zurück zu den Tutorials
11. Juni 2026·4 Min. Lesezeit

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 fail2ban

Unter 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 fail2ban

Schritt 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.local

Fü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.45

Nach 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   = 1w

Mit 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 fail2ban

Startet 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 sshd

Der 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.22

Schritt 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.22

Um 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 f2b

Gesperrte 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,https

Das passt gut zu einem korrekt konfigurierten Nginx-Reverse-Proxy vor Ihren Apps.

Fehlerbehebung und typische Stolperfallen

  • Jail zeigt trotz Angriffen 0 Sperren — der backend ist falsch. Verwenden Sie unter Ubuntu 24.04 backend = 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_IP aus, dann tragen Sie Ihre IP in ignoreip ein.
  • Dienst startet nicht — ein Syntaxfehler in jail.local; prüfen Sie journalctl -u fail2ban.
  • Sperren laufen zu schnell oder zu langsam ab — passen Sie bantime, findtime und maxretry an 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.