Я пытаюсь отслеживать все запросы, поступающие на веб-сайт на сервере общего хостинга. Захват пакетов будет слишком громоздким.
Мы используем Mod Security (2.8) с хорошим эффектом, хотя из-за нагрузки у нас включено только ограниченное ведение журнала.
SecAuditEngine RelevantOnly
SecAuditLogRelevantStatus "^(?:5|4(?!04))"
Я действительно не хочу регистрировать все для всего сервера, просто чтобы проверить, что происходит с этим виртуальным хостом. Я пробовал установить
SecAuditEngine On
... внутри файлов .htaccess, и это вызывает внутреннюю ошибку 500, при этом error_log указывает, что эти директивы не разрешены в .htaccess, хотя в документации Modsec область действия этих директив показана как "Any"
Я даже пробовал создать простое SecRule:
SecRule SERVER_NAME "example\.com" "phase:1,ctl:SecAuditEngine=On,id:123456789"
Но это создает синтаксическую ошибку, и похоже, что SecAuditEngine или SecAuditLogRelevantStatus нельзя переключать динамически.
Кто-нибудь знает, можно ли изменить любую из этих двух директив во время транзакции для каждого запроса?
Это может быть достигнуто путем использования системы шаблонов apache для изменения директивы SecAuditEngine для пользователя или домена. На сервере cPanel это можно сделать, разместив файлы * .conf в следующих местах:
/usr/local/apache/conf/userdata/std/2/username/modsec.conf /usr/local/apache/conf/userdata/ssl/2/username/modsec.conf
с содержанием:
<LocationMatch .*>
SecAuditEngine On
</LocationMatch>
Параметр «Вкл.» Указывает безопасности мода регистрировать данные транзакции для всех кодов ответа (кроме 404/401 из-за другого пути)