Fail2ban konfigurieren: Linux Server Überwachung & Absicherung

Fail2ban konfigurieren: Linux Server Überwachung & Absicherung
  • Fail2ban analysiert Logdateien und sperrt IPs nach mehrfachen Fehlversuchen temporär.
  • Installation via apt, yum oder dnf – je nach Distribution.
  • Wichtige Parameter: bantime, findtime, maxretry – individuell anpassbar.
  • Eigene Filter für Apache, Nginx oder andere Dienste erstellbar.
  • DSGVO-konformer Betrieb durch regelmäßige Löschung alter Logs.

Einleitung

Brute-Force-Angriffe gehören zu den häufigsten Bedrohungen für Linux-Server. Ich sehe das immer wieder: Logdateien quellen über, die CPU-Last steigt, und irgendwann ist der Server kompromittiert. Fail2ban ist ein Intrusion-Prevention-Tool, das Logdateien in Echtzeit analysiert und auffällige IPs temporär sperrt. In dieser Anleitung zeige ich Ihnen, wie Sie Fail2ban auf Ihrem Server installieren, konfigurieren und für verschiedene Dienste nutzen – mit Fokus auf deutsche Umgebungen und DSGVO-konformes Logging.

1. Schritt: Fail2ban installieren

Die Installation ist unkompliziert. Für Debian/Ubuntu verwenden Sie:

sudo apt update && sudo apt install fail2ban -y

Für CentOS/RHEL 7 oder älter:

sudo yum install epel-release && sudo yum install fail2ban -y

Für Fedora und CentOS 8+:

sudo dnf install fail2ban -y

Überprüfen Sie die Installation mit fail2ban-client --version. Erscheint eine Versionsnummer, ist alles bereit. (Ich bevorzuge die Version 0.11.x wegen der verbesserten Regex-Unterstützung.)

2. Schritt: Grundkonfiguration vornehmen

Die Hauptkonfiguration liegt in /etc/fail2ban/jail.conf. Diese Datei wird bei Updates überschrieben. Erstellen Sie daher eine lokale Kopie:

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

Bearbeiten Sie jail.local. Die wichtigsten Parameter:

  • ignoreip: IPs, die niemals gesperrt werden – zwingend Ihre eigene IP und localhost.
  • bantime: Dauer der Sperre in Sekunden. Empfehlung: 600 (10 Minuten) für erste Tests, später 3600 (1 Stunde).
  • findtime: Zeitfenster, in dem Fehlversuche gezählt werden (z. B. 600 Sekunden).
  • maxretry: Anzahl der Fehlversuche vor Sperre. Standard 5, ich setze oft 3.

Beispiel für SSH ([sshd]):

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 600

3. Schritt: Einen benutzerdefinierten Filter erstellen

Filter liegen in /etc/fail2ban/filter.d/. Ein Filter definiert, welche Logmuster zu einer Sperre führen. Ich zeige Ihnen einen Filter gegen 404-Scans in Nginx. Erstellen Sie /etc/fail2ban/filter.d/nginx-404.conf:

[Definition]
failregex = ^ .* "GET .* HTTP/.*" 404 .*$
ignoreregex =

Dann aktivieren Sie den Jail in jail.local:

[nginx-404]
enabled = true
filter = nginx-404
logpath = /var/log/nginx/access.log
maxretry = 5
bantime = 600

Testen Sie den Filter mit sudo fail2ban-regex /var/log/nginx/access.log /etc/fail2ban/filter.d/nginx-404.conf. (Ich mache das immer vor der Aktivierung, um false positives zu vermeiden.)

4. Schritt: Fail2ban aktivieren und testen

Starten und aktivieren Sie den Dienst:

sudo systemctl enable fail2ban
sudo systemctl start fail2ban

Prüfen Sie den Status mit sudo fail2ban-client status. Sie sollten die aktiven Jails sehen. Simulieren Sie einen Angriff: Melden Sie sich mehrfach falsch per SSH an. Überprüfen Sie mit sudo fail2ban-client status sshd, ob die IP gesperrt wurde. (Einmal habe ich vergessen, ignoreip zu setzen – und mich selbst ausgesperrt. Seitdem bin ich vorsichtig.)

