fail2ban – ein kleines howto

Was ist fail2ban?

fail2ban ist ein kleines Tool, welches unter Linux Logs durchsucht und bei bestimmten Inhalten entsprechende Aktionen ausführen kann. Es kann z.B.  Spambots und Vulnerability Scanner dynamisch erkennen und aussperren. Das bringt einige Vorteile mit sich:

  • Logs können daran gehindert werden, durch Attacken Speicherplatz zu fressen bis keiner mehr da ist (denn dann wird es erst richtig lustig)
  • ScriptKidis können sich schön herrlich die Milchzähne an dem Server ausbeißen
  • Bots, die nach bekannten Sicherheitslücken suchen können mittels fail2ban leicht gesperrt werden.
  • Brutefoce-Attacken können leicht und automatisch geblockt werden.

Was ist fail2ban nicht?

Es ist kein Sicherheitstool! fail2ban ist ein kleines Teil im Puzzle und kann gewisse Grauzonen abdecken und die Sicherheit des Servers verbessern.

Wie richte ich fail2ban ein?

Grundkenntnisse setze ich bei diesem Artikel voraus. Schwer ist die Installation aber auch nicht. Der folgende Teil beschreibt die Installation unter Debian Lenny und ähnlichen Derivaten (Ubuntu,…)

Installation:

Das Paket fail2ban ist über die Repositories verfügbar und kann über die APT nachinstalliert werden.

apt-get install fail2ban

Konfiguration:

linux:~# cd /etc/fail2ban/
linux:/etc/fail2ban# ls
action.d fail2ban.conf filter.d jail.conf
linux:/etc/fail2ban#

Unter /etc/fail2ban/ liegen die Konfigurationsdateien für fail2ban.
In fail2ban.conf müssen in der Regel keine Anpassungen getroffen werden. Wenn Fehler auftreten kann das Loglevel dort auf 4 (Debuging) gesetzt werden.
In der jail.conf werden spezifische Einstellungen, wie z.B. die bantime oder ähnliches geändert.
Bei ignoreip sollte immer die 127.0.0.1 aufgeführt sein um zu verhindern, das sich der Server selbst sperrt.
bantime – Die Zeit, die eine IP Adresse gesperrt wird.  Sie sollte nicht zu niedrig, aber auch nicht zu hoch gewählt sein. 5 Minuten (300 Sekunden) sollten reichen. Spambots und dergleichen Gesindel bekommen keine Antwort mehr und beenden ihre Aktion. Sollte man sich aber mal selber aussperren, weil man gerade etwas testet und vergisst das fail2ban im Hintergrund läuft, hat man genügend Zeit, sich einen Kaffee zu holen und kann dann weiter arbeiten.
backend sollte auf polling stehen da es unter Debian sonst zu Problemen kommen kann.
destemail ermöglicht die Angabe einer Emailadresse, zu der Aktionen von fail2ban gesendet werden können.
mta (mail transfer agend) gibt an, welches Programm verwendet werden soll, um Emails zu versenden. Der Standard ist sendmail. Nfatürlich kann auch postfix angegeben werden.
action definiert, welche Aktion ausgeführt werden soll, wenn fail2ban anschlägt. Standard ist %(action_)s. Um zu sehen, wie fail2ban arbeitet kann man action auch auf %(action_mwl)s setzen (Sendet einen ausführlichen Emailreport).
Nach diesen Optionen folgen die eigentlichen „Jails“ oder auch Gefängnisse. Sie beginnen mit eckigen Klammern und enthalten jeweils eigene Optionen.
Hier ein Beispiel anhand ssh:

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

Eigentlich selbsterklärend.
port definiert, an welchem Port der Dienst läuft. Entsprechender wird dann auch dieser Port für die IP Adresse gesperrt. Mit all werden für die entsprechende IP-Adresse alle Ports gesperrt.
filter definiert, welcher Filter verwendet werden soll. Zu finden sind die Filter in dem Unterordner filter.d und besitzen die Endung (<filter>.conf).
logpath gibt an, welche Logdatei überwacht werden soll.
maxretry definiert, wie oft ein Fehler auftreten darf, bevor die IP Adresse gesperrt wird. Je nach Filter und möglicher Attacken ist hier abzuwägen, wie oft ein Fehler vorkommen darf.

Wie steuere ich fail2ban?

Über das Script /etc/init.d/fail2ban kann es gestartet, gestoppt und neu geladen werden.

linux:~#/etc/init.d/fail2ban
Usage: /etc/init.d/fail2ban {start|force-start|stop|restart|force-reload|status}

Resume

Welche Filter man aktiviert und wie man fail2ban Konfiguriert ist natürlich jedem selbst überlassen. Es gibt auch keine Anleitung, die alles Schritt für Schitt zeigt (zumindest nicht von mir). Meiner Meinung nach, ist es wichtig, das Funktionsprinzip solcher Programme zu verstehen.

Links:

Ein Gedanke zu „fail2ban – ein kleines howto

Schreibe einen Kommentar

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