mod_security вообще не работает

Я пытаюсь заставить работать mod_security, я много искал в Интернете и следовал этому руководству, чтобы настроить mod_security (все мои файлы конфигурации такие же, как в учебнике), и когда я запускаю httpd -M | grep -Ei '(evasive|security)' это выводит

 security2_module (shared)
 evasive20_module (shared)

Таким образом, загружаются расширения, но они вообще ничего не блокируют, ничего не записывают в файл логов, я даже установил SecDebugLogLevel до 9, и журнал отладки все еще пуст.

Я попытался загрузить модули раньше других, после остальных посередине, несколько раз перезапустил apache и ничего не получил.

Я использую Amazon Linux (это как CentOS), с Apache 2.4 Prefork.

1 ответ

Решение

Нужна дополнительная информация, чтобы иметь возможность помочь (все соответствующие настройки Apache от httpd.conf и modsecurity.conf).

Однако вот несколько советов, которые могут помочь вам решить вашу проблему самостоятельно:

Вы используете правильную команду IfModule? Я использую mod_security2.c, но не уверен, что это имеет значение:

<IfModule mod_security2.c>
    Include conf/modsecurity.conf
</IfModule>

Вы пытались остановить и запустить Apache полностью (не изящный перезапуск)?

Есть ли что-нибудь в журналах ошибок после полной остановки и перезапуска. У него должно быть несколько записей::

ModSecurity for Apache/2.9.0 (http://www.modsecurity.org/) configured.
ModSecurity: APR compiled version="1.5.0"; loaded version="1.5.0"
...etc.

Это показывает, что ModSecurity загружен.

Есть ли какие-либо ошибки PCRE в файле журнала ошибок (что может произойти, если ModSecurity был скомпилирован с версией PRCE, отличной от Apache)? Запустите команду ldd для httpd и mod_security.so, чтобы убедиться, что они совпадают. Как к вашему сведению, я НЕ получаю никаких модулей безопасности, показывающих, когда я запускаю эту команду "httpd -M" в моей рабочей версии - я думаю, потому что она не загружается, если не запущено приложение Include.

Журнал отладки создается, но пуст? Если он создан, то это хороший признак того, что сам ModSecurity загружается.

Все ваши настройки Apache находятся в каталоге /etc/httpd/conf, как предлагает то руководство, которое вы использовали? Не секрет, что установлено несколько версий Apache, и тот, для которого вы редактируете конфигурацию, не тот, который используется:-)

Я рекомендую справочник Ивана Ристича по ModSecurity, дегустатор которого можно бесплатно скачать: https://www.feistyduck.com/library/modsecurity-handbook-free/ и это касается установки. Иван изначально написал ModSecurity, поэтому я бы порекомендовал купить всю книгу. Это пара версий позади, но все еще в основном актуальны. Главное изменение, которое не охватывается книгой, заключается в том, что идентификатор правила теперь является обязательным.

Другие вопросы по тегам