Anleitung · Ubuntu 24.04 LTS

SSH mit Fail2ban absichern
auf Ubuntu 24.04 LTS

📅 Aktualisiert: Mai 2026 ⏱ ca. 15–20 Minuten 😀 Schwierigkeit: Einfach 🔌 Ubuntu 24.04 LTS (Noble Numbat)

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.

⚠️ Wichtig vorab Stelle sicher, dass deine eigene IP-Adresse nicht gesperrt wird. Trage sie in der Whitelist ein (siehe unten) oder nutze SSH-Keys statt Passwort.

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
💡 Erklärung Mit diesen Einstellungen wird eine IP gesperrt, wenn sie innerhalb von 10 Minuten (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).