GNU/Linux >> LINUX-Kenntnisse >  >> Debian

So installieren Sie Fail2ban unter Debian 10 oder 11 Bullseye

fail2ban ist ein Paket aus Client-, Server- und Konfigurationsdateien, mit dem das System vor verschiedenen böswilligen Angriffen geschützt wird. Es sichert auch Linux-Serverdienste gegen Denial of Service (DoS). Andere grundlegende Funktionen sind hingegen das Überwachen von Protokolldateien, das Suchen nach vordefinierten Mustern und das vorübergehende Blockieren von IP-Adressen. Es wird unter der GNU General Public License Version 2 veröffentlicht und basiert auf Python.

Es kann sowohl im Hintergrund (als Dämon) als auch im Vordergrund laufen. Das Programm ist beispielsweise nützlich, wenn Sie bei einem SSH-Server die Anzahl der Anmeldeversuche begrenzen möchten. Das Programm fail2ban untersucht die Protokolldateien des Systems auf fehlgeschlagene Anmeldeversuche und blockiert dann die Internetadresse (IP) des Angreifers für einen bestimmten Zeitraum.

Hier lernen wir die Schritte zur Installation von Fail2ban auf Debian 11 Bulleyes und seinen Konfigurationsprozess kennen.

Fail2ban-Installation auf Debian 11

Die Pakete zum Installieren und Konfigurieren von Fail2ban sind im offiziellen Debian 11 Repo verfügbar, daher müssen wir nur den apt-Befehl für seine Installation verwenden.

Führen Sie zuerst den Update-Befehl aus, um den Repo-Cache neu zu erstellen-

sudo apt update

Und dann der Hauptbefehl, um dieses Sicherheitstool abzurufen-

sudo apt install fail2ban

Durch Ausführen des obigen Befehls werden die folgenden Programme nach der Installation verfügbar:

  • fail2ban-server – der Server
  • fail2ban-client – ​​Clientprogramm zur Konfiguration und Auswertung des Servers
  • fail2ban-regex- Programm zum Testen regulärer Ausdrücke

Aktivieren und überprüfen Sie den Status seiner Dienste-

sudo systemctl enable fail2ban
sudo systemctl status fail2ban

Konfiguration auf Debian 10/11

fail2ban liest Konfigurationsdateitypen mit den Erweiterungen .conf und .local . Dateien mit der Erweiterung .conf werden während der Installation erstellt und während eines Paket-Upgrades überschrieben daher müssen alle Änderungen in der entsprechenden .local vorgenommen werden Dateien. Fügen Sie daher in dieser Datei nur Werte hinzu oder ändern Sie diese, die sich von den Standard- oder globalen Einstellungen unterscheiden.

Fail2ban hat drei Konfigurationsdateitypen:

