Tipp: Sie können für alle Dateinamen und Verzeichnisse die automatische Vervollständigung mithilfe der Tab-Taste nutzen, sodass Sie nicht die kompletten Datei- oder Verzeichnisnamen manuell eintippen müssen.
Diese Anleitung wurde am 03.04.2023 zuletzt überprüft und aktualisiert.
- Falls Sie es noch nicht getan haben, laden Sie das Programm "PuTTY" herunter.
- Verbinden Sie sich mithilfe von PuTTY via SSH mit Ihrem Root- oder vServer. Hierfür öffnen Sie PuTTY und geben im Textfeld "Host Name (or IP address)" die Domain oder IP-Adresse Ihres Servers ein. Klicken Sie anschließend unten auf "OK".
- Aktualisieren Sie nun Ihre Paketlisten mit dem Befehl
apt update
. - Installieren Sie jetzt möglicherweise verfügbare Updates der auf Ihrem Server bereits installieren Pakete mit dem Befehl
apt upgrade -y
. - Als nächstes installieren Sie den Nano-Editor, falls Sie diesen noch nicht haben, mit folgendem Befehl:
apt install nano -y
- Installieren Sie danach Fail2Ban sowie weitere benötigte Pakete mit folgendem Befehl:
apt install fail2ban -y
- Die Konfigurationsdateien von Fail2Ban befinden sich im Verzeichnis "/etc/fail2ban/". Die globale Konfigurationsdatei ist die Datei "jail.conf", jedoch wird diese bei Fail2Ban-Updates überschrieben. Daher muss die Konfiguration in der Datei "jail.local" vorgenommen werden. Kopieren Sie hierfür die Datei "jail.conf" mit dem Befehl
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
. - Öffnen Sie diese Konfigurationsdatei nun mit dem Befehl
nano /etc/fail2ban/jail.local
. - Fail2Ban kann nicht nur SSH-Server, sondern auch andere Dienste absichern. Im Bereich der "MISCELLANEOUS OPTIONS" ab Zeile 44 dieser Datei können Sie nun global u.a. festlegen, nach wie vielen fehlgeschlagenen Login-Versuchen eine IP-Adresse gebannt werden soll und auch wie lange der Bann dauern soll. Sie können diese Werte für die verschiedenen Dienste jedoch einzeln überschreiben - beispielsweise speziell für den SSH-Dienst im Bereich "SSH servers" ab Zeile 276.
- Die "bantime" gibt die Banndauer an, welche voreingestellt bei 10 Minuten ("10m") liegt. Empfehlenswert wäre hierbei i.d.R. eher eine Stunde, also "1h".
- Über den Parameter "findtime" können Sie die Zeitspanne definieren, innerhalb welcher die bei "maxretry" festgelegte Anzahl an fehlgeschlagenen SSH-Login-Versuchen stattfinden muss, damit eine IP-Adresse gebannt wird. Standardmäßig liegt der Wert für die "findtime" bei 10 Minuten ("10m") und der für "maxretry" bei 5. Das bedeutet also, dass eine IP-Adresse gesperrt wird, wenn von ihr ausgehend innerhalb von 10 Minuten 5 fehlgeschlagene Login-Versuche durchgeführt werden. Diese Werte können im Normalfall unverändert gelassen werden.
- Nach der Installation von Fail2Ban ist der Schutz für jegliche Dienste noch deaktiviert. Daher müssen Sie diesen für den SSH-Dienst noch aktivieren, indem Sie im Bereich "SSH servers" ab Zeile 276 dieser Konfigurationsdatei unter der Zeile für den "backend"-Parameter des SSH-Dienstes ("[sshd]") den Parameter "enabled" mit dem Wert "true" hinzufügen. Fügen Sie dafür also eine Zeile mit dem Inhalt "enabled = true" hinzu.
- Hinweis: Unter Debian ist der Fail2Ban-Schutz für den SSH-Dienst aufgrund des Inhalts der Datei "/etc/fail2ban/jail.d/defaults-debian.conf" zwar als einziger bereits aktiviert, aber es ist nicht falsch, wenn Sie den "enabled"-Parameter in Ihrer "jail.local"-Datei dennoch auf "true" setzen.
- Speichern Sie Ihre Änderungen der Konfiguration, indem Sie STRG + X, danach die "Y"-Taste und anschließend Enter drücken.
- Starten Sie Fail2Ban mithilfe des Befehls
systemctl restart fail2ban
abschließend neu, damit die Änderungen übernommen werden. Nun ist Fail2Ban einsatzbereit und Ihr SSH-Server gegen Brute-Force-Attacken geschützt. - In der Log-Datei von Fail2Ban unter "/var/log/fail2ban.log" sehen Sie, welche Aktionen von Fail2Ban durchgeführt wurden (also z.B. das Sperren einer IP-Adresse). Sie können diese Datei einfach mit dem Nano-Editor öffnen (
nano /var/log/fail2ban.log
). - Sie können mithilfe von Fail2Ban auch manuell IP-Adressen für den SSH-Server sperren oder entsperren. Verwenden Sie zum Bannen den Befehl
fail2ban-client set sshd banip 123.123.123.123
und zum Entbannen den Befehlfail2ban-client set sshd unbanip 123.123.123.123
. Anstelle von "123.123.123.123" müssen Sie natürlich die betreffende IP-Adresse angeben.