Brute Force Angriffe mit Fail2Ban abwehren

Wie ich in einem vorherigen Beitrag ja bereits erwähnt hatte, ist eine (Software-) Firewall ein wichtiges Werkzeug, mit dem die Sicherheit eines Linux Servers erhöht werden kann. Problematisch sind aber Dienste, die generell für alle aus dem Internet verfügbar sein müssen, wie beispielsweise Mail- und Web-Dienste. Oft kann ein Angreifer tage- oder gar wochenlang automatisiert und systematisch Passwörter für beispielsweise einen SSH Zugang oder ein E-Mail Konto durchprobieren. Abhilfe schafft hier Fail2Ban, welches nach fehlerhaften Anmeldeversuchen in Log-Dateien sucht und bei einem Fund die entsprechende IP Adresse mit Hilfe der Firewall sperrt.

Installation

Unter Debian 8 Jessie ist die Installation leicht und es sind bereits ebenfalls viele nützliche Filter vorhanden:

Konfiguration

Die Standard-Konfigurationsdatei jail.conf sollte aufgrund späterer Paketaktualisierungen nicht verändert werden, stattdessen wird eine jail.local angelegt, in der Parameter überschrieben und neue hinzugefügt werden können. Meine jail.local auf dem Mail-Server sieht so aus:

Roundcube und Apache Filter

Wenn in 10 Minuten (findtime) 3 Zeilen mit fehlerhaften Login (maxretry) gefunden wurden, wird die entsprechende IP Adresse für einen Tag (bantime) blockiert. Auf dem Webserver verwende ich andere Regeln, u.a.:

Die Webmail Anwendung Roundcube läuft bei mir nicht auf dem Mail-, sondern auf dem etwas schnelleren Webserver, weshalb ich diese Regel an dieser Stelle verwende.

WordPress Filter

Auch für WordPress lässt sich ein Filter implementieren, allerdings ist die Log-Datei des Webservers nicht aussagekräftig genug. Deswegen muss für die jeweilige WordPress Installation noch das Plugin WP fail2ban installiert werden. Anschließend müssen die Zwei Filter-Dateien noch nach in das Fail2Ban Verzeichnis kopiert werden:

Nun müssen die Filter noch in der jail.local aktiviert werden:

Bedienung

Für die Bedienung von Fail2Ban kommt man mit wenigen Kommandos gut zurecht:

Wenn die Konfiguration erledigt ist, muss Fail2Ban noch einmal mit  systemctl restart fail2ban  neugestartet werden. Funde und Sperrungen kann man in der  /var/log/fail2ban.log  finden.

3 Gedanken zu „Brute Force Angriffe mit Fail2Ban abwehren

  1. Als Ergänzung dazu:
    Auf meinem virtuellen Server habe ich nicht die Möglichkeit iptables zu konfigurieren. In dem Fall funktioniert auch „denyhosts“ sehr gut.

  2. Warum nicht einfach Passwort Login verbieten? Dann stellt sich das Problem erst gar nicht und an Sicherheit ist auch gewonnen.

    • Stimmt, natürlich sollte kein SSH Login mit Passwort erlaubt sein. Trotzdem wird manchmal einfach blind eine Brute Force Attacke auch auf solche Server angewendet, was einen kleinen DoS Effekt haben kann. Das ist recht unschön und kann bei kleineren Server die Last spürbar anheben.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.