Zuerst installieren wir Fail2ban.
Das Paketverwaltungssystem von Linux (apt
) schauen wir uns im Kapitel Linux Server updaten genauer an, daher führen wir die Installation an dieser Stelle ohne weitere Erklärung aus.
Fail2ban mit apt
installieren:
__$ sudo apt install fail2ban -y
Wir legen zunächst eine jail.local
Datei mit touch
an:
__$ sudo touch /etc/fail2ban/jail.local
An dieser jail.local
Datei können wir unsere Modifikationen vornehmen. Diese bleibt uns bei Updates erhalten und wird nicht wie die jail.conf
überschrieben.
Öffnen wir sie zum Bearbeiten mit nano
:
__$ sudo nano /etc/fail2ban/jail.local
In die Datei schreiben wir folgende Konfiguration:
/etc/fail2ban/jail.local
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
ignoreip = 127.0.0.1/8
bantime = 3600
findtime = 600
maxretry = 6
Bei den Parametern gibt es eigentlich nicht viel Spielraum, bis auf maxretry
, das sind die Anzahl der Fehlversuche innerhalb eines Zeitfensters. In diesem Fall sind 6
Anmeldeversuche erlaubt, bevor die IP temporär verbannt wird.
Kurze Erklärung zu den wichtigsten Parametern:
ignoreip = 127.0.0.1/8
: das setzt eine Ausnahme für interne Dienstebantime = 3600
: Sekunden, die eine IP geblockt wird (3600 = 60 Minuten)findtime = 600
: Zeitfenster für Fehlversuchemaxretry = 6
: Anzahl der Fehlversuche, bis eine IP geblockt wird
Starten wir Fail2ban neu, damit die Änderungen wirksam werden:
__$ sudo systemctl restart fail2ban
Und überprüfen auch den Status:
__$ sudo systemctl status fail2ban
Es sollte eine active (running)
Rückmeldung kommen.
Testen ist gänzlich einfach. Einfach die eingestellten Fehlversuche (maxretry
) ausreizen. Aber beachte: Wenn Du gesperrt bist brauchst Du entweder eine neue IP vom Provider (wenn möglich) oder Du setzt vorher die Sekunden der bantime
herunter (bei Änderung fail2ban.service neustarten).
IP Adressen in Fail2ban wieder freischalten
Freigabe einer IP in Fail2ban (mehrere IPs mit Leerzeichen trennen):
__$ sudo fail2ban-client unban 116.203.69.89 123.456.789.013
Fail2ban IP Tabelle leeren:
__$ sudo fail2ban-client unban --all