包括 /etc/httpd/modsecurity-crs/base_rules/modsecurity_crs_21_protocol_anomalies.conf

包括 /etc/httpd/modsecurity-crs/base_rules/modsecurity_crs_21_protocol_anomalies.conf

下載v3.2.0 https://coreruleset.org/installation/ 請按照安裝檔中的說明進行操作

但 apache 無法啟動並傳回此錯誤 -

AH00526: Syntax error on line 800 of /etc/apache2/crs/crs-setup.conf:
яну 19 01:36:09 VMhomeServer apachectl[20761]: ModSecurity: Found another rule with the same id

這是我的 apache2.conf 安全文件

LoadModule unique_id_module modules/mod_unique_id.so
LoadModule security2_module modules/mod_security2.so
<IfModule security2_module>
Include /etc/apache2/crs/crs-setup.conf
Include /etc/apache2/crs/rules/*.conf
</IfModule>

根據這個問題https://github.com/SpiderLabs/ModSecurity/issues/1227

我「解決」了評論:

包括 /etc/httpd/modsecurity-crs/base_rules/modsecurity_crs_21_protocol_anomalies.conf

但由於我使用的是較新的版本,所以沒有這樣的規則,現在的規則都不同了,所以我無法弄清楚我的生活發生了什麼。

我有 modsecurity-crs/bionic,bionic,now 3.0.2-1 按照安裝指南的要求全部[安裝]

任何幫助將不勝感激,到目前為止我在互聯網上的這個版本上沒有發現任何有關此類問題的信息

答案1

您能否檢查一下以確保在包含 modsecurity.conf 檔案時包含以下行:Include "/etc/apache2/modsecurity.d/modsecurity.conf"在包含 crs-setup.conf 之前您是否使用 modsecurity 的 Ubuntu 儲存庫版本,或者您是否從 git 儲存庫中提取了該版本以及規則? Ubuntu repo 版本會將設定放入/etc/modsecurity/modsecurity.conf我不知道你會把該檔案放在哪裡,但你的conf 檔案可能如下所示。注意:如果使用 modsecurity 的 git repo 版本,您可能需要載入一些額外的函式庫。

LoadModule unique_id_module modules/mod_unique_id.so
LoadModule security2_module modules/mod_security2.so

<IfModule security2_module>
        # Include the main modsecurity conf file
        Include "/etc/apache2/modsecurity.d/modsecurity.conf"

        # Include OWASP ModSecurity CRS rules from github
        Include /etc/apache2/crs/crs-setup.conf
        IncludeOptional /etc/apache2/crs/rules/REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf
        Include /etc/apache2/crs/rules/*.conf
        IncludeOptional /etc/apache2/crs/rules/RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf
</IfModule>

但這並不能真正解決您的問題,但您確實需要該文件。 Apache 無法啟動,因為有兩個規則有相同的 id 號。 ModSecurity 不會允許這樣做。您只需找到重複的規則編號並進行更改即可。根據 modsecurity 標準,您不應修改 /rules 目錄中的任何現有 conf 檔案。您可以而且應該修改modsecurity.confcrs-setup.conf文件。您有重複的規則 ID 號碼on line 800 of /etc/apache2/crs/crs-setup.conf請記住,行號可能無法完全匹配。我認為當用 . 轉義行時,這些會被算作一行\。預設情況下crs-setup.conf.example,除了最後一個列出您正在執行的規則版本的規則之外,所有規則都被註解掉。檢查您的crs-setup.conf文件並查看取消註釋的內容。如果您發現一些可能可疑的規則 ID 號,那麼您可以使用類似以下內容檢查所有規則是否有重複項(當然,更改您要查找的規則號):

grep -r '900990' /etc/apache2/crs/rules/*

如果您只想查找文件中的所有規則 ID 號,那麼這可能會有所幫助:

grep -ho 'id:[0-9]*' /etc/apache2/crs/rules/*  | sort | uniq -c | less

相關內容