GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So installieren und verwenden Sie Fail2ban unter RHEL 8 / CentOS 8

Ganz oben auf der Liste jedes IT-Betriebsteams steht die Sicherstellung, dass Server vor unbefugten Benutzern oder bösartigen Skripten geschützt sind. Es gibt eine Reihe von Lösungen, die Sie anwenden können, um Angriffe und Sicherheitsverletzungen abzuwehren. Darunter ist die Implementierung des Softwaretools Fail2ban.

Fail2ban ist eine Open-Source-Intrusion-Detection-Maßnahme, die Brute-Force-Angriffe abschwächt, die auf verschiedene Dienste wie SSH und VSFTPD abzielen, um nur einige zu nennen. Es enthält eine Reihe von Filtern – einschließlich SSH – die Sie anpassen können, um die Firewall-Regeln zu aktualisieren und unbefugte SSH-Anmeldeversuche zu blockieren.

Das Dienstprogramm fail2ban überwacht die Protokolldateien des Servers auf Einbruchsversuche und blockiert die IP-Adresse des Benutzers nach einer vordefinierten Anzahl fehlgeschlagener Versuche für eine bestimmte Dauer. Die IP des Benutzers wird in einem „Gefängnis“ platziert, das in der Konfigurationsdatei /etc/fail2ban/jail.conf festgelegt, aktiviert oder deaktiviert werden kann. Auf diese Weise hilft es, Ihren Linux-Server vor unbefugtem Zugriff und insbesondere vor Botnets und bösartigen Skripten zu schützen.

Was gehört zu einem Gefängnis? Ein Gefängnis besteht aus den folgenden Schlüsselelementen:

  • Die zu analysierende Protokolldatei.
  • Auf die Protokolldatei anzuwendende Filter.
  • Die auszuführende Aktion, wenn der Filter zutrifft
  • Zusätzliche Parameter zur Erläuterung der Art der Übereinstimmungen. Zum Beispiel maxtry (maximaler Versuch) und bantime (Sperrzeit) usw.

In diesem Tutorial führen wir Sie durch die Installation und Konfiguration von Fail2ban auf RHEL 8 / CentOS 8.

Schritt 1) ​​EPEL-Repository installieren

Melden Sie sich zunächst bei Ihrem Server an und installieren Sie das Paket EPEL (Extra Package for Enterprise Linux) wie folgt.

Für CentOS 8

$ sudo dnf install -y epel-release

Für RHEL 8

$ sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y

Schritt 2) Fail2ban installieren

Um Fail2ban zu installieren, führen Sie den folgenden einfachen Befehl aus:

$ sudo dnf install -y fail2ban

Schritt 3) Fail2ban konfigurieren

Fail2ban analysiert standardmäßig die Protokolldateien und versucht, den in den Filtern angegebenen Failregex abzugleichen. Filter erfassen fehlgeschlagene Authentifizierungsversuche für einen bestimmten Dienst, z. B. SSH-Anmeldeversuche mit regulären Ausdrücken – Regex. Wenn die maximale Anzahl von „maxtry“-Malen in den Protokolleinträgen erreicht ist, wird eine Aktion ausgelöst.

Standardmäßig geschieht dies nach 3 fehlgeschlagenen Authentifizierungsversuchen, und der Benutzer wird gesperrt oder für 10 Minuten in ein „Gefängnis“ gesteckt. Diese Parameter können einfach in der Datei /etc/fail2ban/jail.conf konfiguriert werden, die die globale Konfigurationsdatei ist.

Alle wichtigen Konfigurationsdateien befinden sich im Verzeichnis /etc/fail2ban/.

Filter werden im Verzeichnis /etc/fail2ban/filter.d gespeichert. Es gibt Dutzende von Filtern für verschiedene Dienste, darunter SSH, Webmin, Postfix und vieles mehr.

/etc/fail2ban/jail.conf ist die Hauptkonfigurationsdatei. Es wird jedoch nicht empfohlen, diese Datei direkt zu ändern, da die Konfigurationen, wie in der Datei angegeben, bei einem späteren Distributionsupdate wahrscheinlich überschrieben oder verbessert werden.

Eine Problemumgehung besteht darin, eine  jail.local-Datei im Verzeichnis /etc/fail2ban/jail.d zu erstellen und Ihre benutzerdefinierten Konfigurationen für die gewünschten Dienste hinzuzufügen, die Sie sichern möchten.

HINWEIS:Parameter, die in der Datei jail.local definiert sind, überschreiben die Datei jail.conf. Daher ist es noch besser, die Hauptkonfigurationsdatei intakt zu lassen.

