Apache httpd : mod_security の設定2026/01/16 |
|
[mod_security] モジュールを有効にして、Web Application Firewall (WAF) を設定します。 |
|
| [1] | [mod_security] をインストールします。 |
|
root@www:~ # pkg install -y ap24-mod_security
|
| [2] | [mod_security] を有効化します。 |
|
root@www:~ #
vi /usr/local/etc/apache24/modules.d/280_mod_security.conf # 全てコメント解除 LoadModule unique_id_module libexec/apache24/mod_unique_id.so LoadModule security2_module libexec/apache24/mod_security2.so Include /usr/local/etc/modsecurity/*.conf
root@www:~ #
vi /usr/local/etc/modsecurity/modsecurity.conf
# 7行目 : デフォルトはブロックせずにロギングのみ行う検知モード [SecRuleEngine DetectionOnly]
# ブロックする場合は [SecRuleEngine On] に変更
SecRuleEngine DetectionOnly
.....
.....
|
| [3] |
セキュリティルールの書式は以下の通りです。 ⇒ SecRule VARIABLES OPERATOR [ACTIONS]
各パラメータの種類は非常に多いため、詳細は以下の公式ドキュメントを参照ください。 |
| [4] | セキュリティルールの設定を例示します。 |
|
root@www:~ #
vi /usr/local/etc/modsecurity/localrules.conf # ルールにマッチした時のデフォルトアクションを定義 # レスポンスボディフェーズで処理を停止しログを記録して 406 を返す SecDefaultAction "phase:2,deny,log,status:406" # リクエスト URI に [etc/passwd] が含まれる SecRule REQUEST_URI "etc/passwd" "id:'500001'" # リクエスト URI に [../] が含まれる SecRule REQUEST_URI "\.\./" "id:'500002'" # 引数に [<SCRIPT] (小文字含む) が含まれる SecRule ARGS "<[Ss][Cc][Rr][Ii][Pp][Tt]" "id:'500003'" # 引数に [SELECT FROM] (小文字含む) が含まれる SecRule ARGS "[Ss][Ee][Ll][Ee][Cc][Tt][[:space:]]+[Ff][Rr][Oo][Mm]" "id:'500004'" service apache24 restart
|
| [5] | 設定した文字列を含めてアクセスすると、ブロックモードでは、以下のようにアクセス拒否されます。 |
|
| [6] | [mod_security] のログは以下の場所に保管されています。パターンマッチした場合は以下のようなログが記録されます。 |
|
root@www:~ # cat /var/log/modsec_audit.log --5cc6105a-H-- Message: Access denied with code 406 (phase 2). Pattern match "<[Ss][Cc][Rr][Ii][Pp][Tt]" at ARGS:q. [file "/usr/local/etc/modsecurity/localrules.conf"] [line "10"] [id "500003"] Apache-Error: [file "apache2_util.c"] [line 286] [level 3] ModSecurity: Access denied with code 406 (phase 2). Pattern match "<[Ss][Cc][Rr][Ii][Pp][Tt]" at ARGS:q. [file "/usr/local/etc/modsecurity/localrules.conf"] [line "10"] [id "500003"] [hostname "www.srv.world"] [uri "/"] [unique_id "aWm8TWX9rtMbyiSdK7-jJQAAAA0"] Action: Intercepted (phase 2) Apache-Handler: proxy-server Stopwatch: 1768537165096967 207 (- - -) Stopwatch2: 1768537165096967 207; combined=14, p1=2, p2=9, p3=0, p4=0, p5=3, sr=0, sw=0, l=0, gc=0 Response-Body-Transformed: Dechunked Producer: ModSecurity for Apache/2.9.12 (http://www.modsecurity.org/). Server: Apache/2.4.66 (FreeBSD) OpenSSL/3.5.4 mod_wsgi/5.0.2 Python/3.11 mod_perl/2.0.13 Perl/v5.42.0 Engine-Mode: "ENABLED" ..... ..... |
| Sponsored Link |
|
|