Was dieses Modul tut #
fail2ban ist der Wächter, der die Protokolle deines Servers überwacht und, wenn er bösartige Zugriffsversuche erkennt (zum Beispiel viele Passwort-Fehlschläge per SSH), automatisch die schuldige IP für eine Weile sperrt. Jeder überwachte Dienst ist in einer Jail organisiert (zum Beispiel sshd).
Das Modul fail2ban gibt dir die Kontrolle über diese Sperren zur Laufzeit, ohne dass du dir die Syntax von fail2ban-client merken musst: frage den Status der Jails ab, liste auf, wer gesperrt ist, prüfe, ob eine bestimmte IP blockiert ist, sperre oder entsperre von Hand, entsperre in einem Notfall alles auf einmal und lade die Konfiguration nach einer Änderung neu.
Dieses Modul wirkt auf ein bereits installiertes und laufendes fail2ban. Alle Unterbefehle fragen den Zustand des Dienstes ab oder verändern ihn, deshalb benötigen sie root-Rechte (nutze sudo). Wenn du dich durch deine eigene IP ausgesperrt hast, springe direkt zur Not-Entsperrung.
Häufige Aufgaben #
Wähle, was du tun willst. Jedes Rezept bringt den Befehl fertig geschrieben mit — tausche einfach die IP oder die Jail gegen deine und drücke Kopieren.
1
Status und Jails ansehen
Prüfe auf einen Blick, ob fail2ban aktiv ist und wie viele gesperrt sind.
Verbinde dich per SSH mit deinem Server als Benutzer ubuntu und frage den allgemeinen Status ab:
$ sudo imaxe fail2ban statusWillst du es maschinenlesbar, für ein Skript oder ein Dashboard? Füge --json hinzu:
$ sudo imaxe fail2ban status --jsonsshd) und die Anzahl der gesperrten IPs in jeder.2
Sehen, welche IPs gesperrt sind
Liste die aktiven Sperren auf, von allen Jails oder von einer bestimmten.
Alle gesperrten IPs, aus allen Jails auf einmal:
$ sudo imaxe fail2ban bannedInteressiert dich nur eine Jail? Gib sie als Argument an:
$ sudo imaxe fail2ban banned sshd3
Prüfen, ob eine IP gesperrt ist
Finde heraus, in welchen Jails eine bestimmte Adresse blockiert ist.
Frage direkt nach der IP; es sagt dir, in welchen Jails sie gesperrt erscheint:
$ sudo imaxe fail2ban check 203.0.113.74
Eine IP sperren oder entsperren
Blockiere von Hand eine missbräuchliche Adresse oder befreie einen legitimen Benutzer.
Sperre eine IP in einer bestimmten Jail (gibt es nur eine Jail, wird sie automatisch abgeleitet):
$ sudo imaxe fail2ban ban 203.0.113.7 --jail sshdHast du jemand Legitimes gesperrt? Entsperre ihn aus allen Jails auf einmal:
$ sudo imaxe fail2ban unban 203.0.113.7imaxe fail2ban check auf dieselbe IP.5
Alles entsperren (Notfall)
Du hast dich ausgesperrt: befreie alle IPs aus allen Jails.
Wenn deine eigene IP hängengeblieben ist und du sofort wieder Zugriff brauchst, entsperre alle. Füge --yes hinzu, um die Bestätigung zu überspringen:
$ sudo imaxe fail2ban unban-all --yesLade nach einer Änderung an der Jail-Konfiguration diese neu, damit sie greift:
$ sudo imaxe fail2ban reloadunban-allEs ist eine für die Sperren destruktive Operation: sie lässt alle IPs ohne Blockierung, auch die bösartigen. Nutze sie nur, um im Notfall den Zugriff wiederzuerlangen, und prüfe danach den Status mit imaxe fail2ban status.
Synopsis #
imaxe fail2ban <subcomando> [<ip>|<jail>] [--jail JAIL] [flags]Alle Unterbefehle benötigen root-Rechte (nutze sudo), weil sie den Zustand von fail2ban über fail2ban-client abfragen oder verändern. Füge --json zu status, banned oder check hinzu, um maschinenlesbare Ausgabe für Scripting zu erhalten.
Unterbefehle #
| Unterbefehl | Was er tut | Relevante Flags |
|---|---|---|
| status | Status von fail2ban: aktiv, Jails und Anzahl der gesperrten IPs pro Jail. | --json |
| banned | Listet die gesperrten IPs auf (alle Jails oder eine bestimmte). | --json |
| check | Gibt an, in welchen Jails eine IP gesperrt ist. | --json |
| ban | Sperrt manuell eine IP in einer Jail. | --jail |
| unban | Entsperrt eine IP aus allen Jails. | — |
| unban-all | NOTFALL: entsperrt ALLE IPs aus allen Jails. | --yes |
| reload | Lädt die Konfiguration von fail2ban neu (validiert jail.local). | — |
Argumente und Flags #
| Argument / Flag | Typ | Standard | Beschreibung |
|---|---|---|---|
| <ip> erf. | string | — | Die IP, auf die die Operation wirkt. Pflicht bei check, ban und unban. |
| <jail> | string | alle | Bei banned, bestimmte Jail zum Auflisten. Ohne Argument werden alle Jails aufgelistet. |
| --jail | string | auto | Bei ban, Ziel-Jail der Sperre. Gibt es nur eine Jail, wird sie automatisch abgeleitet. |
| --yes | bool | false | Bei unban-all, bestätigt ohne Rückfrage (für die Sperren destruktive Operation). |
| --json | bool | false | Bei status/banned/check, gibt das Ergebnis als JSON auf stdout aus. |
Dateien und Pfade #
| Pfad | Inhalt |
|---|---|
| /etc/fail2ban/jail.local | Lokale Konfiguration von fail2ban: aktive Jails, Sperrzeiten und Schwellenwerte. Das, was reload validiert. |
| /var/run/fail2ban/fail2ban.sock | Steuer-Socket, über den fail2ban-client mit dem Dienst kommuniziert. |
| /var/log/fail2ban.log | Protokoll von fail2ban selbst: Sperren, Entsperren und Neuladen. |
Exit-Codes und Logs #
Jede Ausführung liefert einen Code zurück, den du mit echo $? prüfen kannst — nützlich zum Verketten in Skripten:
Verfolge das Log live, während du Fehler suchst:
$ sudo journalctl -u fail2ban -f
$ sudo tail -f /var/log/fail2ban.logFehlerbehebung #
| Symptom | Wahrscheinliche Ursache | Lösung |
|---|---|---|
| Es erscheint SERVICE (Code 3) | fail2ban ist gestoppt oder der Socket antwortet nicht. | Starte den Dienst mit systemctl start fail2ban und versuche es erneut. |
| Es erscheint JAIL (Code 4) | Die Jail von --jail existiert nicht, oder es gibt mehrere und sie lässt sich nicht ableiten. | Sieh die Jails mit imaxe fail2ban status an und gib die richtige in --jail an. |
| Es erscheint RELOAD (Code 5) | Es gibt einen Syntaxfehler in jail.local. | Korrigiere /etc/fail2ban/jail.local und starte reload erneut. |
| Ich habe mich per SSH ausgesperrt | Deine eigene IP hat Fehlschläge angehäuft und wurde in sshd gesperrt. | Entsperre sie über einen anderen Weg mit unban oder befreie alle mit unban-all --yes. |
Steckst du beim Modul Fail2ban fest?
Schreib uns mit der Ausgabe von «imaxe <module> status --json» und wir antworten dir schnell.