Fail2ban ist ein in Python geschriebenes Open-Source-Sicherheitsframework, das Server vor Brute-Force-Angriffen schützt . Es scannt Protokolldateien und sperrt IP-Adressen, die erfolglose Anmeldeversuche durchführen. Es funktioniert, indem es die Firewall aktualisiert, um neue Verbindungen von diesen IP-Adressen für einen konfigurierbaren Zeitraum abzulehnen.
Standardmäßig verwendet Fail2ban Iptables und kann mit anderen Firewalls verwendet werden. Fail2ban-Unterstützung für IPv4 und IPv6.
Fail2ban ist standardmäßig so konfiguriert, dass SSH-Anmeldeversuche überwacht werden und kann andere Protokolldateien überwachen, z. B. für Apache, vsftpd und Postfix usw.
In diesem Tutorial werde ich Sie durch die Installation und Konfiguration von fail2ban führen auf Ubuntu 20.04.
Fail2ban auf Ubuntu installieren
Öffnen Sie zunächst Ihr Terminal und aktualisieren Sie die Paketlisten.
$ sudo apt update
Fail2Ban ist bereits in den meisten Linux-Distributionen enthalten. Um fail2ban mit dem APT-Paketmanager zu installieren, führen Sie Folgendes aus:
$ sudo apt install fail2ban
Überprüfen Sie nach der Installation, ob es ausgeführt wird, indem Sie:
$ sudo systemctl status fail2ban
Aus der Ausgabe können wir ersehen, dass der Dienst fail2ban aktiv ist und wie erwartet ausgeführt wird.
Geben Sie Folgendes ein, um zu überprüfen, ob der fail2ban-Prozess ausgeführt wird:
$ sudo ps -efww | egrep fail2ban
Ausgabe:
root 1310843 1 0 11:17 ? 00:00:02 /usr/bin/python3 /usr/bin/fail2ban-server -xf start
Toll. Lassen Sie uns einen Überblick über die mit Fail2ban verbundenen Konfigurationsdateien geben und wie Sie die Einstellungen optimieren, um IP-Adressen entweder auf die schwarze oder weiße Liste zu setzen.
Übersicht der Konfigurationsdateien
Die Konfigurationsdateien von Fail2ban befinden sich im Verzeichnis /etc/fail2ban
Verzeichnis wie gezeigt.
Die wichtigsten Konfigurationsdateien sind /etc/fail2ban/jail.conf
und /etc/fail2ban/jail.d/defaults-debian.conf
.
Was auch immer Sie tun, es ist nicht empfehlenswert, diese Dateien zu ändern, da die Wahrscheinlichkeit hoch ist, dass sie überschrieben werden, wenn das fail2ban-Paket aktualisiert wird.
Als Problemumgehung besteht die empfohlene Methode zum Konfigurieren von Fail2ban darin, eine Kopie der jail.conf
Datei nach jail.local
und definieren Sie später Ihre eigenen Einstellungen. Sie müssen nicht alle Einstellungen aus der jail.conf
Datei, nur diejenigen, die Sie überschreiben möchten.
Lassen Sie uns also zuerst jail.local
Konfigurationsdatei wie folgt.
$ sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Öffnen Sie nun die Datei mit Ihrem bevorzugten Texteditor. Hier verwende ich den vim-Editor.
$ sudo vim /etc/fail2ban/jail.local
IP-Adressen auf die weiße Liste setzen
Mit ignoreip
Direktive können Sie IP-Adressen, IP-Bereiche oder ein ganzes Subnetz von der Sperrung ausschließen. Hier fügen Sie die IP-Adressen der Remote-Computer hinzu, die Sie auf die Whitelist setzen oder in einfachen Worten den Zugriff erlauben möchten. Mehrere IPs können mit Leerzeichen oder Kommas hinzugefügt werden.
Zum Beispiel, um die IP-Adressen 192.168.2.50 auf die Whitelist zu setzen , 192.168.2.100 fügen Sie die Einträge wie folgt hinzu.
Sperreinstellungen
Die Sperrbedingungen werden durch die folgenden Parameter definiert:
- bantime
- Zeit finden
- maxretry
bantime - Dies ist der Zeitraum, in dem eine IP-Adresse gesperrt oder der Zugriff verweigert wird, damit sie nicht versucht, sich wieder mit dem Server zu verbinden. Standardmäßig ist diese auf 10 Minuten eingestellt, Sie können sie jedoch nach Belieben einstellen.
Zeit finden - Dies ist die Dauer zwischen fehlgeschlagenen Anmeldeversuchen, bevor ein Bann implementiert wird. Diese ist auf 10min eingestellt. Dies bedeutet Folgendes:Wenn Sie versuchen, sich über SSH anzumelden, und die Fehler maxtry erreichen Wert innerhalb von 10 Minuten, dann wird die IP, von der Sie sich verbinden, gesperrt.
maxretry - Dies stellt die maximale Anzahl fehlgeschlagener Verbindungsversuche dar, bevor eine IP gesperrt wird. B Standardmäßig ist dies auf 5 Sekunden eingestellt, was in Ordnung sein sollte, aber ich würde 3 Sekunden bevorzugen, um nicht mit Verbindungsversuchen bombardiert zu werden.
E-Mail-Benachrichtigungen
Fail2ban besitzt die Fähigkeit, E-Mail-Benachrichtigungen zu senden, sobald eine IP-Adresse gesperrt wurde. Zum Senden und Empfangen von E-Mails muss ein SMTP-Server installiert und konfiguriert sein. Um die E-Mail-Benachrichtigungsfunktion zu verwenden, fügen Sie die folgende Zeile hinzu
action = %(action_mw)s
Der Parameter %(action_mw)s
sperrt die verdächtige IP-Adresse und sendet eine E-Mail mit einem detaillierten Whois-Bericht an den Administrator. Um Protokollmeldungen einzuschließen, setzen Sie den Parameter auf %(action_mwl)s
.
Definieren Sie zusätzlich die sendende E-Mail-Adresse sowie den Empfänger.
Fail2ban-Gefängnisse
Fail2ban modus operandi verwendet das Konzept von Jails. Das heißt, wenn die angreifende IP-Adresse erfolglos versucht, sich anzumelden oder auf einen Dienst zuzugreifen, wird sie in ein „Gefängnis“ gesteckt und kann bis zur Sperrzeit keine Verbindung herstellen vergeht.
Ein Jail ist, vereinfacht gesagt, ein Dienst mit Filtern und Aktionen. Fail2ban sieht sich die Protokolleinträge an und sobald übereinstimmende Protokolleinträge identifiziert und die Bedingungen erfüllt sind, werden die Aktionen implementiert.
Das SSH-Gefängnis ist normalerweise standardmäßig aktiviert, um betrügerische SSH-Verbindungen von verdächtigen IP-Adressen an die Leine zu nehmen. Um ein Jail für einen anderen Dienst zu aktivieren, fügen Sie einfach enabled =true hinzu -Attribut nach der Jail-Überschrift. Wie wir bereits gesehen haben, können Sie auch Sperreinstellungen vornehmen.
Fail2ban-Client
Fail2ban bietet ein Befehlszeilentool für die Interaktion mit Fail2ban, bekannt als fail2ban-client . Sie können unzählige Aufgaben ausführen, darunter das Sperren und Entsperren von IP-Adressen.
Führen Sie den folgenden Befehl aus, um den Status von Fail2ban zu überprüfen und festzustellen, ob gesperrte IP-Adressen oder verletzte Filter vorhanden sind:
$ sudo fail2ban-client status sshd
Die folgende Ausgabe bestätigt das Vorhandensein einer gesperrten oder auf der Blacklist aufgeführten IP-Adresse nach fehlgeschlagenen SSH-Anmeldeversuchen. Die IP-Adresse befindet sich derzeit im SSH-Gefängnis.
Sie können auch die Datei fail2ban.log filtern, um alle gesperrten IP-Adressen aufzulisten:
$ sudo zgrep 'Ban' /var/log/fail2ban.log*
Ausgabe:
2021-04-29 11:17:55,081 fail2ban.actions [1310843]: NOTICE [sshd] Ban 117.221.69.37 2021-04-29 11:17:55,123 fail2ban.actions [1310843]: NOTICE [sshd] Ban 49.233.251.133 2021-04-29 11:17:55,131 fail2ban.actions [1310843]: NOTICE [sshd] Ban 106.52.93.202 2021-04-29 11:17:55,139 fail2ban.actions [1310843]: NOTICE [sshd] Ban 222.187.232.205 2021-04-29 11:17:55,147 fail2ban.actions [1310843]: NOTICE [sshd] Ban 222.187.239.107
Führen Sie den folgenden Befehl aus, um die IP-Adresse auf der schwarzen Liste zu entsperren:
$ sudo fail2ban-client set sshd unbanip 192.168.2.102
Überprüfen Sie jetzt den Status von Fail2ban erneut, und diesmal registriert sich die gesperrte IP nicht mehr.
Um eine IP-Adresse zu sperren, geben Sie ein:
$ sudo fail2ban-client set sshd banip 192.168.2.102
Führen Sie für weitere Befehlszeilenoptionen den folgenden Befehl aus:
$ fail2ban-client -h
Schlussfolgerung
Denken Sie daran, dass Fail2ban kein Ersatz für Firewalls und andere Sicherheitsmaßnahmen zum Schutz Ihres Systems ist. Es ist einfach eine zusätzliche Sicherheitsebene, die Ihrem Server eine zusätzliche Schutzebene vor Brute-Force-Angriffen bietet, insbesondere von automatisierten Bots und Skripten. Damit ist dieses Tutorial zur Installation und Konfiguration von Fail2ban unter Ubuntu 20.04 abgeschlossen.