SSH absichern mit fail2ban

Wer von euch meinen letzten Artikel zum Thema SSH absichern mit Denyhosts gelesen hat wird möglicherweise bei der Installation Schwierigkeiten gehabt haben. Bei einigen neuen Distributionen wurde Denyhosts durch fail2ban ersetzt. Ich zeige euch wie man fail2ban installiert und konfiguriert und warum es die bessere Alternative ist.

SSH absichern mit fail2ban

SSH absichern mit fail2ban

Bei der Absicherung eines neuen Debian 8 Servers bin ich auf dieses Thema gekommen. Üblicherweise verwende ich immer Denyhosts, doch das steht bei Jessie nicht mehr in den Standardpaketen. Das Entwicklerteam nennt folgende Gründe:

  • nicht gelöste Sicherheitsprobleme
  • keine neue Version (zuletzt 2008 upgedated)
  • fail2ban ist eine Alternative mit erweiterter Funktionalität

Somit wird empfohlen fail2ban zu verwenden, obwohl man natürlich manuell Denyhosts immer noch nachinstallieren könnte.

Wie funktioniert fail2ban?

Das Programm durchsucht laufend die Log Dateien nach fehlgeschlagenen Logins. Sind bei einer IP Adresse auffallend viele falsche Login Versuche dabei, dann wird diese Adresse mittels IP Tables für eine bestimmte Zeit gesperrt. Zugriff von dieser IP Adresse ist dann nicht mehr möglich. Der Unterschied zu Denyhosts liegt darin, dass die Sperre nicht über die hosts.deny Datei funktioniert sondern über Firewallregeln.

Installation

Bei Debian war die Installation sehr einfach, das Programm ist über den Paketmanager zu finden:

Konfiguration

Nachdem die Installation recht einfach war müssen wir uns nun Gedanken zur Konfiguration der Software machen. fail2ban bietet dazu eine eigene Konfigurationsdatei an. Es wird empfohlen diese nicht direkt zu bearbeiten, sondern eine Kopie mit der Dateiendung .local zu erstellen. Somit bleiben die Standardeinstellungen vorhanden – sollte man einen Fehler machen und diese zurücksetzen müssen.

Wir kopieren also die Konfigurationsdatei:

Im folgenden bearbeiten wir nur noch die jail.local Datei. Am besten mit dem Texteditor nach Wahl:

Wie (fast) immer bei Linux ist auch diese Datei sehr gut dokumentiert. Man kann das Programm recht umfangreich einstellen, wir beschränken uns aber auf einige wenige Parameter.

  • ignoreip
    wir können hier IP Adressen und Netzbereiche angeben die vom Programm nicht beachtet werden.  Es macht Sinn die eigene IP Adresse (sofern statisch) dort einzutragen.
  • bantime
    die Zeit in Sekunden die eine IP Adresse gesperrt wird. Standard ist 600 Sekunden – ich setze das gerne auf 86400, also einen ganzen Tag.
  • findtime und maxretry
    die beiden Werte spielen zusammen. Gesperrt wird eine IP Adresse, wenn von ihr aus innerhalb von findtime Sekunden maxretry Login Versuche fehlschlagen. Standardmäßig bedeutet das, dass in 10 Minuten 3 falsche Logins zugelassen werden. Es macht Sinn den Zeitwert etwas zu erhöhen.  Ich stelle diesen gerne auf eine Stunde, also auf 3600 Sekunden.
  • destemail
    fail2ban sendet Informationen per Mail aus. Wenn man diese auf die eigene Adresse haben möchte, dann kann man diese dort eintragen.
  • action
    man kann bei der action einstellen was bei einer Sperrung passieren soll. Standardmäßig wird nur gesperrt. Man kann zB mit action_mw einstellen, dass man pro gesperrter IP Adresse eine Mail mit weiteren Informationen bekommt.

Fazit

fail2ban ist eine gute Alternative zu dem bewährten Denyhosts. Ich musste dieses Programm zwangsweise installieren, da bei Debian Jessie Denyhosts nicht mehr verfügbar war. Mich hat es jedenfalls überzeugt. Die Konfiguration ist klar und einfach und das Programm bietet die selbe Funktionalität.

Was haltet ihr von fail2ban?

(Visited 331 times, 1 visits today)

Das könnte auch interessant sein...

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.