Bei einigen neuen Distributionen wurde das IDS DenyHosts durch fail2ban ersetzt, DenyHosts befindet sich also nicht mehr in den Standardpaketen. fail2ban arbeitet mit IP Tables.
Das Entwicklerteam von Debian nennt folgende Gründe:
- nicht gelöste Sicherheitsprobleme
- keine neue Version (zuletzt 2008 upgedated)
- fail2ban ist eine Alternative mit erweiterter Funktionalität
Daher wird empfohlen fail2ban zu verwenden, obwohl man natürlich manuell Denyhosts immer noch nachinstallieren könnte.
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 ist die Installation sehr einfach, das Programm ist über den Paketmanager zu finden:
Konfiguration
Nachdem die Installation recht einfach war, sollte man sich 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, damit die Standardeinstellungen erhalten bleiben - im Falle eines Fehlers können diese so leicht zurückgesetzt werden.
Wir kopieren also die Konfigurationsdatei:
Im folgenden wird die jail.local Datei z.B. auf der Shell mit dem Editor Nano bearbeitet:
Diese Datei ist sehr gut dokumentiert (in englischer Sprache) und man kann das Programm recht umfangreich einstellen. Die wichtigsten Parameter:
- ignoreip
hier werden IP Adressen und Netzbereiche angeben, die vom Programm nicht beachtet werden sollen. 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 – empfehlenswert ist ein Wert von 86400, also ein ganzer 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, z.B. auf 3600 Sekunden. - destemail
fail2ban sendet Informationen per Mail. 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 z.B. mit action_mw einstellen, dass man pro gesperrter IP Adresse eine Mail mit weiteren Informationen bekommt.