Nginx mit Modsecurity

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

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.
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.