Zuerst installieren wir Fail2ban.
Das Paketverwaltungssystem von Linux (apt) schauen wir uns im Kapitel Linux-Server aktualisieren 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,22123
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, nämlich bei der 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 Diensteport = ssh,22123: berücksichtigt sowohl den Standardport als auch den später im Tutorial verwendeten SSH-Portbantime = 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