Wyłącz modsecurity dla określonego katalogu


11

Jak wyłączyć modsecurity tylko dla określonego katalogu. Dostaję błędy w phpMyAdmin, które są spowodowane przez wyzwalanie modsecurity na podstawie reguł. Mam skonfigurowane następujące pliki:

# /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>

Z tego, co mogę znaleźć, pierwszy plik powinien go wyłączyć, ale nadal się wyłącza, więc próbowałem dodać identyfikatory reguły, które się potykają do pliku 60, ale nadal narzeka.

Korzystam z następujących pakietów na 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

Zatwierdzona odpowiedź nie jest bezpieczna. Zobacz: serverfault.com/a/766395/345813
SherloxTV

Odpowiedzi:


17

SecRuleEngine Off musi działać. Czy próbowałeś umieścić SecRuleEngine w katalogu:

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

zamiast LocationMatch?


1
Próbowałem dodać to do pliku 15 i wciąż otrzymywać te same błędy, które zostały wykryte w modsecurity_audit.log
dragonmantank

Czy pliki modsecurity_crs_15_customrules.conf i modsecurity_crs_60.custom.conf są uwzględnione (nie skomentowane) w pliku /etc/httpd/conf.d/mod_security.conf?
hdanniel

facepalm Nie, nie byli. To załatwiło sprawę.
dragonmantank

3

Na niektórych serwerach i hostach internetowych możliwe jest wyłączenie ModSecurity poprzez .htaccess, ale tylko w całości (nie poszczególne reguły).

Aby ograniczyć to do określonych adresów URL, możesz określić wyrażenie regularne w <If>poniższym zestawieniu ...

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

Nigdy nie wyłączaj wszystkich zasad !! Może to powodować poważne problemy z bezpieczeństwem!

Musisz sprawdzić plik dziennika modsecurity za pomocą

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

i wykluczaj każdą regułę jeden po drugim, odtwarzając błędy w interfejsie phpmyadmin.

Następnie dodaj:

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

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

Tag, który musisz usunąć, będzie w pliku dziennika takim jak ten . Pełny opis usuwania reguł dla określonego folderu można znaleźć na wiki projektu Github .

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.