次の方法で共有


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

  1. タスク バーで [サーバー マネージャー]をクリックします。
  2. [サーバー マネージャー] で、[管理] メニューを選択し、[役割と機能の追加] を選択します。
  3. [役割と機能の追加] ウィザードで、[次へ] をクリックします。 インストールの種類を選択し、[次へ] をクリックします。 対象サーバーを選択し、[次へ] を選択します。
  4. [サーバーの役割] ページで [Web サーバー (IIS)] を展開し、[Web サーバー][セキュリティ] の順に展開し、[IP およびドメインの制限] を選択します。 次へ をクリックします。
    Windows Server 2012 で選択されている I P とドメインの制限を示すスクリーンショット。 .
  5. [機能の選択] ページで、[次へ] をクリックします。
  6. [インストール オプションの確認] ページで、[インストール] をクリックします。
  7. [結果] ページで、 [閉じる]をクリックします。

Windows 8 または Windows 8.1

  1. [スタート] 画面で、ポインターを左下隅まで移動し、[スタート] ボタンを右クリックし、[コントロール パネル] をクリックします。
  2. [コントロール パネル][プログラムと機能] を選択し、[Windows の機能の有効化または無効化] を選択します。
  3. [インターネット インフォメーション サービス]を展開し、[World Wide Web サービス] を展開し、[セキュリティ] を展開して、[IP セキュリティ] を選択します。
    Windows 8 で [I P Security] が選択されていることを示すスクリーンショット。
  4. OK をクリックします。
  5. 閉じるをクリックします。

Windows Server 2008 または Windows Server 2008 R2

  1. タスク バーで [スタート] をクリックし、[管理ツール] をポイントして、[サーバー マネージャ] をクリックします。

  2. [サーバー マネージャ] 階層ウィンドウで [役割] を展開し、[Web サーバー (IIS)] をクリックします。

  3. [Web サーバー (IIS)] ウィンドウで、[役割サービス] セクションまでスクロールし、[役割サービスの追加] を選択します。

  4. 役割サービスの追加ウィザード[役割サービスの選択] ページで、[IP およびドメインの制限] を選択し、[次へ] をクリックします。

    Windows Server 2008 で選択されている I P とドメインの制限を示すスクリーンショット。

  5. [インストール オプションの確認] ページで、[インストール] をクリックします。

  6. [結果] ページで、 [閉じる]をクリックします。

Windows Vista または Windows 7

  1. タスク バーで、[スタート][コントロール パネル] の順にクリックします。

  2. [コントロール パネル][プログラムと機能] を選択し、[Windows の機能の有効化または無効化] を選択します。

  3. [インターネット インフォメーション サービス][World Wide Web サービス][セキュリティ] の順に展開します。

  4. [IP セキュリティ] を選択し、[OK] を選択します。

    Windows Vista または Windows 7 で [I P Security] が選択されていることを示すスクリーンショット。

操作方法

Web サイトのアクセスを拒否する IP 制限を追加する方法

  1. インターネット インフォメーション サービス (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) マネージャー] をダブルクリックします。
  2. [接続] ウィンドウで、サーバー名を展開し、[サイト] を展開し、IP 制限を追加するサイト、アプリケーション、または Web サービスを選択します。

  3. [ホーム] ウィンドウで、[IP アドレスおよびドメインの制限] 機能をダブルクリックします。
    [ホーム] ウィンドウの [I P アドレスとドメインの制限] アイコンを示すスクリーンショット。

  4. [IP アドレスおよびドメインの制限] 機能で、[拒否エントリの追加][操作] ウィンドウで選択します。
    I I S マネージャーの [I P アドレスとドメインの制限] ウィンドウを示すスクリーンショット。

  5. 拒否する IP アドレスを入力し、[OK] を選択します。
    [拒否制限規則の追加] ダイアログ ボックスを示すスクリーンショット。特定の I P アドレスが選択されます。


Web サイトの IP 制限機能の設定を編集する方法

  1. インターネット インフォメーション サービス (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) マネージャー] をダブルクリックします。
  2. [接続] ウィンドウで、サーバー名を展開し、[サイト] を展開し、IP 制限を追加するサイト、アプリケーション、または Web サービスを選択します。

  3. [ホーム] ウィンドウで、[IP アドレスおよびドメインの制限] 機能をダブルクリックします。
    [I P アドレス] と [ドメインの制限] アイコンを示すスクリーンショット。

  4. [IP アドレスおよびドメインの制限] 機能で、[機能設定の編集][操作] ウィンドウで選択します。
    [I P アドレス] と [ドメインの制限] ウィンドウを示すスクリーンショット。

  5. 指定されていないクライアントの既定のアクセス動作を選択し、ドメイン名で制限を有効にするかどうかを指定し、[プロキシ モード] を有効にするかどうかを指定して、[拒否時の動作の種類] を選択して、[OK] を選択します。
    [I P とドメイン制限の設定の編集] ダイアログ ボックスのスクリーンショット。[拒否アクションの種類] には [禁止] が選択されています。

構成

規則は、一覧に示される順序で上から下に処理されます。 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 です。
Value 説明
AbortRequest IIS が既定で拒否モードの Abort の応答をクライアントに送り返す必要があることを指定します。

この数値は 0 です。

Unauthorized IIS が既定で拒否モードの Unauthorized の応答をクライアントに送り返す必要があることを指定します。 ブラウザー ベースのクライアントがリモート側で使用されている場合、「未承認」を返すと、認証ダイアログがリモート クライアントに表示され、IIS に対する誤った認証試行が発生する可能性があります。

この数値は 401 です。

Forbidden IIS が既定で拒否モードの Forbidden の応答をクライアントに送り返す必要があることを指定します。

この数値は 403 です。

NotFound IIS が既定で拒否モードの Not Found の応答をクライアントに送り返す必要があることを指定します。

この数値は 404 です。

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()