<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.ixheim.de/index.php?action=history&amp;feed=atom&amp;title=Nginx_mit_Modsecurity_mit_Whitelists</id>
	<title>Nginx mit Modsecurity mit Whitelists - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.ixheim.de/index.php?action=history&amp;feed=atom&amp;title=Nginx_mit_Modsecurity_mit_Whitelists"/>
	<link rel="alternate" type="text/html" href="https://wiki.ixheim.de/index.php?title=Nginx_mit_Modsecurity_mit_Whitelists&amp;action=history"/>
	<updated>2026-06-29T03:52:42Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Xinux Wiki</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://wiki.ixheim.de/index.php?title=Nginx_mit_Modsecurity_mit_Whitelists&amp;diff=64508&amp;oldid=prev</id>
		<title>Thomas.will: Die Seite wurde neu angelegt: „= NGINX mit ModSecurity und Whitelist-Policy =  Diese Anleitung zeigt den Aufbau einer Web Application Firewall mit NGINX und ModSecurity v3. Zuerst wird ModSe…“</title>
		<link rel="alternate" type="text/html" href="https://wiki.ixheim.de/index.php?title=Nginx_mit_Modsecurity_mit_Whitelists&amp;diff=64508&amp;oldid=prev"/>
		<updated>2025-08-28T18:44:25Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „= NGINX mit ModSecurity und Whitelist-Policy =  Diese Anleitung zeigt den Aufbau einer Web Application Firewall mit NGINX und ModSecurity v3. Zuerst wird ModSe…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= NGINX mit ModSecurity und Whitelist-Policy =&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung zeigt den Aufbau einer Web Application Firewall mit NGINX und ModSecurity v3. Zuerst wird ModSecurity mit OWASP Core Rule Set (CRS) als Reverse Proxy aktiviert, anschließend wird eine Whitelist-Policy ergänzt, die nur definierte Methoden und Pfade zulässt. Alles andere wird standardmäßig blockiert.&lt;br /&gt;
&lt;br /&gt;
== ModSecurity mit OWASP CRS aktivieren ==&lt;br /&gt;
* Pakete installieren&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt install nginx libmodsecurity3 libnginx-mod-http-modsecurity git apache2-utils -y&lt;br /&gt;
&lt;br /&gt;
* Verzeichnis für Konfiguration anlegen&lt;br /&gt;
 sudo mkdir -p /etc/nginx/modsecurity&lt;br /&gt;
&lt;br /&gt;
* OWASP CRS herunterladen&lt;br /&gt;
 cd /etc/nginx/modsecurity&lt;br /&gt;
 sudo git clone https://github.com/coreruleset/coreruleset.git&lt;br /&gt;
 sudo cp coreruleset/crs-setup.conf.example coreruleset/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
* Basis-Konfiguration /etc/nginx/modsecurity/modsecurity.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SecRuleEngine On&lt;br /&gt;
SecAuditEngine RelevantOnly&lt;br /&gt;
SecAuditLog /var/log/nginx/modsec_audit.log&lt;br /&gt;
&lt;br /&gt;
# OWASP CRS laden&lt;br /&gt;
Include /etc/nginx/modsecurity/coreruleset/crs-setup.conf&lt;br /&gt;
Include /etc/nginx/modsecurity/coreruleset/rules/*.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* NGINX-Snippet /etc/nginx/modsecurity/main.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
modsecurity on;&lt;br /&gt;
modsecurity_rules_file /etc/nginx/modsecurity/modsecurity.conf;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* VHost anpassen /etc/nginx/sites-available/default&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    server_name localhost;&lt;br /&gt;
    return 301 https://$host$request_uri;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
server {&lt;br /&gt;
    listen 443 ssl;&lt;br /&gt;
    server_name localhost;&lt;br /&gt;
&lt;br /&gt;
    ssl_certificate     /etc/nginx/fullchain.pem;&lt;br /&gt;
    ssl_certificate_key /etc/nginx/privkey.pem;&lt;br /&gt;
&lt;br /&gt;
    include /etc/nginx/modsecurity/main.conf;&lt;br /&gt;
&lt;br /&gt;
    location / {&lt;br /&gt;
        proxy_pass http://127.0.0.1:8080;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Damit läuft ModSecurity mit aktiviertem OWASP Core Rule Set (CRS). Angriffe wie SQL Injection oder XSS werden erkannt und blockiert.&lt;br /&gt;
&lt;br /&gt;
== Whitelist-Policy ergänzen ==&lt;br /&gt;
Zusätzlich kann das Verhalten durch eine Default-Deny-Policy verschärft werden. Dabei sind nur explizit erlaubte Methoden und Pfade zulässig.&lt;br /&gt;
&lt;br /&gt;
* Datei mit erlaubten POST-URIs /etc/nginx/modsecurity/allowed_post_uris.txt&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/safe/upload&lt;br /&gt;
/safe/form&lt;br /&gt;
/safe/login&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Regeln /etc/nginx/modsecurity/custom-rules/default-deny.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Erlaube POST nur für explizit freigegebene URIs&lt;br /&gt;
SecRule REQUEST_METHOD &amp;quot;@streq POST&amp;quot; &amp;quot;chain,id:2000,phase:1,deny,status:403,msg:'POST not allowed on this URI'&amp;quot;&lt;br /&gt;
    SecRule REQUEST_URI &amp;quot;!@pmFromFile /etc/nginx/modsecurity/allowed_post_uris.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Erlaube GET nur unterhalb von /safe/&lt;br /&gt;
SecRule REQUEST_METHOD &amp;quot;@streq GET&amp;quot; &amp;quot;chain,id:2001,phase:1,allow,log,skipAfter:ALLOWLIST_DONE&amp;quot;&lt;br /&gt;
    SecRule REQUEST_URI &amp;quot;@beginsWith /safe/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Marker&lt;br /&gt;
SecMarker ALLOWLIST_DONE&lt;br /&gt;
&lt;br /&gt;
# Catch-All: alles andere blockieren&lt;br /&gt;
SecRule REQUEST_URI &amp;quot;.*&amp;quot; &amp;quot;id:2999,phase:1,deny,status:403,msg:'Blocked by default policy',skipAfter:ALLOWLIST_DONE&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Einbindung in /etc/nginx/modsecurity/modsecurity.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Include /etc/nginx/modsecurity/custom-rules/default-deny.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ergebnis ==&lt;br /&gt;
* ModSecurity + CRS schützt vor typischen Angriffen.&lt;br /&gt;
* Die Whitelist-Policy setzt zusätzlich eine Default-Deny-Strategie um.&lt;br /&gt;
* Nur definierte Methoden und Pfade sind erlaubt, alle anderen Anfragen werden blockiert.&lt;br /&gt;
&lt;br /&gt;
[[KATEGORIE:WAF]]&lt;/div&gt;</summary>
		<author><name>Thomas.will</name></author>
	</entry>
</feed>