Wie man Fail2Ban unter Linux installiert und konfiguriert

9 Min. Lesezeit - 14. Mai 2026

hero section cover
Inhaltsverzeichnis
  • So installieren und konfigurieren Sie Fail2Ban unter Linux
  • Voraussetzungen
  • Installation von Fail2Ban unter Ubuntu/Debian
  • Konfigurieren von Jails
  • Testen und Überwachen
  • Erweiterte Konfiguration
Teilen

Schritt-für-Schritt-Anleitung zum Installieren, Konfigurieren und Testen von Fail2Ban auf Ubuntu-, Debian- und RHEL-basierten Linux-Servern.

So installieren und konfigurieren Sie Fail2Ban unter Linux

Fail2Ban überwacht Ihre Serverprotokolle auf verdächtige Aktivitäten und sperrt problematische IP-Adressen automatisch, indem es Ihre Firewall-Regeln aktualisiert. Es stoppt Brute-Force-Angriffe, reduziert Protokoll-Rauschen und läuft nach der Konfiguration unauffällig im Hintergrund. Diese Anleitung behandelt die Installation unter Ubuntu/Debian, die Kernkonfiguration, die Einrichtung von Jails sowie einige wissenswerte erweiterte Optionen.

Voraussetzungen

Fail2Ban läuft auf den meisten Linux-Distributionen: Ubuntu, Debian, AlmaLinux, CentOS, RHEL, Rocky Linux und Fedora. Sie benötigen:

  • Python 3 auf dem System installiert
  • Root- oder Sudo-Zugriff für die Paketinstallation und Änderungen an der Firewall
  • Eine aktive Firewall (iptables, nftables, ufw oder firewalld)
  • Protokolldateien, die fehlgeschlagene Anmeldeversuche erfassen (/var/log/auth.log auf Debian-basierten Systemen /var/log/secure auf RHEL-basierten Systemen)

Auf RHEL-basierten Systemen aktivieren Sie zunächst das EPEL-Repository. Bevor Sie Fail2Ban installieren, überprüfen Sie, ob Ihre Firewall läuft, mit ufw status oder systemctl status firewalld.

Installation von Fail2Ban unter Ubuntu/Debian

Aktualisieren Sie Ihre Pakete und installieren Sie Fail2Ban:

sudo apt update && sudo apt upgrade -y
sudo apt install fail2ban

Aktivieren Sie den Dienst, damit er beim Systemstart ausgeführt wird, und starten Sie ihn anschließend:

sudo systemctl enable fail2ban
sudo systemctl start fail2ban

Kopieren Sie die Standardkonfiguration in eine lokale Übersteuerungsdatei. Bearbeiten Sie immer jail.local, nicht jail.conf, damit Paketaktualisierungen Ihre Einstellungen nicht überschreiben:

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Überprüfen Sie, ob alles läuft:

sudo systemctl status fail2ban
sudo fail2ban-client status

Der erste Befehl sollte „Active: active (running)“ anzeigen. Der zweite listet Ihre aktiven Jails auf. Vergewissern Sie sich, dass Fail2Ban beim Systemstart aktiviert ist, mit sudo systemctl is-enabled fail2ban.

Konfigurieren von Jails

Standardeinstellungen

Öffnen /etc/fail2ban/jail.local und passen Sie den [DEFAULT] Abschnitt an. Diese Einstellungen gelten für alle Jails, sofern sie nicht überschrieben werden:

ParameterEmpfohlener WertFunktion
bantime3600Sperrt eine IP-Adresse für 1 Stunde
findtime600Zählt Fehler innerhalb eines 10-Minuten-Fensters
maxretry3 bis 5Fehlversuche, bevor eine Sperre ausgelöst wird
ignoreip127.0.0.1/8 ::1IPs, die nie gesperrt werden

Füge deine eigene Verwaltungs-IP hinzu ignoreip damit Sie sich nicht selbst aussperren. Beispiel: ignoreip = 127.0.0.1/8 ::1 203.0.113.50.

SSH-Schutz

Aktivieren Sie den SSH-Jail in jail.local:

[sshd]
enabled = true

Stellen Sie sicher, dass logpath auf die richtige Logdatei für Ihre Distribution verweist. Wenn Sie SSH auf einen nicht standardmäßigen Port (z. B. 2222) verschoben haben, passen Sie den port entsprechend an.

Webserver-Schutz

Aktivieren Sie die Jail, die zu Ihrem Webserver passt:

  • Nginx: [nginx-http-auth] bei Authentifizierungsfehlern, [nginx-botsearch] für bösartige Bots
  • Apache: [apache-auth] für die Authentifizierung, [apache-badbots] für Bots

Recidive Jail

Der [recidive] Jail erfasst IPs, die in anderen Jails immer wieder gesperrt werden, und verhängt eine längere Sperre, in der Regel eine Woche (604.800 Sekunden). Dies ist nützlich bei hartnäckigen Angreifern, die ihre Vorgehensweise variieren.

Nach dem Vornehmen von Änderungen neu laden:

