Site icon bintorosoft.com

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

Penguin with glasses and a surprised look on his face is looking at a laptop on white background.

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

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

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

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:

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

Exit mobile version