Installieren und konfigurieren Sie Fail2ban unter Ubuntu 20.04

Fail2ban ist ein in Python geschriebenes Open-Source-Sicherheitsframework, das Server vor Brute-Force-Attacken. 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 für die Überwachung konfiguriert SSH-Anmeldeversuche 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 führen fail2ban an 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

FAil2ban installieren

Überprüfen Sie nach der Installation, ob es ausgeführt wird, indem Sie:

$ sudo Systemctl-Status fail2ban

Aus der Ausgabe können wir sehen, dass der fail2ban-Dienst aktiv ist und wie erwartet ausgeführt wird.

Fail2ban-Status prüfen

Um zu überprüfen, ob der fail2ban-Prozess ausgeführt wird, geben Sie Folgendes ein:

$ 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 Konfigurationsdateien erhalten, die mit Fail2ban verbunden sind, und wie Sie die Einstellungen entweder auf die Blacklist oder die Whitelist von IP-Adressen anpassen.

Übersicht der Konfigurationsdateien

Die Konfigurationsdateien von Fail2ban befinden sich im /etc/fail2ban Verzeichnis wie abgebildet.

Fail2ban-KonfigurationsdateienFail2ban-Konfigurationsdateien

Die wichtigsten Konfigurationsdateien sind /etc/fail2ban/jail.conf und /etc/fail2ban/jail.d/defaults-debian.conf.

Was auch immer Sie tun, es wird nicht empfohlen, diese Dateien zu ändern, da die Wahrscheinlichkeit hoch ist, dass sie beim Aktualisieren des fail2ban-Pakets überschrieben werden.

Als Workaround wird empfohlen, Fail2ban zu konfigurieren, indem Sie eine Kopie der jail.conf Datei zu jail.local und definieren Sie später Ihre eigenen Einstellungen. Sie müssen nicht alle Einstellungen aus dem jail.conf Datei, nur diejenigen, die Sie überschreiben möchten.

Lassen Sie uns also zuerst die erstellen 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 Whitelist setzen

Verwendung der ignoreip -Direktive können Sie die IP-Adressen, den IP-Bereich oder ein ganzes Subnetz vom Sperren ausschließen. Hier fügen Sie die IP-Adressen der Remote-Computer hinzu, die Sie auf die Whitelist setzen oder den Zugriff in einfachen Worten zulassen möchten. Mehrere IPs können mit Leerzeichen oder Kommas hinzugefügt werden.

Für example, um die IP-Adressen auf die Whitelist zu setzen 192.168.2.50 , 192.168.2.100 fügen Sie die Einträge wie folgt hinzu.

Sperreinstellungen

Sperreinstellungen

Die Sperrbedingungen werden durch die folgenden Parameter definiert:

  1. bantime
  2. finde Zeit
  3. maxretry

bantime – Dies ist der Zeitraum, in dem eine IP-Adresse gesperrt oder der Zugriff verweigert wird, wenn versucht wird, sich wieder mit dem Server zu verbinden. Standardmäßig ist dies auf 10 Minuten eingestellt, aber Sie können es nach Ihren Wünschen einstellen.

finde Zeit – Dies ist die Dauer zwischen fehlgeschlagenen Anmeldeversuchen, bevor eine Sperre eingeführt wird. Dies ist auf 10 Minuten eingestellt. Dies bedeutet, dass, wenn Sie eine SSH-Anmeldung versuchen und die Fehler die maxtry Wert innerhalb eines Zeitraums von 10 Minuten, dann wird die IP, von der aus Sie sich verbinden, gesperrt.

maxretry – Dies stellt die maximale Anzahl fehlgeschlagener Verbindungsversuche dar, bevor eine IP gesperrt wird. Standardmäßig ist dies auf 5 Sekunden eingestellt, was in Ordnung sein sollte, aber ich würde 3 Sekunden vorziehen, um die Bombardierung mit Verbindungsversuchen zu minimieren.

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

Aktion = %(action_mw)s

Der Parameter %(action_mw)s sperrt die verdächtige IP-Adresse und sendet eine E-Mail an die admin mit ausführlichem Whois-Bericht. Um Protokollnachrichten 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

Der Fail2ban-Modus Operandi verwendet das Konzept der Gefängnisse. 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 keine Verbindung herstellen, bis die bantime vergeht.

Ein Jail ist vereinfacht gesagt ein Dienst mit Filtern und Aktionen. Fail2ban prüft die Log-Einträge und sobald übereinstimmende Log-Einträge identifiziert und Bedingungen erfüllt sind, werden die Aktionen ausgeführt.

SSH-Jail ist normalerweise standardmäßig aktiviert, um betrügerische SSH-Verbindungen von verdächtigen IP-Adressen an die Leine zu nehmen. Um eine Jail für einen anderen Dienst zu aktivieren, fügen Sie einfach das aktiviert = wahr -Attribut nach der Gefängnisüberschrift. Sie können auch Sperreinstellungen vornehmen, wie wir bereits gesehen haben.

Fail2ban-Client

Fail2ban bietet ein Befehlszeilentool für die Interaktion mit Fail2ban, bekannt als fail2ban-client. Sie können eine Vielzahl von 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 IPs oder verletzte Filter vorliegen:

$ sudo fail2ban-Client-Status sshd

Die folgende Ausgabe bestätigt das Vorhandensein einer gesperrten oder auf die schwarze Liste gesetzten IP-Adresse nach fehlgeschlagenen SSH-Anmeldeversuchen. Die IP-Adresse befindet sich derzeit im SSH-Jail.

Status der Sperre prüfenStatus der Sperre prüfen

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]: NOTIZ [sshd] Ban 117.221.69.37 2021-04-29 11:17:55,123 fail2ban.actions [1310843]: NOTIZ [sshd] Sperren 49.233.251.133 2021-04-29 11:17:55,131 fail2ban.actions [1310843]: NOTIZ [sshd] Ban 106.52.93.202 2021-04-29 11:17:55,139 fail2ban.actions [1310843]: NOTIZ [sshd] Ban 222.187.232.205 2021-04-29 11:17:55,147 fail2ban.actions [1310843]: NOTIZ [sshd] Verbot 222.187.239.107

Um die Sperrung der auf der schwarzen Liste stehenden IP-Adresse aufzuheben, führen Sie den folgenden Befehl aus:

$ sudo fail2ban-client set sshd unbanip 192.168.2.102

Überprüfen Sie nun erneut den Status von Fail2ban, und diesmal wird die gesperrte IP nicht mehr registriert.

Fail2ban unban IPFail2ban unban IP

Geben Sie Folgendes ein, um eine IP-Adresse zu sperren:

$ sudo fail2ban-client set sshd banip 192.168.2.102

Für weitere Befehlszeilenoptionen führen Sie den Befehl aus:

$ fail2ban-client -h

Fail2ban-BefehlsoptionenFail2ban-Befehlsoptionen

Fazit

Denken Sie daran, dass Fail2ban kein Ersatz für Firewalls und andere Sicherheitsmaßnahmen ist, die zum Schutz Ihres Systems verwendet werden. Es ist einfach eine zusätzliche Sicherheitsebene, die Ihrem Server einen zusätzlichen Schutz 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.