Я пытаюсь заставить работать 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.
Нужна дополнительная информация, чтобы иметь возможность помочь (вся соответствующая конфигурация apache из httpd.conf и modsecurity.conf).
Однако вот несколько советов, которые могут помочь вам решить вашу проблему самостоятельно:
Вы используете правильную команду IfModule? Я использую mod_security2.c, но не уверен, имеет ли это значение:
<IfModule mod_security2.c>
Include conf/modsecurity.conf
</IfModule>
Вы пробовали полностью остановить и запустить Apache (а не плавный перезапуск)?
Есть ли что-нибудь в журналах ошибок после полной остановки и перезапуска. В нем должно быть несколько записей [: notice], например:
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, поэтому я бы рекомендовал купить всю книгу. Это на пару версий позади, но все еще актуально. Главное изменение, не охватываемое книгой, заключается в том, что идентификатор правила теперь является обязательным.