ログを確認したところ、Mod_securityがサイトの操作に必要ないくつかのファイルをブロックしていることがわかりました。これまでのところ、apache構成ファイルでドメインごとに無効にしました。特定のページで特定のルールのみを無効にしたい。私が読んだ実装例は、RedHatやその他のディストリビューションに固有のものです。Centos5をapache2.8とmod_security2で実行しています(サーバーは複数のサイトをホストしています)
CentOSでは、ロードされたmod_securityが次のように上部に含まれています。
Include "/usr/local/apache/conf/modsec2.conf"
上記のファイルは、同じディレクトリにあるmodsec2.user.confを呼び出します。
これが私がこれまでにしたことです:
私のサーバーには、次のようなファイルを作成するためのmodsecurity.dというディレクトリがありません。
/etc/httpd/modsecurity.d/modsecurity_localrules.conf
そこで、次の名前のファイルを作成しました。
whitelist.conf
の:
/usr/local/apache/conf/
次に、インクルードを次の場所に追加しました。
/etc/httpd/conf/modsec2.conf/
ルールは次のようになります。
<LocationMatch "/wp-admin/post.php">
SecRuleRemoveById 950006
</LocationMatch>
しかし、ルールは機能していません。whitelist.confが適切な場所に配置されているのだろうか。
次に、2つのファイルを作成しました。
modsecurity_crs_15_customrules.conf
modsecurity_crs_60_customrules.conf
そしてそれらを入れました:
/home/cpeasyapache/src/modsecurity-apache_2.5.12/rules
上記のパスは私が見つけた場所です:
modsecurity_crs_10_config.conf
他のファイルから呼び出されるのを見たことがありませんが、メインルールが含まれています。
基本ルールは次の場所にあります。
/home/cpeasyapache/src/modsecurity-apache_2.5.12/rules/base_rules
私のmod_securityは最小限の機能でインストールおよび構成されているようです。これをhttpd.confに追加しようと考えています。
<IfModule security2_module>
Include /home/cpeasyapache/src/modsecurity-apache_2.5.12/rules/modsecurity_crs_10_config.conf
Include /home/cpeasyapache/src/modsecurity-apache_2.5.12/rules/base_rules/*.conf
Include /home/cpeasyapache/src/modsecurity-apache_2.5.12/rules/optional_rules/*.conf
Include /home/cpeasyapache/src/modsecurity-apache_2.5.12/rules/modsecurity_crs_15_customrules.conf
Include /home/cpeasyapache/src/modsecurity-apache_2.5.12/rules/modsecurity_crs_60_customrules.conf
</IfModule>
あなたたちはどうやってあなたの側でそれをしますか?
前もって感謝します