Ein eigener Server bietet zahl­rei­che Vorzüge, erfordert aber auch ein hohes Maß an Ver­ant­wor­tung und re­gel­mä­ßi­ge Kontrolle. Damit Dritte nicht unerlaubt Zugriff auf den Server erlangen können, sollte ins­be­son­de­re der Si­cher­heits­aspekt eine wichtige Rolle spielen. Kri­mi­nel­le haben ganz un­ter­schied­li­che Be­weg­grün­de, Server zu at­ta­ckie­ren – prin­zi­pi­ell bedeutet jedoch jeder er­folg­rei­che Angriff für den Server-Betreiber ein hohes Risiko.

Was steckt hinter Fail2ban?

Das in der Pro­gram­mier­spra­che Python ge­schrie­be­ne Si­cher­heits-Framework Fail2ban (sinngemäß übersetzt: „Fehl­ver­su­che führen zu einem Bann“) ist ein Server-Modul, das man auf allen Linux- und POSIX-Systemen mit Firewall oder Pa­ket­fil­ter verwenden kann. Fail2ban ermittelt in den Logfiles des Servers die IP-Adressen, die durch un­ge­wöhn­li­ches Verhalten auffallen, indem sie bei­spiels­wei­se immer wieder versuchen, sich mit einem falschen Passwort ein­zu­log­gen. Eine gewisse Anzahl an Fehl­ver­su­chen sorgt dann au­to­ma­tisch für den Bann bzw. die Blo­ckie­rung der IP-Adresse für einen vorher fest­ge­leg­ten Zeitraum. Der Ad­mi­nis­tra­tor kann Fail2ban aber auch so kon­fi­gu­rie­ren, dass ihm eine auf­fäl­li­ge IP-Adresse zunächst per E-Mail gemeldet wird.

Stan­dard­mä­ßig enthält Fail2ban eine Reihe von Filtern, zum Beispiel für Apache, Postfix oder den Courier Mail-Server, durch die bestimmte Zei­chen­fol­gen in den Log-Dateien erkannt werden können. Über die Filter können actions ge­trig­gert werden – das sind Befehle, die zu einem zuvor de­fi­nier­ten Zeitpunkt aus­ge­führt werden. Die Kom­bi­na­ti­on eines Filters und einer action – bei­spiels­wei­se die von Fail2ban aus­ge­lös­te IP-Blo­ckie­rung – nennt man Jail (dt. Gefängnis). Solche Jails können mit Fail2ban für jede Software pro­gram­miert werden, die Log­da­tei­en erstellt. Da es sich bei Fail2ban um ein Open-Source-Framework mit GPL2-Lizenz handelt, fallen für die Ver­wen­dung und Er­wei­te­rung keinerlei Kosten an.

Fail2ban: In­stal­la­ti­on und Kon­fi­gu­ra­ti­on

  1. Starten Sie zunächst die In­stal­la­ti­on von Fail2ban mit folgendem Befehl:

    sudo apt-get install fail2ban

  2. Nachdem die In­stal­la­ti­on ab­ge­schlos­sen wurde, finden Sie das Framework im Ver­zeich­nis /etc/fail2ban. Die Kon­fi­gu­ra­ti­ons-Datei jail.conf sollte vor­sichts­hal­ber lokal als jail.local kopiert werden, um die eigenen Ein­stel­lun­gen vor updates zu sichern. Das gelingt mit diesen beiden Befehlen:

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

  3. Starten Sie Fail2ban mit folgendem Kommando:

    sudo service fail2ban start

  4. In der Kon­fi­gu­ra­ti­ons-Datei können nun die bereits for­mu­lier­ten Regeln bzw. Jails aktiviert oder de­ak­ti­viert und ihre Parameter angepasst werden. Auch das Hin­zu­fü­gen eigener Jails ist möglich. Folgende Parameter der Jails lassen sich kon­fi­gu­rie­ren:

    enablend: aktiviert (true) oder de­ak­ti­viert (false) die Regel
    filter: Name des Filters aus der Datei /etc/fail2ban/filter.d
    port: Angabe des Ports (z.B. SSH, HTTP, HTTPS)
    logpath: Pfad zur Logdatei, die aus­ge­le­sen werden soll
    maxretry: Anzahl maximaler Fehl­ver­su­che
    findtime: Zeitraum, in dem pro­ble­ma­ti­sche IPs gesucht werden, in Sekunden
    bandtime: Zeitraum, für den eine IP blockiert ist, in Sekunden (-1: dauerhaft)

  5. Haben Sie Än­de­run­gen an den Pa­ra­me­tern vor­ge­nom­men, laden Sie Fail2ban im Anschluss neu:

    sudo service fail2ban reload

  6. Die Er­geb­nis­se seiner Aus­wer­tung speichert Fail2ban in einer separaten Logdatei, die Sie fol­gen­der­ma­ßen aufrufen:

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

  7. Um das Si­cher­heits-Framework zu schließen, geben Sie Folgendes ein:

    sudo service fail2ban stop

