Webmin und SSH mit Fail2ban unter Debian absichern

Fail2ban kann IP Adressen aufgrund einer bestimmten Anzahl fehlgeschlagener Loginversuche, für eine Einstellbare Zeit blockieren. D.h. es werden per „IPTables“ alle Pakete von dieser Adresse verworfen. Auf diese Weise kann man sich vor Bruce-Force-Angriffen schützen, da nach einer festgelegten Anzahl von Loginversuchen, kein Zugriff mehr auf den Server möglich ist.

Installation:

aptitude install fail2ban

Die fehlgeschlagenen Loginversuche werden von Fail2ban durch Filterregeln ermittelt. Für ssh existiert bereits eine Filterregel, für webmin muss man selbst eine anlegen. Dazu kopiert man zuerst die Filterregel für ssh

cp /etc/fail2ban/filter.d/sshd.conf /etc/fail2ban/filter.d/webmin.conf
vim /etc/fail2ban/filter.d/webmin.conf

und tauscht anschließend die Zeile mit der „failregex“ durch diese aus

failregex = (?:(?:Invalid login|Non-existent login) as(?: [iI](?:llegal|nvalid) user)
?|[Ii](?:llegal|nvalid) user|ROOT LOGIN REFUSED) .*(?: from|FROM) <HOST>

Nun kann man die fail2ban Konfiguration anpassen:

touch /etc/fail2ban/jail.local
vim /etc/fail2ban/jail.local

und dort folgenden Inhalt einfügen:

[ssh]
enabled = true
port    = 22
filter  = sshd
logpath  = /var/log/auth.log
maxretry = 3

[webmin]
enabled = true
port    = 10000
filter  = webmin
logpath  = /var/log/auth.log
maxretry = 3

Anschließend muss Fail2ban neu geladen werden, damit die Konfiguration übenommen wird.

fail2ban-client reload

Fail2ban legt für jeden Service eine eigene Chain in den INPUT IPTables an. In diesem Fall also „Run chain fail2ban-webmin“ und „Run chain fail2ban-ssh„. In diesen Chains werdem alle IP Adressen vermerkt, welche die maximale Anzahl von Loginversuchen überschritten haben, und damit ausgesperrt sind. Wenn die „bantime“ vorüber ist, werden die Einträge wieder entfernt. Man sperrt sich also selbst nicht für immer aus, wenn man mal selbst zuoft ein falsches Passwort eingegeben hat.

Natürlich kann man auf diese Weise noch weitere Dienste wie Apache usw. entsprechend absichern. Fail2ban liefert dafür bereits einige entsprechende Filter mit.

This Post Has 5 Comments

  1. Nettes kleines Tutorial, aber mich würde mal gerne interessieren wie man auf diese Weise Plesk absichern kann.

  2. Hallo,

    leider habe ich mit Plesk noch nicht soviel gemacht. Ich habe es lediglich einmal kurz zu testen laufen. Wichtig ist eigentlich nur das bei einer fehlgeschlagenen Anmeldung in irgendeiner Log-Datei ein entsprechender Eintrag gemacht wird. Normalerweise ist dies unter Linux „auth.log“. Wenn dies der Fall ist, sollte es kein Problem sein. Also einfach mal kontrollieren, ob dort Einträge erzeugt werden.

    Gruß

    Sebastian

  3. Bekomme folgenden Fehler:

    ERROR NOK: („Unable to compile regular expression ‚(?:(?:Invalid login|Non-existent login) as(?: [iI](?:llegal|nvalid) user)'“,)

    Was kann ich tun?

    1. Version 1.690 (20th May 2014): Added the Fail2Ban module, for blocking the IP addresses of systems that have many failed logins.

Schreibe einen Kommentar

eMail-Benachrichtigung bei weiteren Kommentaren.
Auch möglich: Abo ohne Kommentar.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.