Назад | Перейти на главную страницу

Отключить modsecurity для определенного каталога

Как отключить modsecurity только для определенного каталога. Я получаю ошибки в phpMyAdmin, вызванные срабатыванием modsecurity на основе правил. У меня настроены следующие файлы:

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

Из того, что я могу найти, первый файл должен отключить его, но он все еще отключается, поэтому я попытался добавить идентификаторы правил, которые он отключает, в файл 60, но он все еще жалуется.

Я использую следующие пакеты на CentOS 5.3:

SecRuleEngine Off должен работать. Вы пытались поместить SecRuleEngine в каталог:

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

вместо LocationMatch?

На некоторые серверов и веб-хостов, можно отключить ModSecurity через .htaccess, но только целиком (а не отдельные правила).

Чтобы ограничить это конкретными URL-адресами, вы можете указать регулярное выражение в <If> заявление ниже ...

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

Никогда не отключайте все правила !! Это может вызвать серьезные проблемы с безопасностью!

Вам нужно проверить файл журнала modsecurity с помощью

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

и исключить каждое правило одно за другим, воспроизводя ошибки в интерфейсе phpmyadmin.

Затем добавьте:

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

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

Тег, который вам нужно удалить, будет в файле журнала, например этот. Полное описание правил удаления для конкретной папки см. В Github wiki проекта.