sudo systemctl restart fail2ban
sudo fail2ban-client status

Testen und Überwachen

Testen von Sperren

Bevor Sie sich in der Produktion auf Fail2Ban verlassen, testen Sie es. Versuchen Sie von einem Remote-Rechner (nicht Ihrer Admin-IP) aus SSH-Anmeldungen, bis Sie maxretry. Sie sollten gesperrt werden. Überprüfen Sie dies mit:

sudo fail2ban-client status sshd

Beobachten Sie, wie Sperren in Echtzeit erfolgen:

tail -f /var/log/fail2ban.log

Wenn Sie versehentlich eine legitime IP gesperrt haben, heben Sie die Sperre auf:

sudo fail2ban-client set sshd unbanip 203.0.113.50

Tägliche Überwachung

Überprüfen Sie den Sperrverlauf, indem Sie das Protokoll durchsuchen:

grep "Ban\|Unban" /var/log/fail2ban.log

Nützliche Verwaltungsbefehle:

BefehlZweck
fail2ban-client statusAlle aktiven Jails auflisten
fail2ban-client bannedAlle derzeit gesperrten IPs anzeigen
fail2ban-client set <jail> unbanip <IP>Eine bestimmte IP-Adresse entsperren
fail2ban-client unban --allAlle Sperren aufheben
fail2ban-client set <jail> banip <IP>Eine IP manuell sperren

Sperren bleiben auch nach Neustarts bestehen. Fail2Ban speichert sie in einer SQLite-Datenbank unter /var/lib/fail2ban/fail2ban.sqlite3.

Erweiterte Konfiguration

Umstellung auf nftables

nftables ist der moderne Ersatz für iptables. Es verarbeitet IPv4 und IPv6 in einem einzigen Framework, skaliert besser bei großen Sperrlisten und verfügt über eine integrierte Ratenbegrenzung. Wenn Sie Ubuntu 22.04+, Debian 11+ oder eine andere aktuelle Distribution verwenden, ist dies die bessere Wahl.

Konfigurieren Sie es jail.local:

[DEFAULT]
banaction = nftables-multiport

Starten Sie Fail2Ban neu und überprüfen Sie dies mit sudo nft list ruleset. Sie sollten Folgendes sehen f2b-table und f2b-chain in der Ausgabe sehen. Bleiben Sie nur bei iptables, wenn Sie ein älteres System verwenden oder Kompatibilitätsanforderungen haben.

E-Mail-Benachrichtigungen

Standardmäßig sperrt Fail2Ban ohne Benachrichtigung. Um E-Mail-Benachrichtigungen zu erhalten, fügen Sie Folgendes in den [DEFAULT] Abschnitt von jail.local:

[DEFAULT]
destemail = [email protected]
sender = [email protected]
mta = sendmail
action = %(action_mwl)s

Die action_mwl Aktion sendet eine E-Mail mit Details zum Sperrvorgang, WHOIS-Daten und den Log-Einträgen, die die Sperre ausgelöst haben. Verwenden Sie action_mw , wenn Sie nur WHOIS-Daten wünschen. Sie benötigen einen Mail-Transfer-Agent wie sendmail oder ein über etwas wie msmtp.

Für Slack- oder Discord-Benachrichtigungen erstellen Sie ein Skript, das einen Webhook sendet, und binden Sie es über eine benutzerdefinierte Aktionsdatei in /etc/fail2ban/action.d/.

Wenn Sie nach einem Server mit vollem Root-Zugriff und unbegrenzter Bandbreite für den Betrieb von Fail2Ban suchen, sehen Sie sich die dedizierten Server von FDC an.

background image
Bremst Ihr Server Ihr Wachstum?

Haben Sie genug von langsamen Bereitstellungen oder Bandbreitenbeschränkungen? FDC Servers bietet sofortige dedizierte Leistung, globale Reichweite und flexible Pläne, die für jede Größenordnung geeignet sind. Sind Sie bereit für ein Upgrade?

Leistung jetzt freischalten

Blog

Diese Woche im Blickpunkt

Weitere Artikel
Warum es wichtig ist, einen leistungsstarken und ungemessenen VPS zu haben

Warum es wichtig ist, einen leistungsstarken und ungemessenen VPS zu haben

Ein ungemessener VPS bietet eine pauschale Bandbreite mit einer festen Portgeschwindigkeit. Wie er sich von gebührenpflichtigen Tarifen unterscheidet, wann er sich lohnt und worauf Sie vor dem Kauf achten sollten.

7 Min. Lesezeit - 9. Mai 2025

Linux-Speicherverwaltung: Swap, OOM Killer & Cgroups

12 Min. Lesezeit - 31. Mai 2026

Weitere Artikel
background image

Haben Sie Fragen oder benötigen Sie eine individuelle Lösung?

icon

Flexible Optionen

icon

Globale Reichweite

icon

Sofortige Bereitstellung

icon

Flexible Optionen

icon

Globale Reichweite

icon

Sofortige Bereitstellung