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.
Webagentur
22 Aug. 2008Nettes kleines Tutorial, aber mich würde mal gerne interessieren wie man auf diese Weise Plesk absichern kann.
sebastian
22 Aug. 2008Hallo,
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
Pingback: Howto – Ubuntu server | Mattijs Jager
philip
6 Apr. 2015Bekomme folgenden Fehler:
ERROR NOK: („Unable to compile regular expression ‚(?:(?:Invalid login|Non-existent login) as(?: [iI](?:llegal|nvalid) user)'“,)
Was kann ich tun?
Pete
2 Jul. 2020Version 1.690 (20th May 2014): Added the Fail2Ban module, for blocking the IP addresses of systems that have many failed logins.