次の方法で共有


IIS 8.0 動的 IP アドレス制限

作成者: Robert McMurray

互換性

バージョン メモ
IIS 8.0 IIS 8.0 に組み込まれている動的 IP アドレス制限。
IIS 7.5 動的 IP アドレス制限は、IIS 7.5 の帯域外モジュールとして使用できました。
IIS 7.0 動的 IP アドレス制限は、IIS 7.0 の帯域外モジュールとして使用できました。

問題

IIS 7 以前のバージョンには、管理者が個々の IP アドレスまたは IP アドレスの範囲に対するアクセスを許可または拒否できる組み込み機能がありました。 IP アドレスがブロックされると、その IP アドレスの HTTP クライアントは、サーバーから HTTP エラー "403.6 Forbidden" 応答を受け取りました。 この機能を使用すると、管理者は、サーバーのログに表示されるアクティビティまたは Web サイトのアクティビティに基づいて、サーバーへのアクセスをカスタマイズできます。 ただし、これは手動のプロセスです。 Microsoft の LogParser ユーティリティなどのツールを使用して IIS ログ ファイルを調べ、悪意のあるユーザーを検出する機能をスクリプト化できますが、これには引き続き手動介入が必要です。

解決策

IIS 8.0 では、Microsoft は組み込み機能を拡張して、いくつかの新機能を追加しました。

  • 動的 IP アドレスのフィルタリング。これにより、管理者は、指定された数の要求を超える IP アドレスへのアクセスをブロックするようにサーバーを構成できます。
  • この IP アドレスのフィルタリング機能により、管理者は IIS が IP アドレスをブロックするときの動作を指定できるようになりました。これにより、悪意のあるクライアントからの要求は、HTTP 403.6 応答をクライアントに返す代わりにサーバーによって中止されるようになります。
  • IP フィルタリングにプロキシ モードが追加されました。これにより、IIS が認識するクライアント IP だけでなく、x-forwarded-for HTTP ヘッダーで受信した値によっても IP アドレスをブロックできるようになります。

ステップ バイ ステップの手順

前提条件:

  • IIS 8.0 がインストールされている Windows Server 2012 マシン。

    Note

    IP とドメインの制限機能は、IIS の一部としてインストールする必要があります。

    [I P] と [ドメインの制限] のチェック ボックスがオンになっていることを示すスクリーンショット。

既知のバグの回避策:

現時点では、この機能に関する既知のバグはありません。

HTTP 要求に基づいてアクセスを拒否するように IIS を構成する

IIS 8.0 は、指定された期間内に HTTP クライアントがサーバーにアクセスする回数、または HTTP クライアントからのコンカレント接続の数に基づいて、Web サイトへのアクセスを拒否するように構成できます。

受信する HTTP 要求の数に基づいてアクセスを拒否するように IIS を構成するには、次の手順を実行します。

  1. Windows Server 2012 コンピューターに管理者としてログインします。
  2. インターネット インフォメーション サービス (IIS) マネージャーを開きます。
  3. [接続] ペインでサーバー名、Web サイト、またはフォルダー パスを強調表示し、機能の一覧で [IP アドレスおよびドメインの制限] をダブルクリックします。
    I I S マネージャーを示すスクリーンショット。[既定の Web サイトホーム] ウィンドウが開き、[I P アドレスとドメインの制限] が選択されています。
  4. 操作ウィンドウで、[ダイナミック制限の設定の編集] をクリックします。
    [I P アドレスとドメイン制限] ウィンドウが開いているのを示すスクリーンショット。[操作] ウィンドウで [動的制限設定の編集] が強調表示されています。
  5. HTTP クライアントが多すぎる同時接続を確立しないようにする場合は、[Dynamic IP Restriction の設定] ダイアログ ボックスが表示されたら、[同時要求の回数に基づいて IP アドレスを拒否する] をオンにします。 また、HTTP クライアントが特定の期間内に多すぎる接続を確立しないようにする場合は、[一定時間内の要求回数に基づいて IP アドレスを拒否する] ボックスをオンにします。
    [Dynamic I P Restriction Settings]\(動的 I P 制限設定\) ダイアログ ボックスを示すスクリーンショット。最初の 2 つの項目でチェック ボックスがオンになっています。
  6. OK をクリックします。

