mod_security 根本不起作用

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

需要更多資訊才能提供協助(httpd.conf 和 modsecurity.conf 中的所有相關 apache 設定)。

不過,這裡有一些建議可能會幫助您自己解決問題:

您是否使用了正確的 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 是使用與 Apache 不同的 PRCE 版本編譯的,則可能會發生這種情況)?針對 httpd 和 mod_security.so 執行 ldd 指令以確保它們符合。僅供參考,當我在工作版本上運行“httpd -M”命令時,我沒有顯示任何安全模組 - 我想是因為除非運行 Include ,否則它不會加載。

調試日誌是否正在創建但為空?如果它被創建,那麼這是一個好兆頭,表示 ModSecurity 本身正在加載。

您的 Apache 設定是否都在 /etc/httpd/conf 目錄中,就像您使用的指南所建議的那樣?眾所周知,安裝了多個版本的 Apache,並且您正在編輯配置的版本不是正在使用的版本:-)

我推薦 Ivan Ristic 的 ModSecurity 手冊,可以免費試用:https://www.feistyduck.com/library/modsecurity-handbook-free/這包括安裝。 Ivan 最初寫的是 ModSecurity,所以我建議購買整本書。它落後了幾個版本,但仍然大部分相關。本書未涵蓋的主要變更是規則 ID 現在是強制性的。

相關內容