SSH mit Fail2ban absichern
auf Ubuntu 24.04 LTS
Fail2ban ist ein Intrusion-Prevention-System, das automatisch IP-Adressen sperrt, die zu viele fehlgeschlagene Login-Versuche auf deinen Server machen (Brute-Force-Schutz). In dieser Anleitung richten wir Fail2ban auf Ubuntu 24.04 LTS ein und schützen damit den SSH-Dienst – sowie optional deinen TeamSpeak-Server.
Fail2ban installieren
Pakete aktualisieren und Fail2ban installieren:
apt update && apt install fail2ban -y
Fail2ban beim Systemstart aktivieren und starten:
systemctl enable fail2ban
systemctl start fail2ban
systemctl status fail2ban
Konfiguration: jail.local erstellen
Fail2ban verwendet jail.conf als Basis-Konfiguration.
Diese Datei nie direkt bearbeiten – sie wird bei Updates überschrieben.
Stattdessen erstellen wir eine jail.local, die Vorrang hat:
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
nano /etc/fail2ban/jail.local
Am Anfang der Datei, im Abschnitt [DEFAULT], kannst du
globale Einstellungen festlegen:
[DEFAULT]
# IP-Adressen die NIEMALS gesperrt werden (eigene IP eintragen!)
ignoreip = 127.0.0.1/8 ::1 DEINE_IP_HIER
# Wie lange wird eine IP gesperrt (in Sekunden, -1 = permanent)
bantime = 3600
# Zeitfenster für Versuche
findtime = 600
# Maximale Fehlversuche vor Sperre
maxretry = 5
findtime=600) mehr als
5 Mal (maxretry=5) einen falschen Login-Versuch macht.
Die Sperre dauert 1 Stunde (bantime=3600).
SSH Jail einrichten
Suche in der jail.local den Abschnitt [sshd] und passe
ihn wie folgt an (oder füge ihn am Ende der Datei hinzu):
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
bantime = 3600
findtime = 600
Änderungen speichern (Strg+O, Enter, Strg+X) und Fail2ban neu starten:
systemctl restart fail2ban
TeamSpeak 3 Jail (optional)
Fail2ban kann auch den TeamSpeak-ServerQuery-Port (10011) schützen.
Füge folgendes am Ende der jail.local hinzu:
[teamspeak]
enabled = true
port = 10011
filter = teamspeak
logpath = /home/ts3/teamspeak3-server_linux_amd64/logs/ts3server_*.log
maxretry = 5
bantime = 3600
findtime = 600
Erstelle dazu die passende Filter-Datei:
nano /etc/fail2ban/filter.d/teamspeak.conf
[Definition]
failregex = query from :\d+ failed
ignoreregex =
systemctl restart fail2ban
Fail2ban verwalten
Status prüfen
# Allgemeiner Status
fail2ban-client status
# Status des SSH-Jails
fail2ban-client status sshd
# Alle gesperrten IPs anzeigen
fail2ban-client status sshd | grep "Banned IP"
IP entsperren (Unban)
# IP aus dem SSH-Jail entsperren
fail2ban-client set sshd unbanip GESPERRTE_IP
# Alle Sperren zurücksetzen
fail2ban-client reload
Logs anzeigen
tail -f /var/log/fail2ban.log
Fail2ban testen
# Prüfen ob eine Regel korrekt matcht
fail2ban-regex /var/log/auth.log /etc/fail2ban/filter.d/sshd.conf
Häufige Fragen
Habe ich mich selbst ausgesperrt – was tun?
Falls du über eine andere Verbindung (z. B. Rescue-System oder Web-Console) Zugang hast:
fail2ban-client set sshd unbanip DEINE_IP
# oder alle Sperren zurücksetzen:
fail2ban-client unban --all
Wie lange ist meine Sperre wirklich aktiv?
fail2ban-client status sshd
Welches Backend nutzt Fail2ban auf Ubuntu 24.04?
Ubuntu 24.04 verwendet systemd-journald für das Logging.
Falls der SSH-Jail keine Treffer findet, passe den logpath an:
[sshd]
backend = systemd
logpath = /var/log/auth.log
Wie kombiniere ich Fail2ban mit UFW?
Fail2ban kann UFW als Ban-Action verwenden. Folge dazu unserer Anleitung Firewall mit UFW einrichten (Ubuntu 24.04).