Tipp: Du kannst für alle Dateinamen und Verzeichnisse die automatische Vervollständigung mithilfe der Tab-Taste nutzen, sodass du nicht die kompletten Datei- oder Verzeichnisnamen manuell eintippen musst.

Diese Anleitung wurde am 10.08.2018 zuletzt überprüft und aktualisiert.

Bist du auf der Suche nach sehr guten, leistungsstarken und günstigen Servern?
Ich miete meine Server seit 5 Jahren bei Contabo und kann Contabo wirklich sehr empfehlen!
  1. Falls du es noch nicht getan hast, lade das Programm "PuTTY" herunter.
  2. Verbinde dich mithilfe von PuTTY via SSH mit deinem Root- oder vServer. Hierfür öffnest du PuTTY und gibst im Textfeld "Host Name (or IP address)" die Domain oder IP-Adresse deines Servers ein. Klicke anschließend unten auf "OK".
  3. Aktualisiere nun deine Paketlisten mit dem Befehl "apt-get update".
  4. Installiere jetzt möglicherweise verfügbare Updates der auf deinem Server bereits installieren Pakete mit dem Befehl "apt-get upgrade -y".
  5. Als nächstes installierst du den Nano-Editor, falls du diesen noch nicht hast, mit folgendem Befehl: "apt-get install nano -y"
  6. Installiere danach Fail2Ban sowie weitere benötigte Pakete mit folgendem Befehl: "apt-get install fail2ban -y"
  7. 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. Kopiere hierfür die Datei "jail.conf" mit dem Befehl "cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local".
  8. Öffne diese Konfigurationsdatei nun mit dem Befehl "nano /etc/fail2ban/jail.local".
  9. Fail2Ban kann nicht nur SSH-Server, sondern auch andere Dienste absichern. Im Bereich der "MISCELLANEOUS OPTIONS" ab Zeile 44 dieser Datei kannst du 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. Du kannst diese Werte für die verschiedenen Dienste jedoch einzeln überschreiben - beispielsweise speziell für den SSH-Dienst im Bereich "SSH servers" ab Zeile 221.
  10. Die "bantime" gibt die Banndauer an, welche voreingestellt bei 600 Sekunden (10 Minuten) liegt. Empfehlenswert wäre hierbei i.d.R. eher eine Stunde, also 3.600 Sekunden.
  11. Über den Parameter "findtime" kannst du 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 600 Sekunden und der für "maxretry" bei 5. Das bedeutet also, dass eine IP-Adresse gesperrt wird, wenn von ihr ausgehend innerhalb von 600 Sekunden 5 fehlgeschlagene Login-Versuche durchgeführt werden. Diese Werte können im Normalfall unverändert gelassen werden.
  12. Nach der Installation von Fail2Ban ist der Schutz für jegliche Dienste noch deaktiviert. Daher musst du diesen für den SSH-Dienst noch aktivieren, indem du im Bereich "SSH servers" ab Zeile 221 dieser Konfigurationsdatei unter der Zeile für den "backend"-Parameter des SSH-Dienstes ("[sshd]") den Parameter "enabled" mit dem Wert "true" hinzufügst. Füge dafür also eine Zeile mit dem Inhalt "enabled = true" hinzu.
  13. 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 du den "enabled"-Parameter in deiner "jail.local"-Datei dennoch auf "true" setzt.
  14. Speichere deine Änderungen der Konfiguration, indem du STRG + X, danach die "Y"-Taste und anschließend Enter drückst.
  15. Starte Fail2Ban mithilfe des Befehls "systemctl restart fail2ban" abschließend neu, damit die Änderungen übernommen werden. Nun ist Fail2Ban einsatzbereit und dein SSH-Server gegen Brute-Force-Attacken geschützt.
  16. In der Log-Datei von Fail2Ban unter "/var/log/fail2ban.log" siehst du, welche Aktionen von Fail2Ban durchgeführt wurden (also z.B. das Sperren einer IP-Adresse). Du kannst diese Datei einfach mit dem Nano-Editor öffnen ("nano /var/log/fail2ban.log").
  17. Du kannst mithilfe von Fail2Ban auch manuell IP-Adressen für den SSH-Server sperren oder entsperren. Verwende zum Bannen den Befehl "fail2ban-client set sshd banip 123.123.123.123" und zum Entbannen den Befehl "fail2ban-client set sshd unbanip 123.123.123.123". Anstelle von "123.123.123.123" musst du natürlich die betreffende IP-Adresse angeben.