Fail2ban für Nginx/Apache: Brute-Force und Bots blockieren

Brute-Force-Angriffe, Bot-Traffic und automatisierte Exploit-Versuche stellen eine erhebliche Gefahr für Webserver dar. Fail2ban ist ein bewährtes Tool, das Log-Dateien überwacht und Angreifer automatisch anhand von IP-Adressen blockiert. In diesem Leitfaden lernen Einsteiger, IT-Studierende und Junior Network Engineers praxisnah, wie Fail2ban für Nginx und Apache eingerichtet, konfiguriert und optimiert wird.

Voraussetzungen

  • Linux-Server (Ubuntu/Debian oder CentOS/RHEL)
  • Root- oder Sudo-Zugriff
  • Nginx oder Apache installiert und laufend
  • Grundkenntnisse in Terminal und Texteditoren

Fail2ban Installation

Fail2ban kann über die Paketmanager installiert werden.

# Ubuntu/Debian
sudo apt update
sudo apt install fail2ban

# CentOS/RHEL
sudo yum install epel-release
sudo yum install fail2ban

# Dienst starten und aktivieren
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
sudo systemctl status fail2ban

Fail2ban Konfiguration

Die Hauptkonfiguration erfolgt über /etc/fail2ban/jail.local, das lokale Anpassungen ermöglicht.

Beispiel für Nginx

[nginx-http-auth]
enabled = true
filter = nginx-http-auth
port = http,https
logpath = /var/log/nginx/error.log
maxretry = 5
bantime = 3600

Beispiel für Apache

[apache-auth]
enabled = true
filter = apache-auth
port = http,https
logpath = /var/log/apache2/error.log
maxretry = 5
bantime = 3600

Filter definieren

Filter-Dateien befinden sich unter /etc/fail2ban/filter.d/ und enthalten reguläre Ausdrücke zur Erkennung von Angriffen.

# nginx-http-auth.conf Beispiel
[Definition]
failregex = ^ -.*"(GET|POST).*HTTP.*" 401
ignoreregex =

Test und Status prüfen

# Status aller Jails
sudo fail2ban-client status

Status eines spezifischen Jails

sudo fail2ban-client status nginx-http-auth

IP manuell bannen

sudo fail2ban-client set nginx-http-auth banip 192.168.330.50

IP entbannen

sudo fail2ban-client set nginx-http-auth unbanip 192.168.330.50

Erweiterte Einstellungen

  • bantime: Dauer der Sperre in Sekunden
  • findtime: Zeitraum, in dem maxretry Versuche gezählt werden
  • Eigene Filter für Bot-Traffic erstellen
  • Mail-Alerts aktivieren für kritische Jails

Netzwerk- und Subnetzplanung

Fail2ban sperrt IP-Adressen temporär. In Multi-Server-Umgebungen ist es wichtig, die Netzwerktopologie zu berücksichtigen, um interne IPs nicht versehentlich zu blockieren.

IPv4 Subnetz

<math>
Webserver-IP = 192.168.340.10/24
Subnetzadresse = 192.168.340.10 & 255.255.255.0 = 192.168.340.0
Broadcastadresse = 192.168.340.0 | ~255.255.255.0 = 192.168.340.255
</math>

IPv6 Subnetz

<math>
Webserver-IP = 2001:db8:abcd:340::10/64
Subnetzadresse = 2001:db8:abcd:340:: & ffff:ffff:ffff:ffff:: = 2001:db8:abcd:340::0
Broadcastadresse = 2001:db8:abcd:340:ffff:ffff:ffff:ffff
</math>

Best Practices

  • Nur notwendige Jails aktivieren (HTTP-Auth, SSH, etc.)
  • Maxretry und bantime an Last und Sicherheit anpassen
  • Eigene Filter für spezifische Applikationen erstellen
  • Mail-Alerts für kritische Sperren aktivieren
  • Fail2ban regelmäßig aktualisieren
  • Logs überwachen und auf Fehlalarme prüfen
  • Interne Netzwerke von Sperren ausnehmen
  • Backup der Konfigurationen erstellen
  • Testumgebung für neue Filter nutzen
  • Integration in Monitoring-Systeme (z. B. Grafana, Prometheus) zur Echtzeit-Überwachung

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