Fail2ban Setup: Brute-Force Angriffe automatisch blockieren

Fail2ban ist ein bewährtes Sicherheitstool unter Linux, das automatisch IP-Adressen blockiert, die verdächtige Anmeldeversuche, etwa Brute-Force-Attacken auf SSH oder Webservices, durchführen. Dieses Tutorial zeigt, wie Sie Fail2ban schnell installieren, konfigurieren und betreiben, um Ihr System gegen unerlaubte Zugriffsversuche abzusichern.

Voraussetzungen

Bevor Sie starten, stellen Sie sicher, dass folgende Punkte erfüllt sind:

  • Ein Linux-Server mit Root- oder sudo-Rechten
  • SSH-Zugang zum Server
  • Grundkenntnisse in der Linux-Befehlszeile
  • Optional: Firewall konfiguriert (UFW, firewalld oder iptables)

Fail2ban installieren

Fail2ban ist in den meisten Distributionen als Paket verfügbar. Die Installation erfolgt je nach Distribution über den jeweiligen Paketmanager.

Debian / Ubuntu

sudo apt update
sudo apt install fail2ban

RHEL / CentOS / Rocky / AlmaLinux

sudo dnf install epel-release
sudo dnf install fail2ban

OpenSUSE

sudo zypper install fail2ban

Fail2ban Basis-Konfiguration

Nach der Installation befindet sich die Standardkonfiguration in /etc/fail2ban/jail.conf. Es wird empfohlen, diese Datei nicht direkt zu ändern, sondern die lokale Konfiguration in jail.local vorzunehmen.

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

Wichtige Parameter

  • ignoreip: IP-Adressen, die niemals gebannt werden sollen
  • bantime: Dauer der Sperre in Sekunden
  • findtime: Zeitraum, in dem fehlgeschlagene Logins gezählt werden
  • maxretry: Anzahl erlaubter Fehlversuche innerhalb des findtime

Beispiel für die lokale Konfiguration:

[DEFAULT]
ignoreip = 127.0.0.1/8 ::1
bantime  = 3600
findtime = 600
maxretry = 5
backend = systemd

[sshd]
enabled = true
port = ssh
logpath = /var/log/auth.log

Jails aktivieren

Jails definieren, welche Dienste überwacht werden. Das SSH-Jail ist standardmäßig häufig aktiviert, weitere Dienste können bei Bedarf hinzugefügt werden.

  • SSH: schützt SSH-Zugänge
  • Apache / Nginx: schützt Webserver gegen Brute-Force auf Login-Seiten
  • Postfix / Dovecot: schützt Mailserver
[apache-auth]
enabled  = true
port     = http,https
filter   = apache-auth
logpath  = /var/log/apache*/*error.log
maxretry = 3

Fail2ban starten und aktivieren

Nach der Konfiguration starten Sie den Dienst und aktivieren den Autostart beim Systemboot.

sudo systemctl daemon-reload
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
sudo systemctl status fail2ban

Fail2ban überwachen

Mit den folgenden Befehlen können Sie aktuelle Sperren prüfen und den Status einzelner Jails anzeigen.

# Status aller Jails
sudo fail2ban-client status

# Status eines spezifischen Jails
sudo fail2ban-client status sshd

# Eine IP manuell freigeben
sudo fail2ban-client set sshd unbanip 192.0.2.1

Logdateien und Troubleshooting

Fail2ban schreibt Logs in /var/log/fail2ban.log. Zur Fehlersuche können Sie diese analysieren:

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

Häufige Probleme:

  • Falscher logpath → Jail erkennt Fehlversuche nicht
  • IP-Adressen in ignoreip enthalten
  • Firewall blockiert das Fail2ban-Bannen

Best Practices

  • Node Exporter oder andere Monitoring-Tools für Fail2ban-Metriken einsetzen
  • Nur notwendige Jails aktivieren, um Performance zu schonen
  • Regelmäßige Updates von Fail2ban durchführen
  • Bei kritischen Servern bantime moderat setzen, z.B. 1 Stunde
  • Whitelist interner Admin-IP-Adressen in ignoreip
  • Filter anpassen für spezielle Logformate bei Custom-Services
  • Fail2ban mit Firewall kombinieren für maximale Sicherheit

Mit diesen Schritten blockiert Fail2ban automatisch IPs, die Brute-Force-Angriffe durchführen, und schützt so SSH, Webserver und weitere Dienste effizient. Regelmäßige Überprüfung der Jails und Logs sorgt dafür, dass legitimer Traffic nicht unbeabsichtigt gesperrt wird.

Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

Meine Leistungen umfassen:

  • Professionelle Konfiguration von Routern und Switches

  • Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen

  • Erstellung von Topologien und Simulationen in Cisco Packet Tracer

  • Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG

  • Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible

  • Erstellung von Skripten für wiederkehrende Netzwerkaufgaben

  • Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege

  • Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Related Articles