/etc/fail2ban/action.d/*.conf/*
/etc/fail2ban/filter.d/*.conf/*
/etc/fail2ban/jail.conf
/etc/fail2ban/jail.d/*.conf

Aktionen.d

Die Dateien im Verzeichnis /etc/fail2ban/action.d/ enthalten die Befehle zum (Entsperren) von IP-Adressen. Aktionsdateien enthalten zwei Abschnitte: [Definition] und [Init] . Die Einträge in der [Init] -Abschnitt wird verwendet, um die im Jail definierten Regeln zu überschreiben. Die Beispiele in der folgenden Tabelle stammen aus der iptables-multiport-conf Handlung. Alle Befehle werden mit den Benutzerrechten fail2ban ausgeführt.

Übersicht der Optionen
Eintrag Beschreibung Beispiel
[Definition]
Aktionsstart Befehle, die ausgeführt werden, wenn fail2ban gestartet wird. actionstart =iptables -N fail2ban-
iptables -A fail2ban- -j RETURN
iptables -I -p -m multiport --dports -j fail2ban-
actionstop Befehle, die beim Beenden von fail2ban ausgeführt werden. actionstop =iptables -D -p -m multiport --dports -j fail2ban-
iptables -F fail2ban-[[BR]]iptables -X fail2ban-
actioncheck Befehle, die vor jedem Aktionsban ausgeführt werden. Diese dienen dazu, die aktuelle Umgebung auf Funktionalität zu prüfen. actioncheck =iptables -n -L | grep -q 'fail2ban-[\t]'
Aktionsverbot Befehle, die ausgeführt werden, wenn eine IP gesperrt wird. Die Bedingung ist immer maxretry muss überschritten werden und findtime fallen knapp. actionban =iptables -I fail2ban- 1 -s -j
actionunban Befehle zum Entsperren. actionunban =iptables -D fail2ban- -s -j
[Init]
name Der Standardname der Kette name =default
Port Anschluss port =ssh
Protokoll Wird intern vom Konfigurationsleser verwendet. Mögliche Werte: tcpudpicmpalle . Protokoll =TCP
Kette Die iptables-Kette, zu der die fail2ban-Regeln hinzugefügt werden sollen. Standard ist INPUT . Kette =INPUT
Aktions-Tags Aktions-Tags sind Platzhalter, die in actionban verwendet werden können , actionunban und actioncheck .
ip Die zu sperrende IPv4-Adresse.
Fehler Die Anzahl der gezählten Fehlversuche.
Zeit Der Unix-Zeitstempel (Sekunden) des Verbots.
Übereinstimmungen Die verketteten Einträge aus den Zeilen der Logdatei, die zum Bann führten. Viele Shell-Zeichen werden maskiert.

Filter.d 

Die Dateien im Verzeichnis /etc/fail2ban/filter.d/ enthält die regulären Ausdrücke zum Analysieren der Logfiles und zum Extrahieren der IP-Adresse oder falls usedns verwendet werden, der Hostname. Diese Dateien enthalten nur zwei Abschnitte: [Definition] und [Enthält] . Letzteres kann verwendet werden, um andere Konfigurationsdateien einzulesen.

Die Beispiele in der folgenden Tabelle stammen aus der iptables-multiport-conf Handlung. Alle Befehle werden mit den Benutzerrechten fail2ban ausgeführt.

Übersicht der Optionen
Eintrag Beschreibung Beispiel
[Definition]
failregex Mit Hilfe dieses regulären Ausdrucks werden die Protokolldateien nach Treffern durchsucht. Das Tag ist HOST hier verfügbar,
der als Teil der Regex verwendet wird und den Hostnamen oder die IP-Adresse enthält.
Die Unterscheidung zwischen IP-Adresse und Hostname wird automatisch von fail2ban ermittelt.
failregex =^%(__prefix_line)sFAIL:\S+ Adresse von=$
^%(__prefix_line)sFAIL:\S+ libwrap von=$
Regex ignorieren Hier können Ausnahmen definiert werden, auch wenn sie für
den obigen Failregex gültig waren. ignoreregex unterstützt String-Interpolation
so dass Sie Ihre eigenen Variablen mit %(variablenname)s verwenden können .
ignoreregex =
[ENTHALTEN]
vor Wird verwendet, damit eine Datei vor der eingestellten gelesen wird.
Ein Beispiel ist common.conf
before =common.conf
nach Die Datei wird nach der eingestellten gelesen after =example_after.local
Beispiel Nach der Integration der common.conf ist _daemon verfügbar.
Siehe /etc/fail2ban/filter.d/common.conf für weitere Details.
_daemon =xinetd

Jail.conf

Während die jail.conf Datei kombiniert Aktionen und machte Filter in ein Gefängnis. Der Benutzer muss diese Datei mit der Erweiterung .loca speichern l seine eigenen Regeln hinzuzufügen oder anzupassen.

Die jail.conf und die folgende Tabelle gibt einen Überblick über die standardmäßig möglichen Werte.


Übersicht der Optionen
Eintrag Beschreibung Beispiel
[STANDARD]
ignoreip Leerzeichen-getrennte Liste von zu ignorierenden IPs oder Netzwerken. ignoreip =127.0.0.1/8 192.168.1.33
bantime Sperrzeit in Sekunden. Ein negativer Wert ist ein permanenter Ban. bantime =86400
findtime Die Anzahl der Sekunden, nach denen der Zähler für maxretry ist zurücksetzen. findtime =660
maxretry Die maximale Anzahl erfolgloser Versuche, bevor fail2ban die IP bannt. maxretry =2
Backend Hier kann das Backend, z. B. systemd, eingestellt werden. Die Standardeinstellung ist auto (empfohlen). backend =systemd
usedns Einstellung für das Reverse-Lookup-Verhalten von fail2ban. Mögliche Werte sind yesnein und warnen .
Letzteres bedeutet, dass Einträge mit Hostnamen eine Warnung in der Logdatei ausgeben, was zu einer großen Anzahl von Einträgen führen kann.
usedns =warnen
[myJail] Hier kann der Name des Gefängnisses vergeben werden. [ssh][code>
aktiviert (De-) aktiviert das Gefängnis aktiviert =wahr
Port Portdefinition, kann numerisch sein. Mehrere Werte werden durch Kommas getrennt. port =ssh
filter =sshd Name der Filterdatei /etc/fail2ban/filter.d/sshd.conf
Protokollpfad Die zu überwachende Logdatei, die auf den Filter geprüft wird. logpath =/var/log/auth.log
maxretry, bantime,... Es können auch andere Werte für die Standardoptionen definiert werden. maxretry =3


Erstellen Sie Ihre eigene Jail-Konfigurationsdatei


Kopieren wir also jetzt die jail.conf Datei, um eine jail.local zu erstellen Datei, um benutzerdefinierte Einstellungen hinzuzufügen, die dort auch nach dem Upgrade von fail2ban verbleiben.

sudo cp /etc/fail2ban/jail.{conf,local}

Um verschiedene Einstellungen zu konfigurieren, bearbeiten Sie die erstellten lokalen Jail-Dateien

sudo nano /etc/fail2ban/jail.local

Einige Beispiele-

Setzen Sie einige IP-Adressen, IP-Bereiche oder Hosts auf die Whitelist

Angenommen, Sie möchten beim Öffnen der Datei einige IP-Adressen, IP-Bereiche oder Hosts auf die Whitelist setzen, damit sie nicht vom File2ban-Dienst blockiert werden. Dazu definieren wir dasselbe in der neu erstellten Jail.local Datei.
Siehe :So überprüfen Sie die IP-Adresse auf dem Linux-Befehlsterminal

Suchen Sie in der Datei nach #igonreip Zeile und entfernen Sie das # davon. Fügen Sie danach die IP-Adresse oder den IP-Bereich hinzu, den Sie auf die Whitelist setzen möchten.

Bantime, findtime und maxretry

In ähnlicher Weise können wir auch die Zeit der gesperrten IP-Adresse erhöhen oder verringern, indem wir die in der Datei angegebenen Werte der bantime-Option ändern.

[Default]

bantime = 10m

Um den Zeitraum zu verkürzen oder zu verlängern, ändern Sie einfach die Standardeinstellung von 10 Minuten nach Belieben. Um die IP-Adresse dauerhaft zu blockieren, verwenden Sie einen negativen Wert.

maxretry

Wie viele Maxima-Versuche muss eine IP-Adresse gemacht haben, um gesperrt zu werden? Standardmäßig ist es fünf und wird mit maxretry deklariert Option in jail.local Datei. Wenn Sie es reduzieren möchten, sagen wir, erst nach zwei böswilligen Versuchen sollte die IP blockiert werden, dann ändern Sie die Zahl von 5 auf 2. Auf die gleiche Weise können Sie auch die Anzahl der maximalen Versuche erhöhen.

maxretry = 5

Zeit finden

Es ist die Zeit zwischen den maximalen Wiederholungsversuchen, die für böswillige oder Anmeldungen im System erfolgen sollten, bevor Fail2Ban die jeweilige IP-Adresse blockiert. Zum Beispiel , jemand versucht sich anzumelden, wenn er 5 Versuche in den festgelegten 10 Minuten unternommen hat, dann wird seine IP gesperrt. Sie können jedoch die findtime ändern Wert, um diesen Zeitraum zu verlängern oder zu verkürzen.

findtime = 10m

Fail2ban kann E-Mail-Benachrichtigungen senden

Ja, wenn eine IP gesperrt wird, können Sie die E-Mail-Benachrichtigung dafür erhalten. Sie müssen jedoch aktivieren und definieren, welche E-Mail-Adresse Sie verwenden möchten, um die Benachrichtigung zu erhalten.

Sendmail installieren- Ein Open-Source-Mail-Transfer-Agent (MTA)

sudo apt install sendmail

Jetzt gibt es zwei wichtige Einstellungen, die wir in der jail.local vornehmen müssen Datei, um E-Mail-Benachrichtigungen zu erhalten.

  1. destemail – E-Mail-Adresse, die verwendet wird, um eine Benachrichtigung zu erhalten.
  2. Absender – E-Mail-Adresse, von der fail2ban die E-Mails versendet.

Suchen Sie also in der Datei die beiden obigen Einstellungen und fügen Sie Ihre E-Mail-Adresse hinzu-

Suchen Sie als Nächstes die untere Zeile

action = %(action_)s

Und ändern Sie es mit einem der folgenden:

action =%(action_)s – Dieser sendet eine E-Mail-Benachrichtigung, wenn eine IP-Adresse gesperrt wird.

oder

action =%(action_mwl)s – Falls Sie die E-Mail-Benachrichtigung für gesperrte Host-IPs einschließlich Protokollinformationen wünschen, verwenden Sie diese Aktionsoption.
Außerdem können Sie sich unsere Liste der besten E-Mail-Client-Apps für Ubuntu oder Debian Linux ansehen.

Dienste in der Fail2ban Jail-Datei aktivieren

Wie ich bereits erwähnt habe, umfasst das erstellte jail.local beide Aktionen und Filter die verwendet werden können, um standardmäßig zugelassene Dienste zu deaktivieren/aktivieren oder eigene zu erstellen.

Zum Beispiel – Standardmäßig ist SSH in Jail.local von Fail2ban aktiviert.

Tatsächlich werden Sie in der Fail2ban Jail-Datei sehen, dass es viele Dienste gibt, die damit einhergehen. Sie müssen sie jedoch zur Verwendung aktivieren. ODER Sie können Ihre eigenen erstellen.

Unter /etc/fail2ban/filters.d Ordner können Sie alle Konfigurations-Filter sehen Dateien für jeden dort verfügbaren Fai2ban Jail-Dienst.

Bevor wir zeigen, wie man sie einschaltet, sehen wir uns an, was die aktivierten Jails-Dienste sind-

sudo fail2ban-client status

Die Ausgabe sieht so aus-

Status
|- Number of jail: 1
`- Jail list: sshd

Wenn wir nun einen Jail-Dienst aktivieren möchten, müssen wir enabled =true hinzufügen in der jail.conf Datei nach dem Jail-Service-Titel. Das folgende Beispiel zeigt, wie die Apache-Authentifizierung aktiviert wird Gefängnis:

Beispiel:Schalten wir den Fail2ban-Apache-Authentifizierungsdienst ein

Bearbeiten Sie jail.local und finden Sie vordefinierte Apache-Auth  Gefängnisdienst

Speichern die Datei mit Strg+X , Y, und durch Drücken von Enter Schlüssel.

Fail2ban-Server neu starten

sudo systemctl restart fail2ban

Jetzt , verwenden Sie erneut den Fail2ban-Client um zu überprüfen, wie viele Jail-Dienste aktiviert sind-

sudo fail2ban-client status

Diesmal ist die Ausgabe-

Status
|- Number of jail: 2
`- Jail list: apache-auth, sshd

Weitere Informationen über den Dienst verwenden Sie seinen Namen mit dem obigen Befehl-

sudo fail2ban-client status apache-auth

Ausgabe:

Status for the jail: apache-auth
|- Filter
| |- Currently failed: 0
| |- Total failed: 0
| `- File list: /var/log/apache2/error.log
`- Actions
|- Currently banned: 0
|- Total banned: 0
`- Banned IP list:

Fehler:

Wenn Sie die folgenden Fehler erhalten, bedeutet dies, dass der bestimmte Dienst, den Sie aktivieren möchten, noch nicht auf Ihrem System oder Server installiert ist. Zum Beispiel Wenn ich Apache Jail aktiviert habe, aber Apache selbst nicht auf meinem Server verfügbar ist, wird diese Art von Fehler angezeigt.

fail2ban.service: Main process exited, code=exited, status=255/EXCEPTION

[6613]: ERROR Failed to access socket path: /var/run/fail2ban/fail2ban.sock. Is fail2ban running?

Fail2ban-Client-Nutzung

Sogar wir können das Client-Befehlstool von Fail2ban verwenden, um mit seinen verschiedenen Diensten umzugehen – um alle damit verbundenen Befehle anzuzeigen, können Sie das Hilfe-Flag verwenden –

fail2ban-client -h

Zum Beispiel Um einige IPs für einen Dienst zu sperren oder zu entsperren, verwenden Sie die folgende Syntax

Verbieten

fail2ban-client set <JAIL-service> banip <IP>

Zum Entsperren

fail2ban-client set <JAIL-service> unbanip <IP>

Beispiel-

sudo fail2ban-client set sshd banip 192.168.0.6

Endnote-

Das war also ein kurzer Überblick über die Installation und Konfiguration von Fail2ban auf Debian 11 Bullseye oder 10 Buster. Obwohl die Dokumentation des Fail2ban-Tools nicht umfangreich ist, sollten einige trotzdem nachsehen wollen, besuchen Sie die offizielle Website. Hier sind die Links:Projektseite, Dokumentation, GitHub-Seite für Quellcode


Debian
  1. So installieren Sie R unter Debian 9

  2. So installieren Sie R unter Debian 10

  3. So installieren Sie Debian 11 (Bullseye) Schritt für Schritt

  4. So installieren Sie Python 3.8 auf Debian 11 Bullseye

  5. So installieren Sie Python 3.9 auf Debian 11 Bullseye

So installieren Sie PHP 7.4 auf Debian 11 Bullseye

So installieren Sie VidCutter unter Debian 11 Bullseye

So installieren Sie PuTTY unter Debian 11 Bullseye

So installieren Sie Fail2Ban unter Debian 8

So installieren Sie Fail2Ban unter Debian 10

So installieren Sie Fail2Ban unter Debian 11