Nginx mit Modsecurity: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 1: | Zeile 1: | ||
| − | == | + | == Nginx mit ModSecurity und OWASP Core Ruleset schützen == |
| − | ;Dieser Artikel zeigt, wie man mit | + | ;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 === | === Voraussetzungen === | ||
| − | ; | + | ;Du benötigst ein Debian/Ubuntu-System mit Root-Rechten und einen Backend-Server (z. B. mail.it113.int). |
* apt-get update | * apt-get update | ||
| − | === Installation | + | === Installation der Komponenten === |
| − | ; | + | ;Installiere Nginx, ModSecurity und das OWASP CRS. |
* apt-get install nginx libnginx-mod-security modsecurity-crs -y | * 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 Nginx- | + | ;Bearbeite die globale Nginx-Konfiguration. |
* nano /etc/nginx/nginx.conf | * 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 === | === Nginx starten === | ||
| − | ;Starte Nginx, um die Konfiguration zu | + | ;Starte Nginx, um die Konfiguration zu laden. |
* systemctl restart nginx | * systemctl restart nginx | ||
| − | === | + | === Schutzmechanismen testen === |
| − | ; | + | ;Teste den WAF mit simulierten Angriffen. |
| − | * curl " | + | * curl "https://revproxy.it113.int/?q=' or '1'='1" |
| + | * curl "https://revproxy.it113.int/?cmd=cat%20/etc/passwd" | ||
| − | ;Erwartete Ausgabe: | + | ;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 | * cat /var/log/modsecurity/audit.log | ||
| + | * nginx -V | ||
| − | + | ;Stelle sicher, dass "--with-http_modsecurity_module" in der Ausgabe von nginx -V erscheint. | |
| − | + | === Hinweise === | |
| − | ;Die | + | ;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. | ||
Version vom 27. März 2025, 20:06 Uhr
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.