5. Schritt: Überwachung und Logging einrichten

Fail2ban schreibt seine eigenen Logs nach /var/log/fail2ban.log. Ich empfehle, diese regelmäßig zu rotieren (logrotate) und auf verdächtige Muster zu prüfen. Für E-Mail-Benachrichtigungen aktivieren Sie in jail.local:

[DEFAULT]
action = %(action_mwl)s

Das versendet eine Mail mit Logauszug. Achten Sie auf DSGVO: IP-Adressen sind personenbezogene Daten. Löschen Sie Logs nach spätestens 7 Tagen oder anonymisieren Sie sie. (Ich habe eine cron-Job, der Logs älter als 3 Tage komprimiert und nach 30 Tagen löscht.)

6. Schritt: Fail2ban für verschiedene Dienste konfigurieren

Hier eine Übersicht empfohlener Parameter für gängige Dienste:

Dienstmaxretrybantime (Sekunden)findtime (Sekunden)
SSH3600600
Apache (auth)5300300
Nginx (404)10600600
Postfix (SASL)336003600
vsftpd5600600

Passen Sie die Werte an Ihre Umgebung an. (Ich setze bei kritischen Diensten wie SSH lieber niedrige maxretry-Werte.)

Häufige Fehler und deren Vermeidung

  • Fehler 1: jail.local nicht erstellt. Änderungen in jail.conf gehen bei Updates verloren. Erstellen Sie immer jail.local.
  • Fehler 2: Falsche Regex im Filter. Testen Sie mit fail2ban-regex, bevor Sie den Jail aktivieren.
  • Fehler 3: Zu kurze bantime. 10 Minuten sind ein guter Start, für Brute-Force-Angriffe empfehle ich mindestens 1 Stunde.
  • Fehler 4: Ignorieren eigener IPs vergessen. Setzen Sie ignoreip = 127.0.0.1/8 ::1 plus Ihre öffentliche IP.
  • Fehler 5: Keine Überwachung der Logs. Prüfen Sie regelmäßig /var/log/fail2ban.log auf Fehler oder unerwartete Sperren.

FAQ – Häufig gestellte Fragen

Kann Fail2ban auch DDoS-Angriffe abwehren?

Nein, Fail2ban ist gegen Brute-Force-Angriffe konzipiert, nicht gegen DDoS. Für DDoS benötigen Sie spezialisierte Tools wie iptables-Rate-Limiting oder Cloud-Dienste.

Wie kann ich eine gesperrte IP manuell entsperren?

Mit sudo fail2ban-client set <jail> unbanip <IP>. Ersetzen Sie <jail> durch den Jail-Namen (z. B. sshd).

Ist Fail2ban DSGVO-konform?

Ja, wenn Sie die Logs regelmäßig löschen und IPs nicht länger als nötig speichern. Empfehlung: Log-Rotation nach 7 Tagen, Löschung nach 30 Tagen.

Kann ich Fail2ban mit mehreren Servern nutzen?

Ja, über eine zentrale Datenbank (z. B. MySQL) oder das fail2ban-client-Remote-Interface. Für kleine Setups reicht die lokale Konfiguration.

Welche Linux-Distributionen werden unterstützt?

Alle gängigen: Debian, Ubuntu, CentOS, Fedora, openSUSE, Arch Linux. Die Installation variiert leicht, die Konfiguration ist identisch.

Das war’s. Fail2ban ist ein mächtiges Werkzeug – aber nur, wenn Sie es richtig konfigurieren. Testen Sie die Einstellungen in einer sicheren Umgebung, bevor Sie sie produktiv einsetzen. Haben Sie eigene Tipps oder Fragen? Schreiben Sie einen Kommentar – ich lese mit.



Anna Berger
Anna Berger
IT-Sicherheitsanalystin und Tech-Journalistin

Schon als Kind war ich fasziniert von der Logik hinter Computern und der unendlichen Welt der Daten. Was als spielerische Neugier mit dem Zerlegen alter PCs begann, entwickelte sich schnell zu einer tiefen Leidenschaft für die Informatik. Heute sehe ich es als meine Berufung, komplexe digitale Themen greifbar zu …

Tous les articles de Anna Berger →

Laisser un commentaire