Zu Demonstrationszwecken werden wir eine Jail-Datei erstellen, die SSH-Verbindungen sichert.

$ sudo vim /etc/fail2ban/jail.local

Hier ist die Beispielkonfigurationsdatei.

[DEFAULT]
ignoreip = 192.168.2.105
bantime  = 86400
findtime  = 300
maxretry = 3
banaction = iptables-multiport
backend = systemd
[sshd]
enabled = true

Lassen Sie uns die Parameter aufschlüsseln und sehen, wofür sie stehen.

  • ignoreip –  Definiert eine Liste von IP-Adressen oder Domänennamen, die nicht gesperrt werden sollen.
  • bantime – Wie der Name schon sagt, gibt dies die Zeitdauer in Sekunden an, die ein entfernter Host gesperrt wird.
  • maxretry – Dies ist die Anzahl der fehlgeschlagenen Anmeldeversuche, bevor der Host blockiert/gebannt wird.
  • findtime – Zeitdauer in Sekunden, während der ein Host nach Erreichen der maxtry-Versuche blockiert wird.
  • banaction – Die Bannaktion.
  • Backend – Das System, das zum Abrufen von Protokolldateien verwendet wird

Unsere Konfiguration impliziert Folgendes:

Wenn eine IP-Adresse innerhalb der letzten 5 Minuten 3 fehlgeschlagene Authentifizierungsversuche aufzeichnet, wird sie für 24 Stunden gesperrt, mit Ausnahme eines Hosts mit der IP 192.168.2.105.

Speichern und beenden Sie die Konfigurationsdatei.

Schritt 4)  Starten und aktivieren Sie Fail2ban

Nachdem die Konfiguration der Jail-Datei für SSH abgeschlossen ist, werden wir fail2ban beim Booten starten und aktivieren. Normalerweise wird der Dienst nach der Installation nicht ausgeführt

Um fail2ban zu starten und zu aktivieren, führen Sie den folgenden Befehl aus:

$ sudo systemctl start fail2ban
$ sudo systemctl enable fail2ban

Rufen Sie den folgenden Befehl auf, um den Status von fail2ban anzuzeigen:

$ sudo systemctl status fail2ban

Diesmal können wir beobachten, dass fail2ban wie erwartet läuft.

Lassen Sie uns nun fortfahren und sehen, wie Fail2ban funktioniert.

Schritt 4) Fail2ban in Aktion

Lassen Sie uns nun einen Schritt weiter gehen und Fail2ban in Aktion sehen. Um gesperrte IP-Adressen im Auge zu behalten, ist das Dienstprogramm fail2ban-client praktisch. Um beispielsweise den Status des ssh-Gefängnisses abzurufen, führen Sie den folgenden Befehl aus:

$ sudo fail2ban-client status sshd

Im Moment gibt es keine gesperrten IP-Einträge, da wir uns noch nicht remote am Server angemeldet haben.

Wir werden versuchen, uns über den Putty-SSH-Client von einem Windows-PC mit einer anderen IP als der in der jail.local-Konfigurationsdatei angegebenen anzumelden.

Aus der Ausgabe können wir deutlich erkennen, dass wir keinen Zugriff auf den Server erhalten. Wenn wir den Status erneut überprüfen, stellen wir fest, dass eine IP wie gezeigt gesperrt wurde.

Um die IP aus der Sperrliste zu entfernen, heben Sie die Sperre wie folgt auf.

$ sudo fail2ban-client unban 192.168.2.101

Weitere Informationen zu fail2ban-Regeln und -Richtlinien finden Sie auf den Manpages von jail.conf wie gezeigt

$ man jail.conf

Irgendwelche Kommentare oder Rückmeldungen? Fühlen Sie sich frei, uns zu kontaktieren und wir werden uns bei Ihnen melden.

Auch lesen :12 IP-Befehlsbeispiele für Linux-Benutzer


Cent OS
  1. So installieren und verwenden Sie PHP Composer unter CentOS 7

  2. So installieren und verwenden Sie ifconfig unter CentOS 7

  3. So installieren und konfigurieren Sie Samba auf RHEL 8 / CentOS 8

  4. So installieren Sie die bin-Datei in RHEL 8 / CentOS 8 Linux

  5. So installieren Sie Fail2Ban unter CentOS 7

So installieren und verwenden Sie Cockpit unter CentOS 8 / RHEL 8

So installieren und verwenden Sie Terraform unter CentOS 8

So installieren und verwenden Sie Firewalld in CentOS / RHEL

So installieren und konfigurieren Sie Fail2ban unter CentOS 8

So installieren und verwenden Sie TermRecord unter CentOS 8

So installieren und verwenden Sie Traceroute unter CentOS 7