So schützen Sie Ihren Server mit Fail2Ban unter Linux
Die Serversicherheit hat für jedes Unternehmen oder jede Organisation höchste Priorität. Fail2Ban ist eines der wichtigsten Tools im Toolkit eines Systemadministrators. Diese Anleitung erklärt, was Fail2Ban ist und wie Sie Ihren Server mit Fail2Ban in Ihrem Linux vor Angriffen schützen können.
Was ist Fail2Ban?
Fail2Ban ist ein Intrusion-Prevention-Tool, das Protokolldateien überwacht und IP-Adressen blockiert, die Anzeichen böswilliger Aktivitäten aufweisen. Dies geschieht durch die Erstellung von „Filtern“, die mit bestimmten Mustern in Protokolldateien übereinstimmen und Aktionen ausführen, wie z. B. das Blockieren der anstößigen IP-Adresse.
Warum Fail2Ban unter Linux verwenden?
Es gibt mehrere Gründe, Fail2Ban unter Linux zu verwenden. Vielleicht:
- Es spart Ihnen Zeit, indem bösartige IP-Adressen automatisch blockiert werden.
- Schützen Sie Ihren Server, indem Sie die Wahrscheinlichkeit eines erfolgreichen Angriffs verringern.
- Es gibt Ihnen die Gewissheit, dass Ihr Server überwacht und geschützt wird.
Installieren Sie Fail2Ban unter Linux
Standardmäßig ist Fail2Ban in den Ubuntu-Repositories verfügbar. Installieren Sie es mit apt.
sudo add-apt-repository universe sudo apt update && sudo apt install fail2ban -y
Fail2Ban setzt seinen Dienst in den Hintergrund, systemd deaktiviert ihn jedoch standardmäßig. Sie können es mit den folgenden Befehlen starten und aktivieren:
sudo systemctl start fail2ban sudo systemctl enable fail2ban
Überprüfen Sie mit dem folgenden Befehl, ob Fail2Ban ausgeführt wird:
sudo systemctl status fail2ban
Sie sehen eine Ausgabe ähnlich der Abbildung unten.
Konfigurieren Sie Fail2Ban unter Linux
Das Verzeichnis „/etc/fail2ban“ enthält die Konfigurationsdateien für Fail2Ban. Standardmäßig wird Fail2Ban mit einer „jail.conf“-Datei geliefert, die Einstellungen enthält, die auf alle Dienste angewendet werden.
Es empfiehlt sich jedoch, eine lokale „jail.local“-Datei zu erstellen und die Einstellungen in „jail.conf“ zu überschreiben, da alle Änderungen, die Sie an „jail.conf“ vornehmen, verloren gehen, wenn die Software aktualisiert wird.
Sie können Ihre „jail.local“-Datei mit den folgenden Befehlen erstellen:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Öffnen Sie die jail.local-Datei, um sie zu bearbeiten:
sudo nano /etc/fail2ban/jail.local
Gut zu wissen: lernen So aktivieren Sie passwortlose SSH-Anmeldungen unter LINUX.
Untersuchen Sie die jail.local-Datei
Sie sehen eine ähnliche Ausgabe wie unten gezeigt und sind möglicherweise von der Anzahl der verfügbaren Optionen überwältigt. Aber keine Sorge, wir führen Sie durch die wichtigsten Optionen.
Sie sehen ein Symbol "#" am Anfang der Zeile, um anzuzeigen, dass es sich um einen Kommentar handelt. Fail2Ban verwendet diese, um zu erklären, was eine bestimmte Einstellung bewirkt. Sie können hier einige Einstellungen aktivieren, indem Sie dieses Symbol entfernen.
Abschnitt enthält "[STANDARD]" über Optionen, die für alle Gefängnisse gelten. Dies ist die allgemeine Konfiguration von Fail2Ban. Der folgende Screenshot zeigt ein Beispiel.
Es gibt auch andere Abschnitte, die mit dem Dienstnamen beginnen. Dieses Gefängnis gilt für einen bestimmten Dienst an der Spitze der Gefängnisse der Welt.
Beispielsweise gibt es einen Abschnitt für ein Gefängnis "sshd". Dieser Abschnitt enthält die Optionen für den sshd-Dienst.
Tipp: Auch zum Thema Serverhärtung können Sie sich bei Mehr informieren Sichern Sie Ihren SSH-Server.
Aktivieren Sie die Autoban-Funktion
Gehen Sie zur Einstellung „bantime = 1hund entfernen Sie den Code "#" am Anfang der Zeile, um es zu aktivieren. Diese Zeile legt fest, wie lange Fail2Ban braucht, um die IP-Adresse zu deaktivieren. Die Standardeinheit ist XNUMX Stunde. Sie können auch andere Einheiten verwenden, z. B. Minuten (M) oder Tage (D) oder sogar wochen (w).
Sie können diesen Wert nach Belieben erhöhen oder verringern. Sie können diesen Wert beispielsweise auf 30 Meter ändern, um die Blockdauer auf 30 Minuten zu reduzieren.
Ändern Sie die Standardlänge des Anmeldefensters
Die nächsten Einstellungen sind "maxretry" und "findtime". Sie begrenzen die Anzahl der Anmeldeversuche, die ein Angreifer unternehmen kann, bevor Fail2Ban seine IP-Adresse blockiert.
Die Standardwerte für „maxretry“ und „findtime“ sind 5 und 10 m. Wenn sich eine IP innerhalb von zehn Minuten fünfmal nicht authentifizieren kann, blockiert Fail2Ban sie für die in der Bantime-Einstellung festgelegte Dauer.
Sie können diese Werte beliebig ändern. Sie können beispielsweise „maxretry“ auf 3 und „findtime“ auf 5m setzen: Fail2Ban deaktiviert eine IP-Adresse, wenn sie sich innerhalb von fünf Minuten dreimal nicht authentifizieren kann.
Aktivieren Sie die Fail2Ban-Benachrichtigungsfunktion in Linux
Die folgenden Einstellungen sind destemail, sendername und mta. Diese Einstellungen werden von Fail2Ban verwendet, um E-Mail-Benachrichtigungen zu konfigurieren.
- Die E-Mail-Einstellung ist die E-Mail-Adresse, an die das Programm seine Benachrichtigungen sendet.
- Der Name des Absenders ist der Name, der im Feld Von der Benachrichtigungs-E-Mail angezeigt wird.
- mta ist der Mail-Transfer-Agent, den Fail2Ban zum Senden von E-Mails verwendet. mta ist standardmäßig sendmail , aber Sie können es in etwas anderes wie mail ändern.
Wenn Sie E-Mail-Benachrichtigungen erhalten möchten, müssen Sie diese Zeilen auskommentieren und die entsprechenden Werte wie gezeigt eingeben.
Wenn eine Sperre auftritt, erhalten Sie eine E-Mail-Benachrichtigung mit Details zur Sperre wie gezeigt.
Erstellen Sie benutzerdefinierte Blockorders
Die nächste Einstellung ist „action_=“. Dies gibt die Aktion an, die Fail2ban ergreift, wenn es eine IP-Adresse blockiert. Standardmäßig wird iptables verwendet, um die IP zu blockieren, bis die „bantime“ abläuft.
Sie können auch andere Verfahren verwenden, wie unten gezeigt. Dieses Tutorial hält sich der Einfachheit halber an die Standardeinstellung.
- action_mw: Sendet eine E-Mail-Benachrichtigung, wenn eine IP-Adresse blockiert wird, zusammen mit relevanten WHOIS-Informationen.
- action_mwl: Versendet eine E-Mail-Benachrichtigung, wenn eine IP-Adresse gesperrt wird, zusammen mit den relevanten WHOIS-Informationen und Logfile-Einträgen, die zur Sperrung geführt haben.
- action_xarf: Sendet eine X-ARF-E-Mail-Benachrichtigung, wenn eine IP-Adresse gesperrt wird, zusammen mit den Logfile-Einträgen, die die Sperrung ausgelöst haben.
Viele andere Verfahren sind verfügbar, aber es ist unmöglich, sie alle in diesem Tutorial zu behandeln. du kannst Informieren Sie sich über alle verfügbaren Verfahren In der Fail2ban-Dokumentation.
Aktivieren Sie die Konfiguration für den Dienst
Neben der Konfiguration des Standardverhaltens von Fail2ban ist es auch möglich, vorgefertigte Filterdateien für einige beliebte Internetdienste zu verwenden. Dies sind kleine Dateien, die von Entwicklern geschrieben wurden, um nach bestimmten Protokollausgaben für einen bestimmten Server zu suchen.
Beispielsweise enthält die Datei „apache-shellshock.conf“ alle notwendigen Einstellungen, damit Fail2ban nach böswilligen Versuchen suchen kann, einen Shellshock-Fehler zu generieren.
Sie finden alle verfügbaren Filterdateien für Ihr System, indem Sie das Verzeichnis „/etc/fail2ban/filter.d“ auflisten:
ls /etc/fail2ban/filter.d
Sobald Sie die Filter kennen, die Sie verwenden möchten, weisen Sie Fail2ban an, sie während des Starts zu laden, indem Sie Ihre Datei „jail.local“ öffnen:
sudo nano /etc/fail2ban/jail.local
Erstellen Sie einen Bereich in „jail.local“, wo Sie Ihre neuen Filter aktivieren können. Ich erstelle meine eigene zwischen dem Kommentartitel und dem [INCLUDES]-Block.
Fügen Sie die Filter hinzu, die Sie aktivieren möchten. Das folgende Beispiel ist ein Snippet, das ich in meiner Konfiguration verwende:
# Kommentare: Verwenden Sie '#' für Kommentarzeilen und ';' (nach einem Leerzeichen) für Inline-Kommentare [sshd] enabled = true [nginx-bad-request] enabled = true [bitwarden] enabled = true [INCLUDES]
Wenn Sie fertig sind, speichern und schließen Sie die Datei. Starten Sie fail2ban neu, um die Änderungen zu übernehmen.
sudo systemctl restart fail2ban
Testen Sie Ihre Konfiguration
Nachdem Sie Fail2Ban unter Linux konfiguriert haben, ist es an der Zeit, es zu testen.
Die einfachste Möglichkeit, Ihre Konfiguration zu testen, besteht darin, sich mehrmals kurz hintereinander mit dem falschen Passwort anzumelden. Dazu können Sie eine SSH-Verbindung verwenden.
Versuchen Sie auf der Entsorgungsmaschine, mit dem Benutzernamen „admin“ eine SSH-Verbindung zu Ihrem Fail2ban-Server herzustellen. Ersetzen Sie „your_server_ip_address“ durch die tatsächliche IP-Adresse Ihres Fail2ban-Servers.
ssh admin@your_server_ip_address
Geben Sie ein zufälliges Passwort ein, wenn Sie dazu aufgefordert werden, und wiederholen Sie es mehrmals. Nach mehreren Versuchen sehen Sie eine Meldung, dass der Server Ihren Verbindungsversuch abgelehnt hat.
Neben der Verwendung von ssh können Sie auch andere Filterdateien in Fail2ban testen, indem Sie Fail Status ausführen. In meinem Fall verwende ich den Filter „nginx-bad-request“, der erkennt, ob ein Host den Server mit ungültigen Anfragen überschwemmt.
Wenn Sie dies wissen, können Sie diese Funktion testen, indem Sie absichtlich leere Anfragen mit curl an Ihren Webserver senden:
curl -H "User-Agent:" -H "Host:" https://ihrewebsite.com -v
Überprüfung von Fail2Ban-Routinen unter Linux
Führen Sie schließlich den folgenden Befehl auf dem Fail2ban-Server aus, um zu überprüfen, ob fail2ban die erforderlichen Regeln zu iptables hinzugefügt hat.
Der grep-Befehl filtert die Ausgabe des iptables-Befehls. Die Option -S weist iptables an, die Regeln in einem einfach zu analysierenden Format auszugeben.
sudo iptables -S | grep f2b
Sie sehen eine Ausgabe ähnlich der Abbildung unten. Das Argument „–reject-with icmp-port-unreachable“ weist iptables an, eine ICMP-Port-unreachable-Nachricht an den Client zu senden, wenn er versucht, eine Verbindung herzustellen. Sie können auch die IP-Adressen von Geräten sehen, die der Server blockiert hat.
Tipp: Sie sollten SELinux auch verwenden, um Ihren Linux-Server zu sichern.
Häufig gestellte Fragen
F1: Warum erhalte ich eine leere E-Mail-Benachrichtigung, wenn Fail2ban eine IP-Adresse blockiert?
Die Antwort: Wenn Sie eine leere E-Mail-Benachrichtigung erhalten, haben Sie wahrscheinlich Ihren Mailserver nicht richtig konfiguriert. Überprüfen Sie die Konfiguration Ihres Mailservers und stellen Sie sicher, dass er E-Mails senden kann.
F2: Wie kann ich eine IP-Adresse entsperren?
Die Antwort: Suchen Sie zuerst das Gefängnis, in dem die IP-Adresse derzeit blockiert ist: sudo fail2ban-client status , entsperren Sie dann die IP-Adresse, indem Sie Folgendes ausführen: sudo fail2ban-client set unsauber .
F3: Wie zeige ich die fail2ban-Protokolldatei an?
Die Antwort: Möglicherweise möchten Sie die fail2ban-Protokolldatei anzeigen, um Probleme zu beheben oder herauszufinden, warum die IP-Adresse blockiert wurde. Die Datei „/var/log/fail2ban.log“ enthält alle von fail2ban generierten Protokolle. Verwenden Sie den cat-Befehl, um die fail2ban-Protokolldatei anzuzeigen: cat /var/log/fail2ban.log.
F4: Ich habe mehrere Filterdateien aktiviert. Warum funktionieren die alle nicht?
Die Antwort: Dieses Problem tritt höchstwahrscheinlich auf, weil ein Filter eine andere Datei überschreibt, die ihm vorausgegangen ist. Eine Möglichkeit, dies zu beheben, besteht darin, Ihre eigene Filterdatei zu erstellen, indem Sie mehrere Filter miteinander kombinieren.
F5: Schützt Fail2ban meinen Server vor einem DoS-Angriff?
Die Antwort: ja und Nein. Zum größten Teil kann Fail2ban jede IP blockieren, die ungültige Anfragen an Ihren Server sendet. Eine der größten Einschränkungen dieses Programms besteht jedoch darin, dass es nicht auf Ereignisse reagieren kann, die keinen Protokolleintrag erzeugen. Daher ist es nach wie vor wichtig, Ihren Linux-Server mit anderen Tools gegen diese Angriffsformen abzusichern.