ModSecurity が IIS で動作しない

ModSecurity が IIS で動作しない

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

デフォルト.aspx-- 日付と時刻を表示するだけのシンプルなページです。

ウェブ構成

<?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?テストパラメータ=テスト) の場合、403 ではなくテスト ページが表示されます。イベント ビューアーには何も記録されません。

答え1

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

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

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

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

答え2

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

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

また、設定ファイルでは、これまでwwwroot 内に保存してください。安全な場所に置いてください。例:

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

また、ドキュメントによれば、Windows ではファイルは modsecurity_iis.conf と呼ばれる必要があることに注意してください。

関連情報