WAF auf Linux: ModSecurity mit Nginx/Apache einrichten

Eine Web Application Firewall (WAF) schützt Webanwendungen vor Angriffen wie SQL Injection, XSS oder Remote File Inclusion. ModSecurity ist eine weit verbreitete WAF, die sich nahtlos in Apache und Nginx integrieren lässt. In diesem Leitfaden erfahren Einsteiger, IT-Studierende und Junior Network Engineers, wie ModSecurity installiert, konfiguriert und für maximale Sicherheit optimiert wird.

Voraussetzungen

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

ModSecurity Installation

Die Installation erfolgt über die Paketmanager und erfordert das passende Modul für den Webserver.

Apache

# Ubuntu/Debian
sudo apt update
sudo apt install libapache2-mod-security2

CentOS/RHEL

sudo yum install mod_security mod_security_crs

Apache neu starten

sudo systemctl restart apache2
sudo systemctl enable apache2

Nginx

Für Nginx wird ModSecurity als dynamisches Modul oder über Nginx Plus integriert.

# Ubuntu/Debian
sudo apt install libnginx-mod-security

# Dienst starten und Nginx neu laden
sudo systemctl restart nginx
sudo systemctl enable nginx

Grundkonfiguration

Die Hauptkonfiguration befindet sich in /etc/modsecurity/modsecurity.conf. Wichtige Parameter:

# Aktivierung
SecRuleEngine On

# Logging
SecAuditEngine RelevantOnly
SecAuditLog /var/log/modsec_audit.log

# Request Body Limit
SecRequestBodyLimit 13107200
SecRequestBodyInMemoryLimit 131072

# Anomaly Mode
SecRuleRemoveById 981176

OWASP Core Rule Set (CRS) aktivieren

CRS bietet vordefinierte Regeln für gängige Webangriffe.

# CRS aktivieren
sudo cp -R /usr/share/modsecurity-crs/ /etc/modsecurity/
sudo ln -s /etc/modsecurity/crs-setup.conf.example /etc/modsecurity/crs-setup.conf
sudo ln -s /etc/modsecurity/rules/*.conf /etc/modsecurity/activated_rules/

Testen der WAF

Nach der Aktivierung sollten Testangriffe durchgeführt werden, z. B. XSS oder SQL Injection-Simulationen.

# Beispiel Test XSS
curl -H "User-Agent: <script>alert(1)</script>" http://localhost

# Prüfen der Logs
tail -f /var/log/modsec_audit.log

Whitelist und Anpassungen

Legitime Anfragen, die blockiert werden, können mit Whitelist-Regeln freigegeben werden:

SecRule REQUEST_URI "@beginsWith /safe_path/" "id:1001,phase:1,allow,ctl:ruleEngine=Off"

Integration in Web-Stack

  • Apache: Aktivierung über a2enmod security2 und Include modsecurity.conf
  • Nginx: Aktivierung über modsecurity on; in nginx.conf
  • Zusammenarbeit mit Reverse Proxies möglich
  • Logs für Monitoring und Analyse zentralisieren

Netzwerk- und Subnetzplanung

Die WAF sollte im internen Netzwerk vor den Webservern platziert werden, um allen Traffic zu kontrollieren.

IPv4 Subnetz

<math>
WAF-IP = 192.168.350.10/24
Subnetzadresse = 192.168.350.10 & 255.255.255.0 = 192.168.350.0
Broadcastadresse = 192.168.350.0 | ~255.255.255.0 = 192.168.350.255
</math>

IPv6 Subnetz

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

Best Practices

  • SecRuleEngine aktivieren (On)
  • OWASP CRS für Schutz gegen gängige Angriffe nutzen
  • Audit-Logs regelmäßig prüfen und analysieren
  • Legitime Pfade bei Bedarf whitelisten
  • Integration mit Reverse Proxies oder Load Balancer für Traffic-Kontrolle
  • Regelmäßige Updates von ModSecurity und CRS
  • Ressourcenlimits setzen (Request Body Limit, Memory)
  • Separate Logging-Verzeichnisse und Zugriffsrechte beachten
  • Testumgebung für neue Regeln verwenden
  • Subnetze für Webserver, WAF und Backend sauber planen

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