IP セキュリティ <ipSecurity>
概要
<ipSecurity>
要素は、IIS 7 以降の IP ベースのセキュリティ制限の一覧を定義します。 これらの制限は、IP バージョン 4 のアドレス、IP バージョン 4 のアドレスの範囲、または DNS ドメイン名に基づいて行うことができます。
互換性
バージョン | メモ |
---|---|
IIS 10.0 | <ipSecurity> 要素は、IIS 10.0 では変更されませんでした。 |
IIS 8.5 | <ipSecurity> 要素は、IIS 8.5 では変更されませんでした。 |
IIS 8.0 | プロキシ経由で接続するクライアントからの要求をブロックできるようにするために、enableProxyMode 属性が追加されました。 IIS がクライアントに返す既定の拒否モード応答を指定する denyAction 属性が追加されました。 |
IIS 7.5 | <ipSecurity> 要素は、IIS 7.5 では変更されませんでした。 |
IIS 7.0 | <ipSecurity> 要素が IIS 7.0 で導入されました。 |
IIS 6.0 | <ipSecurity> 要素は、IIS 6.0 IPSecurity メタベース プロパティを置き換えます。 |
段取り
IIS の既定のインストールには、IP セキュリティの役割サービスまたは Windows 機能は含まれません。 IIS で IP セキュリティを使用するには、次の手順を使用して役割サービスまたは Windows 機能をインストールする必要があります。
Windows Server 2012 または Windows Server 2012 R2
- タスク バーで [サーバー マネージャー]をクリックします。
- [サーバー マネージャー] で、[管理] メニューを選択し、[役割と機能の追加] を選択します。
- [役割と機能の追加] ウィザードで、[次へ] をクリックします。 インストールの種類を選択し、[次へ] をクリックします。 対象サーバーを選択し、[次へ] を選択します。
- [サーバーの役割] ページで [Web サーバー (IIS)] を展開し、[Web サーバー]、[セキュリティ] の順に展開し、[IP およびドメインの制限] を選択します。 次へ をクリックします。
. - [機能の選択] ページで、[次へ] をクリックします。
- [インストール オプションの確認] ページで、[インストール] をクリックします。
- [結果] ページで、 [閉じる]をクリックします。
Windows 8 または Windows 8.1
- [スタート] 画面で、ポインターを左下隅まで移動し、[スタート] ボタンを右クリックし、[コントロール パネル] をクリックします。
- [コントロール パネル] で [プログラムと機能] を選択し、[Windows の機能の有効化または無効化] を選択します。
- [インターネット インフォメーション サービス]を展開し、[World Wide Web サービス] を展開し、[セキュリティ] を展開して、[IP セキュリティ] を選択します。
- OK をクリックします。
- 閉じるをクリックします。
Windows Server 2008 または Windows Server 2008 R2
タスク バーで [スタート] をクリックし、[管理ツール] をポイントして、[サーバー マネージャ] をクリックします。
[サーバー マネージャ] 階層ウィンドウで [役割] を展開し、[Web サーバー (IIS)] をクリックします。
[Web サーバー (IIS)] ウィンドウで、[役割サービス] セクションまでスクロールし、[役割サービスの追加] を選択します。
役割サービスの追加ウィザードの [役割サービスの選択] ページで、[IP およびドメインの制限] を選択し、[次へ] をクリックします。
[インストール オプションの確認] ページで、[インストール] をクリックします。
[結果] ページで、 [閉じる]をクリックします。
Windows Vista または Windows 7
タスク バーで、[スタート]、[コントロール パネル] の順にクリックします。
[コントロール パネル] で [プログラムと機能] を選択し、[Windows の機能の有効化または無効化] を選択します。
[インターネット インフォメーション サービス]、[World Wide Web サービス]、[セキュリティ] の順に展開します。
[IP セキュリティ] を選択し、[OK] を選択します。
操作方法
Web サイトのアクセスを拒否する IP 制限を追加する方法
インターネット インフォメーション サービス (IIS) マネージャーを開きます。
Windows Server 2012 または Windows Server 2012 R2 を使用している場合:
- タスク バーで、[サーバー マネージャー] をクリックし、[ツール]、[インターネット インフォメーション サービス (IIS) マネージャー] の順にクリックします。
Windows 8 または Windows 8.1 を使用している場合:
- Windows キーを押しながら文字 X を押し、[コントロール パネル] をクリックします。
- [管理ツール] をクリックし、[インターネット インフォメーション サービス (IIS) マネージャー] をダブルクリックします。
Windows Server 2008 または Windows Server 2008 R2 を使用している場合:
- タスク バーで、[スタート] ボタンをクリックし、[管理ツール]、[インターネット インフォメーション サービス (IIS) マネージャー] の順にクリックします。
Windows Vista または Windows 7 を使用している場合:
- タスク バーで、[スタート]、[コントロール パネル] の順にクリックします。
- [管理ツール] をダブルクリックし、[インターネット インフォメーション サービス (IIS) マネージャー] をダブルクリックします。
[接続] ウィンドウで、サーバー名を展開し、[サイト] を展開し、IP 制限を追加するサイト、アプリケーション、または Web サービスを選択します。
Web サイトの IP 制限機能の設定を編集する方法
インターネット インフォメーション サービス (IIS) マネージャーを開きます。
Windows Server 2012 または Windows Server 2012 R2 を使用している場合:
- タスク バーで、[サーバー マネージャー] をクリックし、[ツール]、[インターネット インフォメーション サービス (IIS) マネージャー] の順にクリックします。
Windows 8 または Windows 8.1 を使用している場合:
- Windows キーを押しながら文字 X を押し、[コントロール パネル] をクリックします。
- [管理ツール] をクリックし、[インターネット インフォメーション サービス (IIS) マネージャー] をダブルクリックします。
Windows Server 2008 または Windows Server 2008 R2 を使用している場合:
- タスク バーで、[スタート] ボタンをクリックし、[管理ツール]、[インターネット インフォメーション サービス (IIS) マネージャー] の順にクリックします。
Windows Vista または Windows 7 を使用している場合:
- タスク バーで、[スタート]、[コントロール パネル] の順にクリックします。
- [管理ツール] をダブルクリックし、[インターネット インフォメーション サービス (IIS) マネージャー] をダブルクリックします。
[接続] ウィンドウで、サーバー名を展開し、[サイト] を展開し、IP 制限を追加するサイト、アプリケーション、または Web サービスを選択します。
指定されていないクライアントの既定のアクセス動作を選択し、ドメイン名で制限を有効にするかどうかを指定し、[プロキシ モード] を有効にするかどうかを指定して、[拒否時の動作の種類] を選択して、[OK] を選択します。
構成
規則は、一覧に示される順序で上から下に処理されます。 allowUnlisted 属性は最後に処理されます。 インターネット プロトコル セキュリティ (IPsec) の制限のベスト プラクティスは、最初に拒否規則の一覧を作成することです。 allowUnlisted 属性が false に設定されている場合、この属性をクリアすることはできません。
次の既定の <ipSecurity>
要素は、IIS 7 以降のルート ApplicationHost.config ファイルで構成されます。 この構成セクションは、<clear>
要素を使用しない限り、既定の構成設定を継承します。
<ipSecurity allowUnlisted="true" />
属性
属性 | 説明 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
allowUnlisted |
省略可能な Boolean 属性です。 一覧にない IP アドレスを許可するかどうかを指定します。 allowUnlisted 属性を true に設定すると、一覧にない IP アドレスがサーバーにアクセスできるようになります。 allowUnlisted 属性を false に設定すると、サーバーがロックダウンされ、アドレスが一覧に含まれない限り、すべての IP アドレスにアクセスできなくなります。 この属性を false に設定し、ローカル ループバック アドレス (127.0.0.1) を許可された IP アドレスとして一覧に含めない場合、ローカル コンソールからブラウザーを使用してサーバーにアクセスすることはできません。 この属性は委任にも影響を与える可能性があります。 親構成でこの属性を false に設定した場合、 <clear> 要素を使用して子構成ファイルでこの構成をクリアすることはできません。既定値は true です。 |
||||||||||
denyAction |
省略可能な列挙型属性。 IIS がクライアントに返す既定の拒否モード応答を指定します。 既定値は forbidden です。
|
||||||||||
enableProxyMode |
省略可能な Boolean 属性です。 IIS で表示されるクライアント IP からの要求をブロックするだけでなく、x-forwarded-for HTTP ヘッダーで受信した IP アドレスからの要求をブロックすることもできます。 このヘッダーを使用すると、HTTP プロキシまたはロード バランサーを介して接続するクライアントの送信元 IP アドレスを識別できます。 これはプロキシ モードと呼ばれます。 既定値は false です。 |
||||||||||
enableReverseDns |
省略可能な Boolean 属性です。 Web サーバーの逆引きドメイン ネーム システム (DNS) 参照を有効または無効にするかどうかを指定します。 逆引き参照では、IP アドレスがわかっている場合にドメイン名を検索します。 注意: DNS 逆引き参照には、大量のリソースと時間が使われます。 既定値は false です。 |
子要素
要素 | 説明 |
---|---|
add |
省略可能な要素です。 IP アドレス制限のコレクションに IP 制限を追加します。 |
remove |
省略可能な要素です。<ipSecurity> コレクションから制限への参照を削除します。 |
clear |
省略可能な要素です。<ipSecurity> コレクションから制限へのすべての参照を削除します。 |
構成サンプル
次の構成サンプルでは、既定の Web サイトに 2 つの IP 制限を追加します。最初の制限では IP アドレス 192.168.100.1 へのアクセスが拒否され、2 つ目の制限では 169.254.0.0 ネットワーク全体へのアクセスが拒否されます。
<location path="Default Web Site">
<system.webServer>
<security>
<ipSecurity>
<add ipAddress="192.168.100.1" />
<add ipAddress="169.254.0.0" subnetMask="255.255.0.0" />
</ipSecurity>
</security>
</system.webServer>
</location>
サンプル コード
次のコード サンプルでは、既定の Web サイトの逆引き DNS 参照を使用します。
AppCmd.exe
appcmd.exe set config "Default Web Site" -section:system.webServer/security/ipSecurity /enableReverseDns:true /commit:apphost
Note
AppCmd.exe を使用してこれらの設定を構成するときは、commit パラメーターを必ず apphost
に設定する必要があります。 これで、ApplicationHost.config ファイルの適切な場所セクションに構成設定がコミットされます。
C#
using System;
using System.Text;
using Microsoft.Web.Administration;
internal static class Sample
{
private static void Main()
{
using (ServerManager serverManager = new ServerManager())
{
Configuration config = serverManager.GetApplicationHostConfiguration();
ConfigurationSection ipSecuritySection = config.GetSection("system.webServer/security/ipSecurity", "Default Web Site");
ipSecuritySection["enableReverseDns"]=true;
serverManager.CommitChanges();
}
}
}
VB.NET
Imports System
Imports System.Text
Imports Microsoft.Web.Administration
Module Sample
Sub Main()
Dim serverManager As ServerManager = New ServerManager
Dim config As Configuration = serverManager.GetApplicationHostConfiguration
Dim ipSecuritySection As ConfigurationSection = config.GetSection("system.webServer/security/ipSecurity", "Default Web Site")
ipSecuritySection("enableReverseDns") = True
serverManager.CommitChanges()
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var ipSecuritySection = adminManager.GetAdminSection("system.webServer/security/ipSecurity", "MACHINE/WEBROOT/APPHOST/Default Web Site");
ipSecuritySection.Properties.Item("enableReverseDns").Value = True;
adminManager.CommitChanges();
VBScript
Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set ipSecuritySection = adminManager.GetAdminSection("system.webServer/security/ipSecurity", "MACHINE/WEBROOT/APPHOST/Default Web Site")
ipSecuritySection.Properties.Item("enableReverseDns").Value = True
adminManager.CommitChanges()