/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/ INSTALLファイルにある指示に従ってください

しかし、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

これはsecurity2用の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、現在3.0.2-1がすべて[インストール済み]です

助けていただければ幸いです。今のところ、このバージョンに関するそのような問題についてはインターネット上で何も見つかりませんでした。

答え1

Include "/etc/apache2/modsecurity.d/modsecurity.conf"crs-setup.conf をインクルードする前に、次のような行で modsecurity.conf ファイルが含まれていることを確認してください。modsecurityの Ubuntu リポジトリ バージョンを使用していますか、それともルールと同様に git リポジトリから取得しましたか? Ubuntu リポジトリ バージョンでは、構成が配置されます/etc/modsecurity/modsecurity.conf。そのファイルをどこに配置したかはわかりませんが、conf ファイルは次のようになります。注: modsecurity の git リポジトリ バージョンを使用している場合は、追加のライブラリをロードする必要がある場合があります。

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>

それはあなたの質問に本当に答えているわけではありませんが、そのファイルは必要です。 同じ ID 番号のルールが 2 つあるため、Apache は起動に失敗しています。 ModSecurity はそれを許可しません。 重複したルール番号を見つけて変更するだけです。 modsecurity 標準に従って、/rules ディレクトリ内の既存の conf ファイルは変更しないでください。 およびmodsecurity.confファイルは変更できますし、変更する必要がありますcrs-setup.conf。 ルール ID 番号が重複していますon line 800 of /etc/apache2/crs/crs-setup.conf行番号が完全に一致しない場合があることに注意してください。 で行をエスケープすると、1 行としてカウントされると思います\。 デフォルトでは、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

関連情報