Fail2Ban: Wie man Wiederholungstäter erkennt und für eine Woche sperrt (Recidive)


Wenn du Fail2Ban zusammen mit Nginx und WordPress verwendest, wirst du früher oder später eine Sache bemerken: dieselben IP-Adressen kommen immer wieder zurück. Sie werden für einige Minuten oder eine Stunde gebannt, verschwinden … und versuchen kurz darauf erneut /.env, /wp-login.php, /phpmyadmin oder andere bekannte Angriffs-Pfade.

Die Lösung besteht nicht darin, die Filter aggressiver einzustellen. Die Lösung ist recidive — eine zweite Schutzebene in Fail2Ban, die die Bann-Historie analysiert und Wiederholungstäter langfristig blockiert.

Bezug zur vorherigen Konfiguration

Falls du noch keine grundlegende Fail2Ban-Konfiguration für Nginx und WordPress hast, habe ich sie hier beschrieben:

Fail2Ban + Nginx + WordPress – Grundkonfiguration

In diesem Artikel konfigurieren wir Jails wie nginx-exploit, nginx-secure oder sshd. Recidive ersetzt diese Konfiguration nicht — es verstärkt sie.

Wie man Wiederholungstäter in den Logs findet

Zunächst solltest du prüfen, ob das Problem tatsächlich besteht. Wir extrahieren aus den Fail2Ban-Logs die Liste der IP-Adressen, die am häufigsten gebannt wurden:

Beispielausgabe (Adressen teilweise anonymisiert):

Wenn du Zahlen wie 8, 9 oder 13 siehst, bedeutet das, dass diese IPs nach Ablauf des Banns zurückkehren. Eine kurze bantime ist für sie lediglich eine technische Pause.

Warum recidive besser ist als eine längere bantime

  • Du musst nicht jeden für 24 Stunden bannen, nur wegen eines Tippfehlers in der URL.
  • Du erhöhst nicht das Risiko, legitime Nutzer zu blockieren.
  • Die Strafe ist progressiv und betrifft nur wiederkehrende Adressen.

Recidive analysiert /var/log/fail2ban.log und zählt, wie oft eine IP von anderen Jails gebannt wurde. Dadurch werden nur diejenigen „endgültig blockiert“, die bereits mehrfach aufgefallen sind.

Recidive-Konfiguration (5 Bans in 24h = 7 Tage Bann)

Füge folgenden Block in /etc/fail2ban/jail.local ein:

Am Ende der Datei einfügen:

Datei speichern und Fail2Ban neu starten:

Status des Jails prüfen:

Wie man prüft, wer nahe am recidive-Schwellenwert ist

Wenn du IP-Adressen sehen möchtest, die bereits mehrere Bans haben und sich dem recidive-Schwellenwert nähern:

Zusammenfassung

Recidive ist eine der einfachsten und zugleich effektivsten Methoden, um wiederkehrende Scanner und Bots einzudämmen. Statt aggressiv alle zu bannen — blockierst du nur diejenigen, die mehrfach zurückkehren.

In einer Umgebung mit mehreren Domains, Nginx-Reverse-Proxy und WordPress ist es praktisch ein Pflichtbestandteil der Konfiguration: weniger Log-Rauschen, weniger wiederholte Angriffe und weniger manuelle Analyse.