Auch wirksam gegen Bots und Skripte

Da Fail2ban überall dort ein­ge­setzt werden kann, wo Logfiles mithilfe von Filtern aus­ge­le­sen werden, ergeben sich zahl­rei­che Ver­wen­dungs­mög­lich­kei­ten für das Vor­beu­gungs-Framework. Ein beliebtes Beispiel betrifft das WordPress-Plugin Antispam Bee, das Kom­men­ta­re unter WordPress-Blogs als Spam iden­ti­fi­zie­ren kann. Ist bei diesem Plugin die Option „Erkannten Spam kenn­zeich­nen, nicht löschen“ aktiviert, werden Spam-Posts mit dem Feh­ler­code 403 versehen. IP-Adresse, Post und Feh­ler­se­quenz er­schei­nen an­schlie­ßend auch in der WordPress-Logdatei (access.log). Mithilfe eines Jails, das die Einträge des Logs nach dem Feh­ler­code abscannt, können Sie Spam somit bereits auf der Server-Ebene abfangen. Fail2ban schützt WordPress aber nicht nur vor Spam, sondern auch vor un­au­to­ri­sier­ten An­mel­dun­gen. Per Er­wei­te­rung kann bei feh­ler­haf­tem Login ebenfalls der Sta­tus­code 403 als Antwort aus­ge­ge­ben werden. Das schreckt einige Bots und Skripte sogar direkt ab, sodass deren Ak­ti­vi­tä­ten abrupt enden. Die Er­wei­te­rung erlaubt mit pro­gram­mier­ter Fail2ban-Regel zu­sätz­lich aber auch das bewährte Blo­ckie­rungs­ver­fah­ren.

Fail2ban: flexibel ein­setz­ba­res Si­cher­heits-Framework

Im Kampf gegen Bots, Skripte und andere Hacker-Attacken stellt Fail2ban dem Server-Betreiber einen flexiblen und ef­fek­ti­ven Schutz zur Verfügung. Das Framework macht es möglich, Logfiles auf ver­däch­ti­ge Muster zu über­prü­fen und die ent­spre­chen­den IP-Adressen vor­über­ge­hend oder dauerhaft zu sperren. Welche Dienste Fail2ban überprüft, liegt ebenso in der Hand des Nutzers wie die genauen Parameter, die bei der Durch­su­chung angewandt werden sollen. Auf Wunsch können IP-Adressen von der Suche aus­ge­schlos­sen und blo­ckier­te IPs wieder entsperrt werden.

Richtig kon­fi­gu­riert trägt Fail2ban als Ergänzung in hohem Maß zur Server-Si­cher­heit bei, ersetzt jedoch nicht alt­be­währ­te Schutz­maß­nah­men wie Si­cher­heits­soft­ware, eine gut geplante Backup-Struktur oder Passwort- und Ver­schlüs­se­lungs­schutz. Nur im ge­mein­sa­men Verbund ergeben die einzelnen Kom­po­nen­ten einen um­fas­sen­den Schutz, der auch häu­fi­ge­ren und stärkeren Attacken trotzt.

Zum Hauptmenü