Alle Server, auf die aus dem Internet zugegriffen werden kann, sind von Malware-Angriffen bedroht. Wenn Sie beispielsweise eine Anwendung haben, auf die über das öffentliche Netzwerk zugegriffen werden kann, können Angreifer Brute-Force-Versuche verwenden, um Zugriff auf die Anwendung zu erlangen.
Fail2ban ist ein Tool, das hilft, Ihren Linux-Computer vor Brute-Force- und anderen automatisierten Angriffen zu schützen, indem es die Dienstprotokolle auf böswillige Aktivitäten überwacht. Es verwendet reguläre Ausdrücke, um Protokolldateien zu scannen. Alle Einträge, die mit den Mustern übereinstimmen, werden gezählt, und wenn ihre Anzahl einen bestimmten vordefinierten Schwellenwert erreicht, sperrt Fail2ban die anstößige IP über die System-Firewall für eine bestimmte Zeit. Wenn die Sperrfrist abgelaufen ist, wird die IP-Adresse von der Sperrliste entfernt.
Dieser Artikel erklärt, wie man Fail2ban unter Debian 10 installiert und konfiguriert.
Fail2ban auf Debian installieren #
Das Fail2ban-Paket ist in den Standard-Repositorys von Debian 10 enthalten. Um es zu installieren, führen Sie den folgenden Befehl als Root oder Benutzer mit sudo-Berechtigungen aus:
sudo apt update
sudo apt install fail2ban
Nach Abschluss wird der Fail2ban-Dienst automatisch gestartet. Sie können dies überprüfen, indem Sie den Status des Dienstes überprüfen:
sudo systemctl status fail2ban
Die Ausgabe sieht folgendermaßen aus:
● fail2ban.service - Fail2Ban Service
Loaded: loaded (/lib/systemd/system/fail2ban.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2021-03-10 18:57:32 UTC; 47s ago
...
Das ist es. An diesem Punkt läuft Fail2Ban auf Ihrem Debian-Server.
Fail2ban-Konfigurationsnummer
Die standardmäßige Fail2ban-Installation enthält zwei Konfigurationsdateien, /etc/fail2ban/jail.conf
und /etc/fail2ban/jail.d/defaults-debian.conf
. Sie sollten diese Dateien nicht ändern, da sie möglicherweise überschrieben werden, wenn das Paket aktualisiert wird.
Fail2ban liest die Konfigurationsdateien in der folgenden Reihenfolge. Jede .local
Datei überschreibt die Einstellungen aus der .conf
Datei:
/etc/fail2ban/jail.conf
/etc/fail2ban/jail.d/*.conf
/etc/fail2ban/jail.local
/etc/fail2ban/jail.d/*.local
Der einfachste Weg, Fail2ban zu konfigurieren, ist das Kopieren der jail.conf
zu jail.local
und ändern Sie die .local
Datei. Fortgeschrittene Benutzer können eine .local
erstellen Konfigurationsdatei von Grund auf neu. Die .local
Datei muss nicht alle Einstellungen aus der entsprechenden .conf
enthalten Datei, nur die, die Sie überschreiben möchten.
Erstellen Sie eine .local
Konfigurationsdatei, indem Sie die standardmäßige jail.conf
kopieren Datei:
sudo cp /etc/fail2ban/jail.{conf,local}
Um mit der Konfiguration des Fail2ban-Servers zu beginnen, öffnen Sie die jail.local
Datei mit Ihrem Texteditor:
sudo nano /etc/fail2ban/jail.local
Die Datei enthält Kommentare, die beschreiben, was jede Konfigurationsoption bewirkt. In diesem Beispiel ändern wir die Grundeinstellungen.
IP-Adressen auf die weiße Liste setzen #
IP-Adressen, IP-Bereiche oder Hosts, die Sie von der Sperrung ausschließen möchten, können zu ignoreip
hinzugefügt werden Richtlinie. Hier sollten Sie Ihre lokale PC-IP-Adresse und alle anderen Computer hinzufügen, die Sie auf die Whitelist setzen möchten.
Entkommentieren Sie die Zeile, die mit ignoreip
beginnt und fügen Sie Ihre IP-Adressen durch Leerzeichen getrennt hinzu:
ignoreip = 127.0.0.1/8 ::1 123.123.123.123 192.168.1.0/24
Sperreinstellungen #
bantime
, findtime
und maxretry
Optionen legen die Sperrzeit und die Sperrbedingungen fest.
bantime
ist die Dauer, für die die IP gesperrt ist. Wenn kein Suffix angegeben ist, werden standardmäßig Sekunden verwendet. Standardmäßig ist die bantime
Der Wert ist auf 10 Minuten eingestellt. Die meisten Benutzer ziehen es vor, eine längere Sperrzeit festzulegen. Ändern Sie den Wert nach Ihren Wünschen:
bantime = 1d
Um die IP dauerhaft zu sperren, verwenden Sie eine negative Zahl.
findtime
ist die Dauer zwischen der Anzahl der Fehler, bevor ein Bann gesetzt wird. Wenn beispielsweise Fail2ban so eingestellt ist, dass eine IP nach fünf Fehlern gesperrt wird (maxretry
, siehe unten), müssen diese Fehler innerhalb der findtime
auftreten Dauer.
findtime = 10m
maxretry
ist die Anzahl der Fehler, bevor eine IP gesperrt wird. Der Standardwert ist auf fünf gesetzt, was für die meisten Benutzer in Ordnung sein sollte.
maxretry = 5
E-Mail-Benachrichtigungen #
Fail2ban kann E-Mail-Benachrichtigungen senden, wenn eine IP gesperrt wurde. Um E-Mails zu empfangen, müssen Sie ein SMTP auf Ihrem Server installiert haben und die Standardaktion ändern, die nur die IP auf %(action_mw)s
bannt , wie unten gezeigt:
action = %(action_mw)s
%(action_mw)s
sperrt die betreffende IP und sendet eine E-Mail mit einem Whois-Bericht. Wenn Sie die relevanten Protokolle in die E-Mail aufnehmen möchten, setzen Sie die Aktion auf %(action_mwl)s
.
Sie können auch die sendenden und empfangenden E-Mail-Adressen ändern:
/etc/fail2ban/jail.localdestemail = [email protected]
sender = [email protected]
Fail2ban-Gefängnisse #
Fail2ban verwendet das Konzept der Gefängnisse. Ein Jail beschreibt einen Dienst und beinhaltet Filter und Aktionen. Log-Einträge, die dem Suchmuster entsprechen, werden gezählt, und wenn eine vordefinierte Bedingung erfüllt ist, werden die entsprechenden Aktionen ausgeführt.
Fail2ban wird mit einer Reihe von Gefängnissen für verschiedene Dienste ausgeliefert. Sie können auch Ihre eigenen Jail-Konfigurationen erstellen. Standardmäßig ist nur das ssh-Gefängnis aktiviert.
Um ein Jail zu aktivieren, müssen Sie enabled = true
hinzufügen nach dem Gefängnistitel. Das folgende Beispiel zeigt, wie das Postfix-Jail aktiviert wird:
[postfix]
enabled = true
port = smtp,ssmtp
filter = postfix
logpath = /var/log/mail.log
Die Einstellungen, die wir im vorherigen Abschnitt besprochen haben, können pro Jail festgelegt werden. Hier ist ein Beispiel:
/etc/fail2ban/jail.local[sshd]
enabled = true
maxretry = 3
findtime = 1d
bantime = 4w
ignoreip = 127.0.0.1/8 11.22.33.44
Die Filter befinden sich in /etc/fail2ban/filter.d
Verzeichnis, gespeichert in einer Datei mit dem gleichen Namen wie das Gefängnis. Wenn Sie über eine benutzerdefinierte Einrichtung und Erfahrung mit regulären Ausdrücken verfügen, können Sie die Filter feinabstimmen.
Jedes Mal, wenn die Konfigurationsdatei geändert wird, muss der Fail2ban-Dienst neu gestartet werden, damit die Änderungen wirksam werden:
sudo systemctl restart fail2ban
Fail2ban-Client-Nr.
Fail2ban wird mit einem Befehlszeilentool namens fail2ban-client
ausgeliefert die Sie verwenden können, um mit dem Fail2ban-Dienst zu interagieren.
Um alle verfügbaren Optionen anzuzeigen, rufen Sie den Befehl mit -h
auf Möglichkeit:
fail2ban-client -h
Dieses Tool kann verwendet werden, um IP-Adressen zu sperren/entsperren, Einstellungen zu ändern, den Dienst neu zu starten und vieles mehr. Hier sind ein paar Beispiele:
-
Holen Sie sich den aktuellen Status des Servers:
sudo fail2ban-client status
-
Überprüfen Sie den Jail-Status:
sudo fail2ban-client status sshd
-
Eine IP-Adresse entsperren:
sudo fail2ban-client set sshd unbanip 11.22.33.44
-
Eine IP sperren:
sudo fail2ban-client set sshd banip 11.22.33.44