web-dev-qa-db-ja.com

ModSecurityが機能しないIIS

ModSecurity IISモジュールをWindowsServer 2012VMにインストールしました。独自のアプリプールで実行されている簡単なテストアプリケーションがあります。

default.aspx-日付/時刻を吐き出す単純なページ。

web.config

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <ModSecurity enabled="true" configFile="C:\inetpub\wwwroot\modsecurity.conf" />
    </system.webServer>
</configuration>

modsecurity.conf

SecRuleEngine On
SecRule ARGS:testparam "test" "id:1234,deny,status:403,msg:'Our test rule has triggered'"

サイトを参照すると(例: http:// localhost?testparam = test )、403ではなくテストページが表示されます。イベントビューアには何も記録されません。

2
Josh M.

あなたはこの問題の被害者である可能性があります: https://github.com/SpiderLabs/ModSecurity/issues/787

Brocoの答えは近いですが、最も重要な部分であるoverrideModeDefault="Allow"に注意を向けていません。 C:\ Windows\System32\inetsrv\Config\applicationHost.configファイルを確認すると、おそらく次のように表示されます。

<section name="ModSecurity" overrideModeDefault="Deny" allowDefinition="Everywhere" /></sectionGroup>

これを「許可」に変更する必要があります。そうしないと、Webサイトの構成ファイルに<ModSecurity ...>を追加すると、基本的にModSecurityが無効になります。

1
default.kramer

C:\ Windows\System32\inetsrv\configを編集しましたか?追加してmodsecurityを有効にする必要があります

<section name="ModSecurity" overrideModeDefault="Allow" allowDefinition="Everywhere" /></sectionGroup>

また、設定ファイルはwwwrootに[〜#〜] ever [〜#〜]を含めないでください。安全な場所に置きます。例:

configFile="C:\Program Files\ModSecurity IIS\modsecurity_iis.conf"

また、ドキュメンテーションによると、ファイルはWindowsではmodsecurity_iis.confと呼ばれるべきであることに注意してください。

1
Broco