Wer einen (Home-)Server betreibt kennt die Quälgeister zur Genüge, die immer wieder mal versuchen sich per Bruteforce Attacke auf dem System einzuloggen. Beliebte Angriffsziele sind v.a. SSH oder FTP-Server.

Auffinden lassen sich die Log-Einträge über (fehlgeschlagene) Verbindungdungsversuche in der Datei /var/log/auth.log.

Hier werde ich dann von Zeit zu Zeit wieder mal fündig:

Apr  8 09:39:26 Devoras sshd[12091]: pam_unix(sshd:auth): check pass; user unknown
Apr  8 09:39:26 Devoras sshd[12091]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=61.145.xx.xxx
Apr  8 09:39:28 Devoras sshd[12091]: Failed password for invalid user aandrews from 61.145.xx.xxx port 37024 ssh2

Die IP-Adresse habe ich verkürzt, wobei die meisten sowieso wissen woher die meisten Angriffe dieser Art kommen – bei mir stammen sie so gut wie ausschließlich aus China (dies kann man auf die Schnelle mit Utrace prüfen).

Um diesen nervigen Gesellen einen Riegel vorzuschieben, habe ich mich etwas im Internet informiert und bin auf das Tool Fail2Ban gestoßen, das es ermöglicht IP-Adresse nach einer bestimmten Anzahl von Fehllogins für eine definierte Zeit zu sperren (Quelle: fail2ban.org):

Fail2Ban durchsucht Logdateien wie /var/log/pwdfail oder /var/log/apache/error_log und blockt IP-Adressen, die zu viele fehlgeschlagene Loginversuche haben. Es aktualisiert Firewallregeln, um diese IP-Adressen zu sperren. Fail2Ban kann mehrere Logfiles lesen – beispielsweise die von sshd oder apache. Die IP-Adressen werden nach einer vorher festgelegten Zeitspanne wieder aktiviert.

Fail2Ban installieren und einrichten

Fail2Ban ist bei den meisten Distributionen in den Repositories enthalten, so auch unter Ubuntu:

 sudo apt-get install fail2ban

Damit bei einem Update von fail2ban die Konfigurationsdatei nicht ungewollt überschrieben wird, kopieren wir diese vor dem Editieren.

Hinweis in der Datei /etc/fail2ban/jail.conf:

# To avoid merges during upgrades DO NOT MODIFY THIS FILE
# and rather provide your changes in /etc/fail2ban/jail.local

Wie im obigen Hinweis beschrieben kopieren wir die Datei entsprechend:

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Danach öffnen wir die Datei jail.local zum Editieren:

sudo nano /etc/fail2ban/jail.local

 

Wir passen nun nachfolgende Zeilen entprechend an:

[DEFAULT]

ignoreip = 127.0.0.1/8 192.168.2.105
bantime  = 600
maxretry = 3

IPs, die nie blockiert werden sollen, stehen hinter „ingnoreip=„. Es ist sehr ratsam seine interne IP-Adresse dort anzugeben, wenn sich der (Home-)Server im eigenen lokalen Netzwerk befindet. So verhindert man, dass man sich selbst aussperrt.

Danach editieren wir die Sektion  für die Überwachung von SSH:

[ssh]

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

Wichtig ist v.a. die Richtigkeit des Pfades zur Logfile „auth.log“ von ssh. „maxretry“ besagt, wie oft ein Client einen falschen Verbindungsversuch ausführen darf, bis er geblockt wird.

Benachrichtigung durch Fail2Ban bei Block/Unblock/Start/Stop

Wir wollen natürlich auch informaiert werden, wenn ein neues Ereignis Fail2Ban in Aktion treten hat lassen. Dies geschieht mit einer kleinen Anpassung in der Sektion der „Actions„.

action = %(action_mwl)s

Standardmäßg versendet Fail2Ban keine Mails, deshalb müssen wir in obiger Zeile beim Wort „action_“ in der Klammer noch die Buchstaben mwl anfügen.

Für den richtigen Versand müssen wir aber noch die Mail-Adresse angeben, an die wir den Bericht gesendet haben wollen:

destemail = you@domain.tld

Abschließend starten wir Fail2Ban neu:

sudo /etc/init.d/fail2ban restart

Nun sollte Fail2Ban Angriffe blocken und euch eine Mail mit Infos über den Angriff bzw. den Block liefern.

Der Status von Fail2Ban lässt sich auch auf der Konsole mit nachfolgendem Befehl auslesen:

sudo fail2ban-client status ssh

 

Autor

Hi! Ich bin Andreas und betreibe diese Seite, auf der ich über Themen rund um IT-Technik, Reisen und Fotografie schreibe. Dir gefallen meine Artikel und du möchtest mir einen virtuellen Kaffee ausgeben? Gerne! PayPal.me/imraz0r

Einen Kommentar schreiben

Pin It