mod_security.confは他のconfファイルに設定を分けた場合、読み込む順番によって挙動がかわることに注意!!(CentOS7)

CentOS7の環境でのことではありますが、(WAF)modsecurityを導入した際に、正常な通信でもブロックしてしまうので、ブロックされたIDをルールに登録して解除するのが一般的です。

SecRuleRemoveById 981317 950001 959073 981255 981245
SecRuleRemoveById 950901 960024 981173 973300

その際、同一サーバ内に複数のサイトがある場合、mod_security.confにID解除のルールを記述するのではなく
/etc/httpd/conf.d/
example1_com.conf
example2_com.conf
mod_security.conf

という感じでサイト別にVirtual Hostで区切ったconfファイルを作成してそこに記述したい場合もあるかと思います。

その場合、上記の並びだと、example1_com.confに”SecRuleRemoveById 981317” と記述してもうまく効かないのです。
ファイル名の順に読み込んでいくので、mod_security.confより先にexample1_com.confを読み込むことになるのですが、どうやらmod_security.confを先に読み込まないと、以降の設定が効かないことがあるようです。というか効かなかった。※CentOS6のときはまた違う挙動だったとようです。

対策としては、
a_mod_security.conf  というようにリネームして先に読み込む

または、z_mod_ruleremove.conf など最後に読み込むように命名してまとめて記述する

または、サイト別のconfを
z_example1_com.conf  のようにリネームする。

いろいろ方法はありますが、この場所にはSSL用の設定ファイルも別で用意してある場合なども読み込む順番によって挙動が変わるので要注意です。