Linux Security

Fail2Ban unter Debian 13 installieren und absichern – Schritt für Schritt

Fail2Ban gehört zu den wichtigsten Sicherheitswerkzeugen für Linux-Server. Es überwacht Logdateien auf verdächtige Aktivitäten wie fehlgeschlagene Login-Versuche und sperrt angreifende IP-Adressen automatisch über die Firewall.

3 min Lesezeit
Grafik: Fail2Ban unter Debian 13: Server effektiv schützen

Gerade Server, die über SSH, Webserver, Mailserver oder andere öffentlich erreichbare Dienste verfügen, werden permanent von Bots und Angreifern gescannt. Bereits wenige Minuten nach der Bereitstellung eines Servers sind oft die ersten Login-Versuche im Log sichtbar.

In diesem Artikel zeige ich ausführlich, wie du Fail2Ban unter Debian 13 installierst, konfigurierst und optimal mit UFW kombinierst.


Was ist Fail2Ban?

Fail2Ban analysiert Logdateien und sucht nach definierten Mustern.

Beispiele:

  • Falsche SSH-Passwörter
  • Brute-Force-Angriffe auf Webseiten
  • Fehlgeschlagene FTP-Anmeldungen
  • Mailserver-Angriffe
  • Nextcloud-Loginversuche

Wird ein Schwellwert überschritten, sperrt Fail2Ban die IP-Adresse automatisch für einen festgelegten Zeitraum.

Typischer Ablauf:

  1. Angreifer versucht 5-mal SSH-Passwörter zu erraten.
  2. Fail2Ban erkennt die Fehlversuche.
  3. Die IP wird in der Firewall blockiert.
  4. Nach Ablauf der Sperrzeit wird die Blockierung wieder entfernt.

Warum Fail2Ban verwenden?

Vorteile:

✅ Schutz vor Brute-Force-Angriffen

✅ Automatische IP-Sperrung

✅ Unterstützt zahlreiche Dienste

✅ Geringer Ressourcenverbrauch

✅ Einfache Integration in UFW

✅ Open Source


System aktualisieren

Vor der Installation sollte Debian aktualisiert werden:

sudo apt update
sudo apt upgrade -y

Fail2Ban installieren

Unter Debian 13 befindet sich Fail2Ban direkt in den offiziellen Paketquellen.

Installation:

sudo apt install fail2ban -y

Anschließend prüfen:

fail2ban-client -V

Beispiel:

1.1.x

Dienststatus prüfen

Nach der Installation startet der Dienst automatisch.

Status anzeigen:

sudo systemctl status fail2ban

Beispiel:

● fail2ban.service - Fail2Ban Service
   Loaded: loaded
   Active: active (running)

Automatischen Start aktivieren

Normalerweise bereits aktiv:

sudo systemctl enable fail2ban

Konfigurationsdateien verstehen

Wichtige Verzeichnisse:

/etc/fail2ban/

Inhalt:

action.d/
filter.d/
jail.conf
jail.d/

Niemals jail.conf bearbeiten

Die Datei:

/etc/fail2ban/jail.conf

wird bei Updates überschrieben.

Stattdessen:

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

oder besser:

sudo nano /etc/fail2ban/jail.local

Grundkonfiguration erstellen

Datei anlegen:

sudo nano /etc/fail2ban/jail.local

Inhalt:

[DEFAULT]

ignoreip = 127.0.0.1/8 ::1
bantime = 1h
findtime = 10m
maxretry = 5

banaction = ufw

Bedeutung:

EinstellungBedeutungbantimeSperrdauerfindtimeZeitraummaxretryFehlversucheignoreipNie sperrenbanactionSperrmethodeEigene IP von Sperren ausnehmen

Sehr wichtig:

ignoreip = 127.0.0.1/8 ::1 1.2.3.4

Oder ganzes Netzwerk:

ignoreip = 127.0.0.1/8 ::1 192.168.1.0/24

SSH-Schutz aktivieren

Unterhalb der DEFAULT-Konfiguration:

[sshd]

enabled = true
port = ssh
logpath = %(sshd_log)s
backend = systemd

Speichern.


Konfiguration testen

sudo fail2ban-client -t

Ausgabe:

OK

Fail2Ban neu starten

sudo systemctl restart fail2ban

Status prüfen:

sudo systemctl status fail2ban

Aktive Jails anzeigen

Alle aktiven Regeln:

sudo fail2ban-client status

Beispiel:

Status
|- Number of jail: 1
`- Jail list: sshd

Details einer Jail anzeigen

sudo fail2ban-client status sshd

Beispiel:

Status for the jail: sshd

Currently failed: 2
Currently banned: 1

Gebannte IPs anzeigen

sudo fail2ban-client status sshd

Ausgabe:

Banned IP list:
203.0.113.10
198.51.100.15

IP-Adresse manuell sperren

sudo fail2ban-client set sshd banip 1.2.3.4

IP-Adresse entsperren

sudo fail2ban-client set sshd unbanip 1.2.3.4

Integration mit UFW

Falls UFW bereits installiert ist:

Firewallstatus prüfen:

sudo ufw status

Fail2Ban kann direkt UFW-Regeln erzeugen.

Empfohlene Einstellung:

banaction = ufw

SSH-Port geändert?

Falls SSH beispielsweise auf Port 2222 läuft:

[sshd]

enabled = true
port = 2222
backend = systemd

Danach:

sudo systemctl restart fail2ban

Permanente Sperren einrichten

Für besonders aggressive Bots:

bantime = 7d

Oder:

bantime = -1

Unbegrenzte Sperre.


Wiederholungstäter länger sperren

Moderne Fail2Ban-Versionen unterstützen inkrementelle Sperrzeiten.

bantime.increment = true
bantime.factor = 2

Beispiel:

AngriffSperre1. Mal1 Stunde2. Mal2 Stunden3. Mal4 Stunden4. Mal8 StundenLogdateien prüfen

Fail2Ban schreibt nach:

sudo tail -f /var/log/fail2ban.log

Beispiel:

Ban 203.0.113.10
Unban 203.0.113.10

Nützliche Befehle

Dienst starten:

sudo systemctl start fail2ban

Dienst stoppen:

sudo systemctl stop fail2ban

Dienst neu laden:

sudo systemctl reload fail2ban

Konfiguration testen:

sudo fail2ban-client -t

Status:

sudo fail2ban-client status

Empfohlene Konfiguration für Debian-Server

[DEFAULT]

ignoreip = 127.0.0.1/8 ::1
banaction = ufw

findtime = 10m
maxretry = 5

bantime = 1h

bantime.increment = true
bantime.factor = 2

[sshd]

enabled = true
port = ssh
backend = systemd

Zusätzliche Schutzmaßnahmen

Fail2Ban ersetzt keine sichere Serverkonfiguration.

Zusätzlich empfehlenswert:

  • SSH-Schlüssel statt Passwörter verwenden
  • Root-Login deaktivieren
  • SSH-Port ändern (z. B. 2222)
  • UFW aktivieren
  • Regelmäßige Updates installieren
  • Starke Passwörter verwenden
  • Optional einen Honeypot wie Cowrie einsetzen


Fail2Ban gehört auf praktisch jeden öffentlich erreichbaren Debian-Server. Die Installation dauert nur wenige Minuten, erhöht aber die Sicherheit erheblich. Besonders in Kombination mit UFW, einem geänderten SSH-Port und SSH-Schlüsseln werden die meisten automatisierten Brute-Force-Angriffe bereits im Ansatz gestoppt.

Für typische Debian-13-Server reicht oft schon eine einfache SSH-Jail aus, um täglich tausende automatisierte Loginversuche zuverlässig abzuwehren. Ergänzt um inkrementelle Sperrzeiten und eine saubere Firewall-Konfiguration erhältst du einen sehr effektiven Basisschutz gegen die häufigsten Angriffe aus dem Internet.