Ein plötzlich sprunghafter Anstieg von Aufrufen – sei es durch Bots, aggressive Scraper oder gezielte Denial-of-Service (DoS) Attacken – kann deinen Webserver schnell an seine Leistungsgrenzen bringen. Die Folge: Deine WordPress-Website reagiert extrem langsam oder ist gar nicht mehr erreichbar.
Mit dem Apache-Modul mod_evasive kannst du deinen Webserver effektiv gegen Überlastung durch einzelne IP-Adressen absichern.
Zweck von mod_evasive
mod_evasive ist ein Evasive-Maneuvers-Modul für den Apache HTTP Server. Es schützt deine Infrastruktur vor:
- HTTP-Flood-Angriffen (DoS): Verhindert, dass eine einzelne IP-Adresse hunderte Anfragen pro Sekunde an deinen Server schickt.
- Brute-Force-Attacken: Erschwert das automatisierte Ausprobieren von Formularen (z. B.
wp-login.php). - Aggressiven Web-Crawlern: Speichert Ressourcen, indem zu schnelle Scraping-Bots temporär geblockt werden.
Sobald eine IP-Adresse die definierten Limits überschreitet, antwortet Apache automatisch mit dem HTTP-Statuscode 403 Forbidden, anstatt rechenintensive PHP- und Datenbankabfragen auszuführen.
Schritt-für-Schritt-Anleitung: mod_evasive einrichten
1. Modul installieren
Installiere das Modul über die Paketverwaltung deines Servers:
sudo apt update && sudo apt install libapache2-mod-evasive -y
2. Log-Verzeichnis für gesperrte IPs erstellen
Erstelle den Ordner, in dem das Modul geblockte IP-Adressen protokolliert, und weise die passenden Rechte zu:
sudo mkdir -p /var/log/mod_evasive
sudo chown -R www-data:www-data /var/log/mod_evasive
3. Modul praxisnah konfigurieren
Öffne die Konfigurationsdatei des Moduls:
sudo nano /etc/apache2/mods-available/evasive.conf
Füge folgende praxiserprobte Werte ein, die echte Besucher nicht einschränken, aber Angreifer effektiv blockieren:
DOSHashTableSize 3097
# Max. Anfragen auf dieselbe Seite pro Sekunde
DOSPageCount 5
DOSPageInterval 1
# Max. Gesamtanfragen (inkl. Bilder, CSS, JS) auf die Website pro Sekunde
DOSSiteCount 100
DOSSiteInterval 1
# Dauer der temporären Sperre in Sekunden
DOSBlockingPeriod 60
# Log-Verzeichnis
DOSLogDir "/var/log/mod_evasive"
4. Modul aktivieren und Apache neustarten
Stelle sicher, dass das Modul in Apache geladen wird, und starte den Webserver neu:
sudo a2enmod evasive
sudo systemctl restart apache2
Schutz testen mit ApacheBench (optional)
Du kannst die Wirksamkeit direkt von einem externen Computer (z. B. deinem Mac/Linux-Laptop) mit dem Tool ab testen:
ab -n 500 -c 10 https://deine-domain.de/
Sollte der Test die Grenzen überschreiten, wirst du in der Auswertung sehen, dass ein Großteil der Anfragen mit Non-2xx responses (Status 403) abgefangen wurde, während dein Webserver stabil weiterläuft.
Fazit
mod_evasive ist eine extrem leichtgewichtige erste Verteidigungslinie auf Webserver-Ebene. Es fängt Lastspitzen ab, bevor WordPress PHP-Skripte ausführen muss, und sorgt dafür, dass deine Website auch bei Angriffen für reguläre Nutzer erreichbar bleibt.

Leave a Reply