Schützen Sie SSH mit Fail2ban auf Ubuntu 24.04: Schritt-für-Schritt-Anleitung
So installieren und konfigurieren Sie Fail2ban auf Ubuntu 24.04, um Brute-Force-Angriffe gegen SSH automatisch zu blockieren: dediziertes Gefängnis, Testverbot und Entsperren einer IP.
Jeder, der einen Linux-Server verwaltet, auf den aus dem Internet zugegriffen werden kann, weiß: Sobald der SSH-Port ausgesetzt ist, beginnen automatisierte Bot-Zugriffsversuche, die Benutzernamenkombinationen und wiederholte Passwörter erleben. Es ist klassischBrutal Force AttackEine robuste Passwort- oder Schlüsselauthentifizierung verringert bereits das Risiko, hindert Bots jedoch nicht daran, weiterhin zu klopfen, Ressourcen zu besetzen und Protokolle zu füllen. Die häufigste Lösung, um das Problem einzudämmen, heißtFail2ban, und in diesem Handbuch sehen wir, wie man es installiert und Schritt für Schritt konfiguriertUbuntu 24.04 LTS (Noble Numbat).
Was ist Fail2ban und wie es funktioniert
Fail2ban ist ein Dienst (Demon), der die Systemprotokolldateien in Echtzeit analysiert - in unserem Fall diejenigen, die sich auf den SSH-Zugriff beziehen - und nach Mustern sucht, die auf fehlgeschlagene Anmeldeversuche hinweisen. Wenn dieselbe IP-Adresse eine Anzahl fehlgeschlagener Versuche in einem bestimmten Zeitintervall überschreitet, greift Fail2ban automatisch ein, indem eine Firewall-Regel erstellt wird, die diese IP für einen festgelegten Zeitraum blockiert. Dieser Überwachungs- und Sperrmechanismus heißt Gefängnis(wörtlich "Gefängnis"): Jedes Gefängnis ist einem bestimmten Dienst gewidmet (SSH, einem Webserver, einem Mailserver usw.) und hat seine eigenen Regeln.
Unter Ubuntu 24.04 ist Fail2ban als offizielles Paket im Repository verfügbarUniversumsuniversum(Version 1.0.2 zum Zeitpunkt, an dem wir schreiben), so dass Sie keine externen Repositories hinzufügen müssen: Solange das Universum-Repository aktiviert ist, was standardmäßig in den Standardinstallationen von Ubuntu Server und Desktop passiert.
Voraussetzungen
- Ein Ubuntu 24.04 Servermit SSH-Zugang und einem Benutzer mit Privilegien
sudo. - Zugriff auf die Kommandozeile, lokal oder über SSH (achten Sie darauf, die aktuelle Sitzung nicht zu schließen, bevor Sie überprüfen, ob die neuen Regeln Sie auch nicht blockieren: später werden wir sehen, wie Sie es vermeiden können).
- Optional, aber empfohlen: aAktive Firewall(UFW ist der standardmäßig in Ubuntu enthaltene), den Fail2ban als "armierten Arm" verwenden wird, um die Blöcke anzuwenden.
1. Installieren Sie Fail2ban
Aktualisieren Sie die Paketliste und installieren Sie Fail2ban mit:
sudo apt update
sudo apt install fail2banAm Ende der Installation startet der Dienst bereits mit der Standardkonfiguration aktiv, aber es ist gut, den Status sofort zu überprüfen:
sudo systemctl status fail2banWenn das System noch nicht aktiviert ist, aktivieren Sie es mit:
sudo systemctl enable fail2ban2. Erstellen einer benutzerdefinierten Konfiguration (jail.local)
Fail2ban liest seine Einstellungen aus verschiedenen Dateien. Die Hauptsache,/etc/fail2ban/jail.conf, wird zu jedem Update des Pakets überschrieben: aus diesem Grunddarf niemals direkt geändert werden. Anpassungen sollten in einer separaten Datei geschrieben werden,jail.local, dass Fail2ban nach liest und dass es immer den Standardeinstellungen vorausgeht. Erstellen Sie die Datei, indem Sie die ursprüngliche Datei als Grundlage kopieren:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.localAbschnitt[DEFAULT], die für alle gefängnisse gilt, sofern nicht anders angegeben, finden sie drei schlüsselparameter, die sie vor der bearbeitung verstehen sollten:.
- Verbote: wie lange eine IP nach Überschreiten des Versuchsschwellenwerts blockiert bleibt (z.B.
10mfür zehn Minuten,1hEine Stunde lang. - Zeit finden: das Zeitfenster, in dem fehlgeschlagene Versuche gezählt werden (standardmäßig 10 Minuten).
- Maxretion: Anzahl der vor dem Block erlaubten fehlgeschlagenen Versuche (Standard 5).
Für ein aggressiveres SSH-Gefängnis gegenüber Bots, ohne zu viele falsche Positive für einen menschlichen Benutzer zu riskieren, der sein Passwort einmal falsch interpretiert, Werte wiemaxretry = 4,findtime = 10mundbantime = 1hIch bin ein guter Ausgangspunkt. Wenn Ihre feste IP bekannt ist, können Sie sie auch von Steuerelementen ausschließen, indem Sie sie der Zeile hinzufügenignoreip(bereits im Abschnitt vorhanden)[DEFAULT]), trennt es von anderen mit einem Raum: Dies vermeidet es, es versehentlich während des Testens selbst auszuschließen.
3. Konfigurieren Sie das Gefängnis für SSH
Mit der Datei finden Sie den Abschnitt, der SSH gewidmet ist und mit[sshd]Stellen Sie sicher, dass dies eingestellt ist:
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = %(sshd_log)s
backend = %(sshd_backend)s
maxretry = 4
findtime = 10m
bantime = 1hDer Parameterenabled = trueDas ist es, was den Schutz für SSH tatsächlich aktiviert: In der Standardkonfiguration sind viele Gefängnisse vorhanden, aber deaktiviert, nur um den Administrator auswählen zu lassen, welche Dienste geschützt werden sollen. Wenn Sie SSH auf einem anderen Port als 22 verschoben haben (eine gängige Praxis, um das Hintergrundrauschen der Bots zu reduzieren), denken Sie daran, es im Feld anzugebenport.
Speichern Sie die Datei und starten Sie den Dienst neu, da die Änderungen Auswirkungen haben:
sudo systemctl restart fail2ban4. Stellen Sie sicher, dass das Gefängnis aktiv ist
Der Hauptbefehl zum Dialog mit Fail2ban Es istfail2ban-clientSehen Sie sich die Liste der derzeit aktiven Gefängnisse an:
sudo fail2ban-client statusFür Details des SSH-Gefängnisses im Besonderen - wie viele fehlgeschlagene Versuche es aufgezeichnet hat und welche IPs derzeit blockiert sind:
sudo fail2ban-client status sshdEs ist auch nützlich, das dedizierte Protokoll im Auge zu behalten, besonders in den ersten Tagen nach der Aktivierung, um zu verstehen, wie sich das Gefängnis in der Praxis verhält:
sudo tail -f /var/log/fail2ban.log5. Testen Sie den Block
Der realistischste Weg, das Gefängnis zu testen, besteht darin, zu versuchen, sich von einer anderen Maschine (oder von einem anderen Terminal) mit SSH zu verbinden, indem Sie freiwillig ein falsches Passwort mehrmals darunter eingeben, bis Sie den Schwellenwert überschreiten.maxretrySatz. Nach dem letzten fehlgeschlagenen Versuch sollte die IP, von der die Links kamen, als Bandit in der Ausgabe vonfail2ban-client status sshd, und weitere versuche, sich von der gleichen adresse aus zu verbinden, werden bis zum ende der.bantime.
Alternativ können Sie, wenn Sie es vorziehen, Ihre Arbeitssitzung nicht versehentlich zu blockieren, manuell ein Testverbot für eine Test-IP erzwingen (z. B. eine Adresse Ihres nicht verwendeten lokalen Netzwerks):
sudo fail2ban-client set sshd banip 192.0.2.106. Entsperren einer IP
Es kann vorkommen, dass eine legitime IP fälschlicherweise verboten wird, beispielsweise nach einigen fehlgeschlagenen Anmeldeversuchen von Ihnen. Um den Block manuell zu entfernen, ohne auf den Ablauf desbantime, verwendet:
sudo fail2ban-client set sshd unbanip 192.0.2.10Indem Sie natürlich die Beispieladresse durch die reale zum Entsperren ersetzen. Der Befehl hat sofortige Wirkung: Sie müssen den Dienst nicht neu starten.
Ein paar weitere Notizen
- Schalten Sie niemals die aktuelle SSH-Sitzung ausbevor überprüft wird, ob die neuen Regeln funktionieren: Testen Sie nach Möglichkeit durch ein zweites Terminal, während Sie eine authentifizierte Sitzung offen halten, damit Sie Konfigurationsfehler beheben können, ohne den Zugriff auf den Server zu verlieren.
- Integration mit UFWWenn Sie UFW als Firewall verwenden, erkennt Fail2ban diese automatisch und stützt sich darauf, um die Blöcke anzuwenden, ohne dass in den meisten Fällen zusätzliche Konfigurationen erforderlich sind.
- Authentifizierung mit SSH-SchlüsselFail2ban reduziert die Auswirkungen automatisierter Angriffe, bleibt aber eine zusätzliche Verteidigungsstufe. Deaktivieren Sie die Anmeldung mit Passwort für die einzigen SSH-Schlüssel, wo möglich, bleibt die effektivste Sicherheitsmaßnahme aller Zeiten.
- Wachsende Verbote: Für diejenigen, die ein erweitertes Schutzniveau wünschen, unterstützt Fail2ban auch eineVerbotedie sich bei Rückfall-IPs schrittweise erhöht, durch die Option
bantime.increment: ein nützlicher Einblick, sobald Vertrauen in die Grundkonfiguration.
Mit diesen Schritten haben Sie einen grundlegenden, aber effektiven Schutz vor automatisierten Zugriffsversuchen bei SSH, ohne manuell eingreifen zu müssen, wenn ein Bot an Ihre Servertür klopft.
Offizielle Quellen
Teilen
Was ist Ihre Reaktion?
Gefällt mir
0
Gefällt mir nicht
0
Liebe
0
Lustig
0
Wütend
0
Traurig
0
Wow
0