Apache2 : mod_security の設定2023/07/04 |
[mod_security] モジュールを有効にして、Web Application Firewall (WAF) を設定します。
|
|
[1] | [mod_security] をインストールします。 |
root@www:~# apt -y install libapache2-mod-security2
|
[2] | [mod_security] を有効化します。 |
root@www:~# cp -p /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
root@www:~#
vi /etc/modsecurity/modsecurity.conf # 7行目 : デフォルトはブロックせずにロギングのみ行う検知モード [SecRuleEngine DetectionOnly] # ブロックする場合は [SecRuleEngine On] に変更 SecRuleEngine DetectionOnly ..... ..... |
[3] |
セキュリティルールの書式は以下の通りです。
⇒ SecRule VARIABLES OPERATOR [ACTIONS]
各パラメータの種類は非常に多いため、詳細は以下の公式ドキュメントを参照ください。
https://github.com/SpiderLabs/ModSecurity/wiki |
[4] | セキュリティルールの設定を例示します。 |
root@www:~#
vi /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'" systemctl reload apache2
|
[5] | 設定した文字列を含めてアクセスすると、ブロックモードでは、以下のようにアクセス拒否されます。 |
[6] | [mod_security] のログは以下の場所に保管されています。パターンマッチした場合は以下のようなログが記録されます。 |
root@www:~# cat /var/log/apache2/modsec_audit.log --81c67319-H-- Message: Access denied with code 406 (phase 2). Pattern match "<[Ss][Cc][Rr][Ii][Pp][Tt]" at ARGS:q. [file "/etc/modsecurity/localrules.conf"] [line "7"] [id "500003"] Apache-Error: [file "apache2_util.c"] [line 275] [level 3] [client 10.0.0.5] ModSecurity: Access denied with code 406 (phase 2). Pattern match "<[Ss][Cc][Rr][Ii][Pp][Tt]" at ARGS:q. [file "/etc/modsecurity/localrules.conf"] [line "7"] [id "500003"] [hostname "www.srv.world"] [uri "/"] [unique_id "ZKN2B3S-lFMmCcuf7-WnpAAAAAA"] Action: Intercepted (phase 2) Stopwatch: 1688434183726386 1336 (- - -) Stopwatch2: 1688434183726386 1336; combined=587, p1=510, p2=6, p3=0, p4=0, p5=71, sr=48, sw=0, l=0, gc=0 Response-Body-Transformed: Dechunked Producer: ModSecurity for Apache/2.9.7 (http://www.modsecurity.org/); OWASP_CRS/3.3.4. Server: Apache Engine-Mode: "ENABLED" ..... ..... |
[7] | 自身でルールを作成しなくとも、一般的なルール設定は別途用意され、デフォルトで有効な状態となっています。 ただし、必要なリクエストまで拒否してしまう可能性もあるため、自サイトに合わせたカスタマイズが必要かもしれません。 |
root@www:~# ll /usr/share/modsecurity-crs/rules total 684 -rw-r--r-- 1 root root 786 Oct 2 2022 crawlers-user-agents.data -rw-r--r-- 1 root root 551 Oct 2 2022 iis-errors.data -rw-r--r-- 1 root root 933 Oct 2 2022 java-classes.data -rw-r--r-- 1 root root 264 Oct 2 2022 java-code-leakages.data -rw-r--r-- 1 root root 240 Oct 2 2022 java-errors.data -rw-r--r-- 1 root root 31209 Oct 2 2022 lfi-os-files.data -rw-r--r-- 1 root root 5409 Oct 2 2022 php-config-directives.data -rw-r--r-- 1 root root 9201 Oct 2 2022 php-errors.data -rw-r--r-- 1 root root 683 Oct 2 2022 php-function-names-933150.data -rw-r--r-- 1 root root 21282 Oct 2 2022 php-function-names-933151.data -rw-r--r-- 1 root root 224 Oct 2 2022 php-variables.data -rw-r--r-- 1 root root 13501 Oct 2 2022 REQUEST-901-INITIALIZATION.conf ..... ..... |
Sponsored Link |