Wie man Fail2Ban unter Linux installiert und konfiguriert

9 Min. Lesezeit - 14. Mai 2026

hero section cover
Inhaltsverzeichnis
  • Wie man Fail2Ban unter Linux installiert und konfiguriert
  • Voraussetzungen
  • Installation von Fail2Ban auf Ubuntu/Debian
  • Jails konfigurieren
  • 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.

Wie man Fail2Ban unter Linux installiert und konfiguriert

Fail2Ban überwacht Ihre Serverprotokolle auf verdächtige Aktivitäten und sperrt automatisch angreifende IPs durch Aktualisierung Ihrer Firewall-Regeln. Fail2Ban stoppt Brute-Force-Angriffe, reduziert das Protokollrauschen und läuft nach der Konfiguration unauffällig im Hintergrund. Diese Anleitung behandelt die Installation unter Ubuntu/Debian, die Grundkonfiguration, die Einrichtung der Jail und einige fortgeschrittene Optionen, die Sie kennen sollten.

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 aufzeichnen(/var/log/auth.log auf Debian-basierten Systemen, /var/log/secure auf RHEL-basierten Systemen)

Auf RHEL-basierten Systemen müssen Sie zuerst das EPEL-Repository aktivieren. Überprüfen Sie vor der Installation von Fail2Ban, ob Ihre Firewall mit ufw status oder systemctl status firewalld läuft.

Installation von Fail2Ban auf 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 Booten gestartet wird, und starten Sie ihn dann:

sudo systemctl enable fail2ban
sudo systemctl start fail2ban

Kopieren Sie die Standardkonfiguration in eine lokale Überschreibungsdatei. 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 Befehl listet Ihre aktiven Jails auf. Bestätigen Sie, dass Fail2Ban beim Booten mit sudo systemctl is-enabled fail2ban aktiviert ist.

Jails konfigurieren

Standardeinstellungen

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

ParameterEmpfohlener WertWas bewirkt er
bantime3600Sperrt eine IP für 1 Stunde
suchzeit600Zählt Ausfälle 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ügen Sie Ihre eigene Management-IP zu ignoreip hinzu, damit Sie sich nicht selbst aussperren. Beispiel: ignoreip = 127.0.0.1/8 ::1 203.0.113.50.

SSH-Schutz

Aktivieren Sie das SSH-Gefängnis in jail.local:

[sshd]
enabled = true

Stellen Sie sicher, dass logpath auf die richtige Protokolldatei für Ihre Distribution verweist. Wenn Sie SSH auf einen Nicht-Standard-Port (z. B. 2222) verlegt haben, aktualisieren Sie den Port-Parameter entsprechend.

Webserver-Schutz

Aktivieren Sie die Jail, die zu Ihrem Webserver passt:

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

Rückfall-Gefängnis

Das [recidive]-Gefängnis fängt IPs ab, die in anderen Gefängnissen immer wieder gesperrt werden, und verhängt eine längere Strafe, normalerweise eine Woche (604.800 Sekunden). Sie ist nützlich für hartnäckige Angreifer, die ihre Vorgehensweise ändern.

Laden Sie nach den Änderungen neu:

sudo systemctl restart fail2ban
sudo fail2ban-client status

Testen und Überwachen

Testen von Verboten

Bevor Sie Fail2Ban in der Produktion einsetzen, sollten Sie es testen. Versuchen Sie von einem entfernten Rechner aus (nicht von Ihrer Admin-IP), sich per SSH anzumelden, bis Sie die maximale Anzahl an Wiederholungen überschreiten. Sie sollten blockiert werden. Bestätigen Sie mit:

sudo fail2ban-client status sshd

Beobachten Sie die Sperrungen in Echtzeit:

tail -f /var/log/fail2ban.log

Wenn Sie versehentlich eine rechtmäßige IP sperren, heben Sie die Sperre auf:

sudo fail2ban-client set sshd unbanip 203.0.113.50

Tag-zu-Tag-Überwachung

Überprüfen Sie den Sperrungsverlauf durch Abfragen des Protokolls:

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

Nützliche Verwaltungsbefehle:

BefehlZweck
fail2ban-Klient StatusAlle aktiven Jails auflisten
fail2ban-client verbanntAlle derzeit gesperrten IPs anzeigen
fail2ban-client set <Gefängnis> unbanip <IP>Eine bestimmte IP freigeben
fail2ban-client unban --allAlle Bans löschen
fail2ban-client set <Gefängnis> banip <IP>Manuelles Verbot einer IP

Bans bleiben über Neustarts hinweg 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 behandelt IPv4 und IPv6 in einem einzigen Framework, skaliert besser mit großen Verbotslisten und hat eine eingebaute Ratenbegrenzung. Wenn Sie mit Ubuntu 22.04+, Debian 11+ oder einer anderen aktuellen Distribution arbeiten, ist es die bessere Wahl.

Setzen Sie es in jail.local:

[DEFAULT]
banaction = nftables-multiport

Starten Sie Fail2Ban neu und überprüfen Sie es dann mit sudo nft list ruleset. Sie sollten 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 verbietet Fail2Ban stillschweigend. Um E-Mail-Benachrichtigungen zu erhalten, fügen Sie Folgendes zum Abschnitt [DEFAULT] in jail.local hinzu:

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

Die Aktion action_mwl sendet eine E-Mail mit Verbotsdetails, WHOIS-Daten und den Protokollzeilen, die das Verbot 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 SMTP-Relay, das durch etwas wie msmtp konfiguriert wird.

Für Slack- oder Discord-Benachrichtigungen erstellen Sie ein Skript, das einen Webhook sendet, und verdrahten es mit einer benutzerdefinierten Aktionsdatei in /etc/fail2ban/action.d/.

Wenn Sie auf der Suche nach einem Server mit vollem Root-Zugriff und ungemessener Bandbreite sind, um Fail2Ban auszuführen, schauen 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
Checkliste für die Härtung von Linux-Servern

Checkliste für die Härtung von Linux-Servern

Schritt-für-Schritt-Checkliste zur Absicherung eines Linux-Servers. Behandelt SSH, Firewalls, Patching, Dateiberechtigungen, SELinux/AppArmor und Audit-Protokollierung

15 Min. Lesezeit - 8. Mai 2026

iperf3 Tutorial: Netzwerkgeschwindigkeit unter Linux und Windows testen

10 Min. Lesezeit - 7. 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