Mod Securityをオンにしてみたいのだけど、一度に全部適用すると偽判定される可能性があるので、特定のルールだけ適用してMod Securityをしばらくテスト運用してみる。
デフォルトでは、ルールは以下ディレクトリに格納されている。
- modsecurity.d/*.conf
– modsecurity_crs_10_config.conf - modsecurity.d/activated_rules/*.conf
– modsecurity_crs_20_protocol_violations.conf
– modsecurity_crs_21_protocol_anomalies.conf
– modsecurity_crs_23_request_limits.conf
– modsecurity_crs_30_http_policy.conf
– modsecurity_crs_35_bad_robots.conf
– modsecurity_crs_40_generic_attacks.conf
– modsecurity_crs_41_sql_injection_attacks.conf
– modsecurity_crs_41_xss_attacks.conf
– modsecurity_crs_42_tight_security.conf
– modsecurity_crs_45_trojans.conf
– modsecurity_crs_47_common_exceptions.conf
– modsecurity_crs_48_local_exceptions.conf.example
– modsecurity_crs_49_inbound_blocking.conf
– modsecurity_crs_50_outbound.conf
– modsecurity_crs_59_outbound_blocking.conf
– modsecurity_crs_60_correlation.conf - modsecurity.d/local_rules/*.conf
– modsecurity_localrules.conf
この中から、分かりやすいところでSQLインジェクションだけ適用してテスト運用する。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# vi /etc/httpd/conf.d/mod_security.conf <IfModule mod_security2.c> # Default recommended configuration #SecRuleEngine DetectionOnly SecRuleEngine On ... # ModSecurity Core Rules Set and Local configuration IncludeOptional modsecurity.d/*.conf # IncludeOptional modsecurity.d/activated_rules/*.conf IncludeOptional modsecurity.d/local_rules/*.conf IncludeOptional modsecurity.d/activated_rules/modsecurity_crs_41_sql_injection_attacks.conf </IfModule> |
ログをクリアしておく。
1 2 3 |
# cd /var/log/httpd # mkdir modsec_audit_old # mv modsec_audit.log* modsec_audit_old |
Apacheを再起動して設定を適用。
1 |
# service httpd restart |
サイトが正しく表示されることを確認したら、テスト運用開始。