Fail2ban als Intrusion Detection und Prevention System

Fail2ban ist ein in Python geschriebenes Sicherheitsprogramm für Linuxserver, um Brute Force Attacken in Anmeldelogs (SSH, FTP...) zu entdecken und bei zu vielen vergeblichen Anmeldeversuchen die angreifende IP-Adresse für eine vordefinierte Zeit zu bannen. Die Sperrzeit (bantime) kann vom Standard 10 Minuten auf mehrere Stunden hochgesetzt werden und macht damit DoS-Angriffe unwirksam. Ohne solch ein Intrusion Detection und Prevention System ist ein Server im Internet ungeschützt und wäre schnell angreifbar!

Installation von fail2ban

Zwei Videos zeigen die einzelnen Installationsschritte gut auf:
Linux Guides: https://www.youtube.com/watch?v=jLPK67lSoLo
realtm_csgo : https://www.youtube.com/watch?v=nqvbAkr-QMQ

Weg 1 per Konsolenbefehle:

In die Konsole per SSH-Client wie Putty oder Bitvise SSH-Client einlogen und folgende Befehle eingeben:

a) sudo apt update  & full-upgrade -> erzeugt ein aktuelles Betriebssystem
b) sudo apt install fail2ban -> installiert das Sicherheitsprogramm fail2ban
c) sudo systemctl start fail2ban -> startet das installierte Programm
d) sudo systemctl enable fail2ban -> richtet das Programm in den Autostart ein; kann dann per Befehl htop erkannt werden

Weg 2 durch Schnelleinrichtung als vorkonfiguriertes Dietpi-Programm:

In die Konsole per SSH-Client wie Putty oder Bitvise SSH-Client einlogen und folgende Befehle eingeben:
a) dietpi-software
-> ruft Fenster zur Dietpi-Konfiguration und Installation auf

dietpi-Startfenster

b) Browse Software auswählen und ok klicken. 
c) Programm Nr 73 im Softwareauswahlfenster (im Bereich System Security weiter unten) mit Leertaste markieren und mit confirm bestätigen.

dietpi-Programmauswahl

d) Zurückgekehrt zum Dietpi-Startfenster Install Go Start installation for selected software -> ok -> installiert und startet das Programm fail2ban

Fail2ban-Konfiguration
Alle Fail2ban-Konfigurationsdateien liegen im Verzeichnis /etc/fail2ban. Dort liegt die wichtige Konfigurationsdatei jail.conf, die man mit dem Konsolenbefehl nano /etc/fail2ban/jail.conf ansehen kann. Diese Datei sollte aber nicht editiert werden, da sie beim nächsten Update überschrieben würde und wieder in Standardkonfiguration vorläge. Man erzeugt deshalb eine Kopie dieser Datei mit dem Namen jail.local, welche alle auf eigene Bedürfnisse angepassten jails zum Bannen ungewünschter Angreifer enthält. Gib dazu folgende Konsolenbefehle ein:

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

Zum Editieren dieser neu erstellten jail.local öffnet man den Editor nano mit folgendem Befehl:

sudo nano /etc/fail2ban/jail.local

Eine Minimalkonfiguration dieser jail.local könnte so aussehen:

jail.local-Minimalkonfiguration
Für jeden Dienst, der geschützt werden soll, muss ein Jail [in eckigen Klammern] eingefügt werden; Musterkonfigurationen dazu findet man zahlreiche im Internet.
Um einen Dienst im Programm fail2ban zu aktivieren, muss unbedingt die Zeile enabled = true eingefügt werden.
Die bantime gibt die Sperrzeit in Sekunden (600 = 10 Minuten) an oder Angaben in M (Minuten) bzw. h (Stunden).
Mit maxretry (kein Plural) gibt man die Anzahl an Versuchen an, die innerhalb der bantime erlaubt sind, bevor es zur Sperre kommt.

Zur Kontrolle, ob fail2ban richtig läuft, ruft in der Konsole folgende Befehle auf:
systemctl status fail2ban  -> alles ok, wenn active running angezeigt wird
fail2ban-client status sshd
(oder ein anderes jail wie apache) -> zeigt eine Übersicht der fehlgeschlagenen Einwahlversuche, bzw. gesperrte IPs an

Fail2ban hat schon zahlreiche vorkonfigurierte Filter, die nur noch angepasst und gestartet werden müssen.
Mit folgendem Konsolenbefehl kann man sich alle Filter anzeigen lassen: ls /etc/fail2ban/filter.d   

fail2ban-filter

Einige umfangreich konfigurierte jail.conf-Beispikonfigurationen findet man an folgenden Internetadressen:

https://gist.github.com/mgeeky/fc3a8d8e9cb06f31aac20fab7872d531
https://crycode.de/fail2ban/#beispiel-einer-jail-local
https://webdock.io/en/docs/how-guides/security-guides/how-configure-fail2ban-common-services

zurück zur Startseite