Haben Sie jemals einen Webserver erstellt, das Terminal geöffnet und die Anzahl der Anmeldeversuche bemerkt, während Sie offline waren? Angreifer verwenden eine Methode namens „Brute Force“. Brute-Forcing ist eine Methode, um Zugriff auf einen Webserver zu erhalten, indem zufällige Passwörter mithilfe eines Skripts eingegeben werden, in der Hoffnung, Zugriff zu erhalten.
Um dies zu verhindern, verwenden wir ein Tool namens Fail2Ban.
Was ist Fail2Ban?
Fail2Ban ist ein Intrusion-Prevention-Software-Framework, das Computerserver vor Brute-Force-Angriffen schützt. Es ist in der Programmiersprache Python geschrieben und kann auf POSIX-Systemen ausgeführt werden, die eine Schnittstelle zu einem lokal installierten Paketkontrollsystem oder einer Firewall haben, beispielsweise iptables oder TCP Wrapper. — Wikipedia
Fail2Ban installieren
In diesem Handbuch behandeln wir die Installation und Konfiguration von Fail2Ban auf einem Ubuntu 20.04-Webserver.
Schritt 1 – Aktualisieren Sie das System und installieren Sie Fail2Ban
Lassen Sie uns unseren Update-Befehl ausführen.
$ sudo apt update && sudo apt upgrade -y
Lassen Sie uns nun Fail2Ban installieren.
$ sudo apt install fail2ban
Nach der Installation sollte Fail2Ban automatisch starten. Lassen Sie uns für alle Fälle seinen Status mit dem folgenden Befehl überprüfen, um sicherzugehen.
$ sudo systemctl status fail2ban
Unsere Installation von Fail2Ban ist installiert und aktiv. :)
Schritt 2 – Fail2Ban konfigurieren
Bei der Installation von Fail2Ban erstellt das Skript zwei Konfigurationsdateien, /etc/fail2ban/fail.conf
und /etc/fail2ban/fail.d/defaults-debian.conf
. Alle Änderungen an diesen Dateien können bei Paketaktualisierungen überschrieben werden.
Fail2ban liest die Konfigurationsdateien in dieser Reihenfolge. Die .local
Datei überschreibt die Einstellungen der .cong
Datei.
/etc/fail2ban/jail.conf
/etc/fail2ban/jail.d/*.conf
/etc/fail2ban/jail.local
/etc/fail2ban/jail.d/*.local
Der effizienteste Weg, Fail2Ban zu konfigurieren, besteht darin, den Inhalt von jail.conf
zu kopieren zu jail.local
ändern Sie dann die lokale Datei.
Schritt 2.1 – Erstellen Sie unsere lokale Datei und konfigurieren Sie den Server
Kopieren wir nun unsere jail.conf
Datei in unsere jail.local
Datei.
$ sudo cp /etc/fail2ban/jail.{conf,local}
Nach Eingabe dieses Befehls öffnet das Terminal sofort eine neue Zeile.*
Konfigurieren Sie den Fail2Ban-Server, indem Sie jail.local
öffnen Datei mit nano oder Ihrem bevorzugten Texteditor.
$ sudo nano /etc/fail2ban/jail.local
Sie sollten sich jetzt in jail.local
befinden Datei und sehen Sie sich Kommentare an, die beschreiben, was jede Konfiguration tut.
Schritt 2.2 – IP-Adressen auf die Whitelist
IP-Adressen, Bereiche und Hosts, die Sie von der Sperrung ausschließen möchten, müssen zu ignoreip
hinzugefügt werden Richtlinie.
Kommentieren Sie die Ignoreip-Zeile aus (entfernen Sie das #-Symbol) und fügen Sie Ihre IP-Adressen durch ein Leerzeichen getrennt hinzu.
Schritt 2.3 – Sperrregeln-Einstellungen
Ein paar Zeilen unter dem Ignoreip-Kommentar finden Sie bantime
, findtime
und maxretry
.
bantime
ist die Zeitspanne, in der die IP gesperrt ist. Die Standardsperrzeit beträgt 10 Minuten. Höchstwahrscheinlich möchten Sie eine längere bantime
. Sie können einen Benutzer dauerhaft sperren, indem Sie eine negative Zahl verwenden. Wenn Sie kein Suffix verwenden (z. B. 10 statt 10d), wird die Zeit in Sekunden angegeben. Sie können diese Zeit auf eine beliebige Dauer einstellen, wir verwenden 10 Tage.
bantime = 10d
findtime
ist die Zeitspanne zwischen der Anzahl der Fehler, bevor die IP gesperrt wird. Dies unterscheidet sich von maxretry
da dies nicht basierend auf der Anzahl der Anmeldeversuche gesperrt wird, sondern auf der Anzahl der aufeinanderfolgenden.
finetime = 5m
maxretry
ist die Anzahl der fehlgeschlagenen Anmeldungen, bevor die IP gesperrt wird. Auch dies können Sie nach Ihren Wünschen einstellen.
maxretry = 5
Schritt 2.4 – E-Mail-Benachrichtigungen
Fail2Ban kann so eingerichtet werden, dass E-Mail-Benachrichtigungen gesendet werden, wenn eine IP gesperrt wurde. Auf Ihrem Webserver muss SMTP konfiguriert sein. Der erste Schritt ist, dass wir den Aktionskommentar ändern müssen.
action = %(action_MW)s
Dadurch wird die IP gesperrt und eine E-Mail-Benachrichtigung mit einem Whois-Bericht gesendet. Wenn Sie Protokolle in die E-Mail einfügen möchten, verwenden Sie %(action_MWl)s
stattdessen.
Sie müssen auch die sendenden und empfangenden E-Mail-Adressen anpassen, damit das System Sie korrekt benachrichtigen kann.
destemail = [email protected]
sender = [email protected]
Schritt 2.5 – Gefängnisse
Ein Jail in Fail2Ban ist eine Kombination aus einem Filter und einer oder mehreren Aktionen. Ein Filter definiert einen regulären Ausdruck, der einem Muster entspricht, das einem fehlgeschlagenen Anmeldeversuch oder einer anderen verdächtigen Aktivität entspricht. Aktionen definieren Befehle, die ausgeführt werden, wenn der Filter eine missbräuchliche IP-Adresse erkennt. — Plesk
Fail2Ban enthält eine Vielzahl von Jails für verschiedene Dienste. Einschließlich der Option, eigene benutzerdefinierte zu erstellen.
Bei einer Standardinstallation von Fail2Ban ist ein ssh-Jail aktiviert. Um ein Jail zu aktivieren, müssen Sie enabled = true
hinzufügen nach dem Gefängnistitel. Am Beispiel von OpenWebMail:
[openwebmail]
enabled = true
port = http,https
logpath = /var/log/openwemail.log
Wenn Sie Sperrregeln für einen Dienst festlegen möchten, können Sie dies unter dem Dienst tun.
[sshd]
enabled = true
maxretry = 5
findtime = 5m
bantime = 10d
ignoreip = 192.169.0.1/8 12.34.56.78
Sie können Filter in /etc/fail2ban/filter.d
bearbeiten Verzeichnis.
Schritt 3 – Starten Sie Fail2Ban neu
Nach jeder abgeschlossenen Installation und Konfiguration ist es am besten, den Dienst neu zu starten, damit die Änderungen wirksam werden.
$ sudo systemctl restart fail2ban
Schritt 4 – Fail2ban-Befehlszeile
Mit dem Tool fail2ban-client
Sie können Änderungen mit dem Fail2Ban-Skript vornehmen. Um die Befehlszeile zu verwenden, verwenden Sie:
$ sudo fail2ban-client
[gefolgt von Ihrem Befehl]
Verwenden Sie zum Anzeigen der verfügbaren Optionen:
$ sudo fail2ban-client -h
Hier sind ein paar praktische Befehle:
IP-Adresse entsperren:
$ sudo fail2ban-client set sshd unbanip 12.34.56.789
Eine IP-Adresse sperren:
$ sudo fail2ban-client set sddh banip 12.34.56.789