Ich habe bislang ModSecurity mit nginx in "einfacher Variante" verwendet. Also nur eine modsecurity.conf (mit Regeln in der Datei) und "gut".
Nun möchte ich ModSecurity "ausbauen" und das OWASP CRS verwenden. Die Installationsanleitung ist an sich gut geschrieben (für Apache) nur ist das Problem bei nginx, dass ich nicht mehrere Konfigurationen laden kann. Außerdem hab ich auch keine "include"-Anweisung im ModSecurity Konfigurationssyntax gefunden, mit der ich das nachbauen könnte.
Wie richte ich die ModSecurity OWASP CSR unter Debian für nginx ein ohne alle aktivierten Regel in meine modsecurity.conf kopieren zu müssen?
nginx mit ModSecurity und OWASP CRS
Re: nginx mit ModSecurity und OWASP CRS
in apache:
wobei in activated_rules/ zumindest die base_rules/ verlinkt sein sollen.
modsecurity-standalone Config-Template für nginx:
Du könntest erstmal ausprobieren, ob 'ModSecurityConfig' ein "pfad/*.conf" versteht.
Wenn das nicht klappt, ob es additiv ist vielleicht als
Das wäre eine relativ leicht änderbare Liste.
Dann würde ich aber bevorzugen, die Links in activated_rules/ zu setzen
mit anschließendem
Damit das nicht vergessen wird, könnte
incron auf /usr/share/modsecurity-crs/activated_rules/ angesetzt werden, der das 'cat' macht und ein evtl. SIGHUP an nginx sendet.
Was ist mit den *_rules/modsecurity_*.data ?
Nach dem activated_rules/README (zielend auf apache) werden sie genauso nach activated_rules/ verlinkt,
liegen "neben" ihren entsprechenden *.conf-Dateien.
Bei meiner 'cat'-Variante müßten sie dann in das Verzeichnis mit der per 'ModSecurityConfig' eingebundenen modsecurity.conf verlinkt werden, also Sind ja nur eine handvoll:
Code: Alles auswählen
<IfModule security2_module>
Include /usr/share/modsecurity-crs/*.conf
Include /usr/share/modsecurity-crs/activated_rules/*.conf
</IfModule>
modsecurity-standalone Config-Template für nginx:
Code: Alles auswählen
location / {
ModSecurityEnabled on;
ModSecurityConfig modsecurity.conf;
Wenn das nicht klappt, ob es additiv ist
Code: Alles auswählen
ModSecurityConfig AA.conf;
ModSecurityConfig BB.conf;
ModSecurityConfig CC.conf;
Code: Alles auswählen
ModSecurityConfig AA.conf BB.conf CC.conf;
resp.
ModSecurityConfig AA.conf \
BB.conf \
CC.conf;
oder
ModSecurityConfig
AA.conf
BB.conf
CC.conf
;
Dann würde ich aber bevorzugen, die Links in activated_rules/ zu setzen
mit anschließendem
Code: Alles auswählen
cat modsecurity.conf_0 /usr/share/modsecurity-crs/modsecurity_crs_10_setup.conf /usr/share/modsecurity-crs/activated_rules/*.conf > modsecurity.conf

Was ist mit den *_rules/modsecurity_*.data ?
Nach dem activated_rules/README (zielend auf apache) werden sie genauso nach activated_rules/ verlinkt,
liegen "neben" ihren entsprechenden *.conf-Dateien.
Bei meiner 'cat'-Variante müßten sie dann in das Verzeichnis mit der per 'ModSecurityConfig' eingebundenen modsecurity.conf verlinkt werden, also
Code: Alles auswählen
find /usr/share/modsecurity-crs/activated_rules -name "*.data" -exec ln -sfv ..........
oder einfach pro forma
find /usr/share/modsecurity-crs -type f -name "*.data" -exec ln -sfv {} . \;
(ohne spezielle Verlinkung nach activated_rules/,
die Regeln einer eingebundenen *.conf sollten sich dann schon bedienen)
Code: Alles auswählen
$ find -type f -name "*.data" | sort
./base_rules/modsecurity_35_bad_robots.data
./base_rules/modsecurity_35_scanners.data
./base_rules/modsecurity_40_generic_attacks.data
./base_rules/modsecurity_50_outbound.data
./base_rules/modsecurity_50_outbound_malware.data
./optional_rules/modsecurity_42_comment_spam.data
./slr_rules/modsecurity_46_slr_et_joomla.data
./slr_rules/modsecurity_46_slr_et_lfi.data
./slr_rules/modsecurity_46_slr_et_phpbb.data
./slr_rules/modsecurity_46_slr_et_rfi.data
./slr_rules/modsecurity_46_slr_et_sqli.data
./slr_rules/modsecurity_46_slr_et_wordpress.data
./slr_rules/modsecurity_46_slr_et_xss.data
Zuletzt geändert von rendegast am 25.09.2015 15:09:27, insgesamt 2-mal geändert.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
Re: nginx mit ModSecurity und OWASP CRS
Ich hatte schon mal mehrere ModSecurityConfig angegeben. Das hatte irgendwie nicht funktioniert. Ich probiere es aber noch einmal.
Aktuell hab ich ein Shell-Script, was mir die modsecurity.conf für nginx zusammen cat'et und die Pfade für *.data fixed.
Btw... ist es normal, dass ein Request ohne ModSecurity 0.140 ms braucht und der gleiche mit ModSecurity 11.800 ms? Ist schon ne krasse Veränderung. Arbeitet ModSecurity evtl. bei nginx nicht als persistenter "Prozess" innerhalb nginx?
Aktuell hab ich ein Shell-Script, was mir die modsecurity.conf für nginx zusammen cat'et und die Pfade für *.data fixed.
Btw... ist es normal, dass ein Request ohne ModSecurity 0.140 ms braucht und der gleiche mit ModSecurity 11.800 ms? Ist schon ne krasse Veränderung. Arbeitet ModSecurity evtl. bei nginx nicht als persistenter "Prozess" innerhalb nginx?
Re: nginx mit ModSecurity und OWASP CRS
Ist dieses den obligatorisch?
(Nach modsecurity-2.9.0/tests/regression/nginx/conf/nginx.conf.template scheinbar nicht)
Das, verbunden mit der Bezeichnung "modsecurity-standalone" scheint mir auf eine Proxy-Technik zu deuten.
Mach doch mal
(Nach modsecurity-2.9.0/tests/regression/nginx/conf/nginx.conf.template scheinbar nicht)
("proxy_pass" ist im modsecurity.tar.gz nicht enthalten, also eine reine nginx-Option)proxy_pass http://localhost:8011;
proxy_read_timeout 180s;
(https://github.com/SpiderLabs/ModSecuri ... nce-Manual)This configures ModSecurity as an Nginx request handler. The updated request flow is now: request -> modsecurity handler -> backend.
You will need to modify the @backend definition to point to your correct back-end web application that Nginx is proxying to. (obsolet)
Starting with ModSecurity 2.7.2 the ModSecurityPass option was removed.
Das, verbunden mit der Bezeichnung "modsecurity-standalone" scheint mir auf eine Proxy-Technik zu deuten.
Mach doch mal
ob nginx einen weiteren Port öffnet oder separaten modsecurity-Prozeß startet.netstat -tpaun
pstree -pal
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")