Disabilita modsecurity per una directory specifica


11

Come si disabilita modsecurity solo per una directory specifica. Ricevo errori in phpMyAdmin causati dall'intervento di modsecurity in base alle regole. Ho impostato i seguenti file:

# /etc/httpd/modsecurity.d/modsecurity_crs_15_customrules.conf
<LocationMatch "^/phpMA/">
    SecRuleEngine Off
</LocationMatch>

# /etc/httpd/modsecurity.d/modsecurity_crs_60.custom.conf
<LocationMatch '^/phpMA/*'>
    SecRuleRemoveById 950004
    SecRuleRemoveById 950005
    SecRuleRemoveById 950006
    SecRuleRemoveById 960010
    SecRuleRemoveById 960012
</LocationMatch>

Da quello che posso trovare il primo file dovrebbe disabilitarlo, ma continua a scattare, quindi ho provato ad aggiungere gli ID della regola che sta inciampando nel file 60, ma si lamenta comunque.

Sto eseguendo i seguenti pacchetti su CentOS 5.3:

  • mod_security-2.5.0-jason.2
  • httpd-2.2.8-jason.3
  • mod-php5-apache2-Zend-ce-5.2.10-65

La risposta approvata non è sicura. Consultare: serverfault.com/a/766395/345813
SherloxTV

Risposte:


17

SecRuleEngine Off deve funzionare. Hai provato a mettere SecRuleEngine nella directory:

<Directory /var/www/site/phpMA>
SecRuleEngine Off
</Directory>

invece di LocationMatch?


1
Ho provato ad aggiungerlo al file 15 e ancora ottenere gli stessi errori catturati in modsecurity_audit.log
dragonmantank

I file modsecurity_crs_15_customrules.conf e modsecurity_crs_60.custom.conf sono inclusi (non commentati) nel tuo /etc/httpd/conf.d/mod_security.conf?
hdanniel,

facepalm No, non lo erano. Questo se ne è occupato.
dragonmantank,

3

Su alcuni server e host web, è possibile disabilitare ModSecurity tramite .htaccess, ma solo nella sua interezza (non singole regole).

Per limitare questo a URL specifici è possibile specificare una regex nell'istruzione <If>seguente ...

### DISABLE mod_security firewall
### Some rules are currently too strict and are blocking legitimate users
### We only disable it for URLs that contain the regex below
### The regex below should be placed between "m#" and "#" 
### (this syntax is required when the string contains forward slashes)
<IfModule mod_security.c>
  <If "%{REQUEST_URI} =~ m#/admin/#">
    SecFilterEngine Off
    SecFilterScanPOST Off
  </If>
</IfModule>

2

Non disabilitare mai tutte le regole !! Ciò potrebbe causare seri problemi di sicurezza!

È necessario controllare il file di registro di modsecurity con

tail -f /var/log/apache2/modsec_audit.log

ed escludere ciascuna regola una ad una riproducendo gli errori nell'interfaccia phpmyadmin.

Quindi aggiungi:

<Directory /path/to/phpmyadmin>
    <IfModule security2_module>
        SecRuleRemoveByTag "WEB_ATTACK/SQL_INJECTION"
        {And other rules you need to disable ...}
    </IfModule>
</Directory>

su /etc/apache2/mods-enabled/modsecurity.conf

Il tag che devi rimuovere si troverà nel file di registro in questo modo . Per una descrizione completa della rimozione delle regole per una determinata cartella, consultare il wiki di Github del progetto .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.