Nginx mit Modsecurity
Version vom 27. März 2025, 20:06 Uhr von Thomas.will (Diskussion | Beiträge) (→Virtuellen Host konfigurieren)
Nginx mit ModSecurity und OWASP Core Ruleset schützen
- Dieser Artikel zeigt, wie man Nginx als Reverse Proxy mit ModSecurity v3 und OWASP CRS einrichtet, um Angriffe wie SQL-Injection oder Command-Injection zu blockieren.
Voraussetzungen
- Du benötigst ein Debian/Ubuntu-System mit Root-Rechten und einen Backend-Server (z. B. mail.it113.int).
- apt-get update
Installation der Komponenten
- Installiere Nginx, ModSecurity und das OWASP CRS.
- apt-get install nginx libnginx-mod-security modsecurity-crs -y
- git clone https://github.com/coreruleset/coreruleset /etc/nginx/modsec/crs
- cp /etc/nginx/modsec/crs/crs-setup.conf.example /etc/nginx/modsec/crs/crs-setup.conf
ModSecurity global aktivieren
- Bearbeite die globale Nginx-Konfiguration.
- nano /etc/nginx/nginx.conf
modsecurity on; modsecurity_rules_file /etc/nginx/modsec/main.conf;
Hauptregeldatei erstellen
- Erstelle die ModSecurity-Regeldatei mit CRS-Einbindung.
- nano /etc/nginx/modsec/main.conf
Include /etc/nginx/modsec/crs/crs-setup.conf Include /etc/nginx/modsec/crs/rules/*.conf
Virtuellen Host konfigurieren
- Richte einen Reverse Proxy mit SSL und WAF ein.
- nano /etc/nginx/conf.d/revproxy.it113.int.conf
server {
listen 443 ssl;
server_name revproxy.it113.int;
ssl_certificate /etc/nginx/ssl/revproxy.it113.int.crt;
ssl_certificate_key /etc/nginx/ssl/revproxy.it113.int.key;
modsecurity on;
modsecurity_rules_file /etc/nginx/modsec/main.conf;
location / {
proxy_pass https://mail.it113.int;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Nginx starten
- Starte Nginx, um die Konfiguration zu laden.
- systemctl restart nginx
Schutzmechanismen testen
- Teste den WAF mit simulierten Angriffen.
- curl "https://revproxy.it113.int/?q=' or '1'='1"
- curl "https://revproxy.it113.int/?cmd=cat%20/etc/passwd"
- Erwartete Ausgabe
- 403 Forbidden, da ModSecurity die Angriffe blockiert.
Fehlerbehandlung
- Falls nichts blockiert wird, prüfe die Logs und Konfiguration.
- cat /var/log/modsecurity/audit.log
- nginx -V
- Stelle sicher, dass "--with-http_modsecurity_module" in der Ausgabe von nginx -V erscheint.
Hinweise
- ModSecurity v3 mit OWASP CRS schützt vor SQLi, XSS, RCE, LFI, RFI und mehr.
- Die Regeln können in /etc/nginx/modsec/crs/crs-setup.conf angepasst werden.