Fail2Ban installieren und einrichten

fail2ban
Wenn man heutzutage einen Server im Internet betreibt wird einem schon aufgefallen sein, wie sich die Anzahl der Angriffe über die letzten Jahre hinweg schlagartig vermehrt hat. Wo man vor 10 Jahren noch 20 fehlgeschlagene Login Versuche in der Logdatei hatte sind es heute 200. Das ist eine erschreckende Wendung und sollte jedem Administrator oder Webseiten Betreiber zu denken geben, wie es um die Sicherheit seiner Daten bestellt ist.

Es gibt viele Möglichkeiten einen Server im Internet gegen Einbrüche von außen zu sichern, die wohl beliebteste, weil auch zugleich einfachste Methode ist: Fail2Ban. Das Programm macht eigentlich nichts anderes, als fehlgeschlagene Login Versuche zu überwachen und bei einer gewissen Anzahl die IP zu sperren. Total simpel, total gut. Fail2Ban gibt es mittlerweile seit ca. 10 Jahren und es ist mit den bekannten Diensten wie z.B. Webserver, FTP Server und SSH Servern kompatibel. Dazu bringt es dutzende von vorgefertigten Filtern von Haus aus mit. So ist die Installation und Konfiguration relativ einfach und auch für werdende Administratoren leicht umzusetzen.

Fail2Ban installieren und einrichten

Ich gehe hier mal von einem Ubuntu System aus. Die Installation sollte aber auch auf RPM Systemen genauso leicht ablaufen, da eigentlich jede der größeren Distributionen das Paket in den Paketquellen hat.

Der Befehl zur Installation von Fail2Ban lautet:

sudo apt-get install fail2ban

Nach der Installation ist Fail2Ban in dem Verzeichnis /etc/fail2ban zu finden. Die Konfigurationsdatei heisst jail.conf. Diese wird auch gleich von uns bearbeitet. Zuerst aber eine Erklärung zu den Parametern.

Die „Jails“ erklären sich eigentlich von selbst:

  • enabled – true / false Aktive / Inaktive Regel
  • filter – Name des Filters aus der /etc/fail2ban/filter.d
  • port – Angabe des Ports auf dem gelauscht werden soll
  • logpath – Pfad zur Logdatei
  • maxretry – Wie oft darf man den Zugriff versuchen bevor man gesperrt wird
  • findtime – Zeitraum in Sekunden der berücksichtigt wird
  • bantime – Zeitraum in Sekunden wie lange eine IP geblockt wird. Ein negativer Wert gilt hier für permanent

Um eigene Jails zu erstellen legen wir eine Kopie der jail.conf an und nennen sie jail.local

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

So. Jetzt mal ein Beispiel

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

Damit ist unser sshd geschützt. Die Log Information leiten wir nach auth.log um, können aber auch in jeder anderen Datei gespeichert werden.

Um die Regel zu starten müssen wir unseren Fail2Ban Dienst starten bzw. bei neuen Regeln erneut laden

service fail2ban start
service fail2ban reload
service fail2ban stop

Die Ausgabe und ob euer Dienst auch seine Arbeit verrichtet bekommt ihr mit folgendem Befehl angezeigt

 tail -100f /var/log/fail2ban.log

Dass sollte es gewesen sein. Das Programm bietet natürlich noch weitaus komplexere Konfigurationsmöglichkeiten, auf die ich an dieser Stelle aber noch nicht eingehe.