IP アドレスを拒否するときの IIS の動作の構成

IIS 7 以前のバージョンでは、クライアント IP アドレスがブロックされると、IIS はサーバーから HTTP エラー "403.6 Forbidden" 応答を返していました。 IIS 8.0 では、管理者は、いくつかの追加の方法で IP アドレスへのアクセスを拒否するようにサーバーを構成できます。

IP アドレスを拒否するときに IIS が使用する動作を構成するには、次の手順を実行します。

  1. Windows Server 2012 コンピューターに管理者としてログインします。

  2. インターネット インフォメーション サービス (IIS) マネージャーを開きます。

  3. [接続] ペインでサーバー名、Web サイト、またはフォルダー パスを強調表示し、機能の一覧で [IP アドレスおよびドメインの制限] をダブルクリックします。
    I I S マネージャーを示すスクリーンショット。[既定の Web サイト ホーム] ウィンドウで [I P アドレスとドメインの制限] が選択されています。

  4. [操作] ペインで、[機能設定の編集] をクリックします。
    [操作] ウィンドウで [機能設定の編集] が強調表示されている [I P アドレスとドメインの制限] ウィンドウを示すスクリーンショット。

  5. [IP およびドメイン制限設定の編集] ダイアログ ボックスが表示されたら、[拒否時の動作の種類] ドロップダウン メニューをクリックし、IIS が使用する動作を次の値から選択します。

    • Unauthorized: IIS は HTTP 401 応答を返します。

    • Forbidden: IIS は HTTP 403 応答を返します。

    • Not Found: IIS は HTTP 404 応答を返します。

    • Abort: IIS は HTTP 接続を終了します。

      [I P とドメイン制限の設定の編集] ダイアログ ボックスを示すスクリーンショット。[拒否アクションの種類] リストから [禁止] が選択されています。

  6. OK をクリックします。

プロキシ モード用の IIS の構成

IP フィルタリングの課題の 1 つは、多くのクライアントが 1 つ以上のファイアウォール、負荷分散、またはプロキシ サーバーを介して IIS にアクセスするため、IIS サーバーに最も近い要求パスのサーバーとして IP アドレスが常に表示される可能性があることです。 IIS 8.0 では、管理者は、ブロックする要求を決定するために、クライアント IP アドレスに加えて x-forwarded-for HTTP ヘッダーを調べるようにサーバーを構成できます。 この動作は "プロキシ モード" と呼ばれます。

プロキシ モード用に IIS を構成するには、次の手順を実行します。

  1. Windows Server 2012 コンピューターに管理者としてログインします。
  2. インターネット インフォメーション サービス (IIS) マネージャーを開きます。
  3. [接続] ペインでサーバー名、Web サイト、またはフォルダー パスを強調表示し、機能の一覧で [IP アドレスおよびドメインの制限] をダブルクリックします。
    [既定の Web サイトホーム] ウィンドウを示すスクリーンショット。[I P アドレス] と [ドメインの制限] が選択されています。
  4. [操作] ペインで、[機能設定の編集] をクリックします。
    [操作] ウィンドウで [機能設定の編集] が強調表示されている I I S マネージャーを示すスクリーンショット。
  5. [IP およびドメイン制限設定の編集] ダイアログ ボックスが表示されたら、[プロキシ モードを有効にする] ボックスをオンにします。
    [編集とドメインの制限の設定] ダイアログ ボックスを示すスクリーンショット。チェックボックスで[プロキシモードを有効にする]が選択されています。
  6. OK をクリックします。

まとめ

このガイドでは、クライアント IP アドレスからの要求の数に基づいてサーバーへのアクセスを動的に拒否するように IIS を構成する方法と、悪意のある可能性のあるユーザーへのアクセスを拒否するときに IIS が使用する動作を構成する方法について説明しました。