アプリケーション要求ルーティングを使用した転送プロキシの作成

Jim van de Erve による

この記事では、インターネット インフォメーション サービス (IIS) のアプリケーション要求ルーティング (ARR) および URL 書き換え機能を使用して、転送プロキシ サーバーを実装する方法について説明します。

概要

アプリケーション要求ルーティングは、プロキシ サーバーを使用してインターネット トラフィックを制御できる IIS の機能です。 プロキシ サーバーは、要求側のクライアントまたは応答側の Web サーバー ワーカーにサービスを提供する単一の連絡先として機能します。 要求側では、プロキシは複数のクライアントのいずれかからの要求を受け入れ、インターネットに転送します。 インターネットでは、要求はクライアントではなくプロキシから送信されているようです。 応答側では、プロキシはインターネットからの要求を受け入れ、複数のワーカーのいずれかに配布します。 インターネット上では、要求が処理されているようで、バックエンド ワーカーの 1 人ではなく、プロキシ サーバー自体によって応答が生成されているようです。

最初の種類のプロキシ サーバーは、クライアントからの送信要求を処理し、インターネットに転送し、生成された応答をクライアントに返すサーバーで、 転送プロキシと呼ばれます。 2 番目の種類のプロキシ サーバーは、インターネットからの受信要求を処理し、バックエンド ワーカーに転送し、応答をインターネットに返すサーバーを リバース プロキシと呼びます。

前方プロキシとリバース プロキシ

転送プロキシとリバース プロキシの機能は大きく異なりますが、どちらもリクエスターまたはレスポンダーのプロキシとして機能するのと同じ基本的なアクションを実行します。 どちらの場合も、プロキシ サーバーはインターネットからプライベート ネットワークを分離し、セキュリティを強化するための対策を講じることができます。 どちらの場合も、プロキシは要求と応答を処理し、キャッシュまたは圧縮を使用してパフォーマンスを向上させる操作をトラフィックに対して実行し、攻撃から保護し、情報をフィルター処理できるようにします。

転送プロキシとしての ARR

ARR が転送プロキシとして機能する場合、ARR はクライアント コンピューターの内部ネットワーク (またはイントラネット) の一部です。 プロキシは、URL 書き換え規則を使用して、クライアントからインターネットに要求を渡します。 前方プロキシとしての ARR を使用して、キャッシュによって帯域幅の使用状況とパフォーマンスを向上させることができます。ただし、本格的な商用グレードのフォワード プロキシとしては適していません。

ARR は HTTP トラフィックのみを処理し、他のプロトコルは処理しないことに注意してください。 ARR は HTTP CONNECT 動詞をサポートしていないため、HTTPS トラフィックの転送はサポートされません。

転送プロキシとしての ARR

ターゲット Web サーバーに名前を付けるいずれかのクライアントから要求を受信すると、転送プロキシ サーバーは次のように要求を処理し、ファイアウォール経由でインターネットに転送します。

  1. 転送プロキシ サーバーは、クライアントから要求を受信し、その有効性を確認します。
  2. 要求が有効な場合、ARR はキャッシュをチェックして、応答が既に存在するかどうかを確認します。 応答が見つかると、ARR は要求をインターネットに送信せずにクライアントに返します。
  3. ARR がキャッシュ内で応答を見つけられない場合、プロキシ サーバーはファイアウォールを介してインターネット接続と情報を持つコンテンツ サーバーに要求を送信します。
  4. 要求がコンテンツ サーバーによって満たされると、応答はインターネット経由で転送プロキシ サーバーに返されます。 ARR は、応答をキャッシュするように構成できます。

転送プロキシには、次の利点があります。

  • 定期的に要求される情報 (有効な場合) をキャッシュすることで、パフォーマンスが向上し、ネットワーク トラフィックが軽減されます。 最初のリクエスターの応答をキャッシュし、後続のクライアントが同じコンテンツを要求すると、キャッシュからのコンテンツが提供されます。 応答は、コンテンツ サーバーから再度要求されません。
  • 要求が有効であることを確認することで、ネットワーク セキュリティの向上に役立ちます。
  • IIS 圧縮を使用してパフォーマンスを向上させます (有効な場合)。
  • URL 書き換えを使用してポリシーが満たされるようにフィルター処理をサポートします。

転送プロキシとしての ARR のインストールと構成

前提条件

ARR を使用して転送プロキシ サーバーを設定するには、次のものが必要です。

  • Windows 2008 (任意の SKU) 上の IIS 7.0 以降。トレースロール サービスは IIS 用にインストールされています。
  • Microsoft アプリケーション要求ルーティング バージョン 3 と依存モジュール
  • 作業サイトとアプリケーションを持つワーカー サーバーが 1 つ以上。

ARR をインストールする

アプリケーション要求ルーティング バージョン 3 がインストールされていない場合は、 ここからダウンロードできます。 このリンクで表示されるダウンロード サイトには、インストール手順が含まれています。

インストール URL の書き換え

サーバー マネージャーを使用して IIS の URL 書き換えモジュールをインストールします。 詳細については、「 Windows Server 2012 R2 への IIS 8.5 のインストール」を参照してください。

ARR を転送プロキシとして構成する

ARR をプロキシとして有効にし、ARR を転送プロキシとして有効にする URL 書き換え規則を作成するには、次の手順に従います。

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

  2. [ 接続 ] ウィンドウで、サーバーを選択します。

  3. サーバー ウィンドウで、[ アプリケーション要求ルーティング キャッシュ] をダブルクリックします。 ARR キャッシュ アイコン

  4. [操作] ウィンドウで、[サーバー プロキシの設定] をクリックします。 サーバー プロキシの設定

  5. [ アプリケーション要求ルーティング ] ページで、[ プロキシを有効にする] を選択します。 プロキシを有効にする

  6. [操作] ウィンドウで、[適用] をクリックします。 これにより、ARR がサーバー レベルでプロキシとして有効になります。 ARR をプロキシとして有効にする

  7. ARR を転送プロキシに変換するプロセスを開始するには、[ 接続 ] ウィンドウでサーバー ノードをクリックします。

  8. サーバー ウィンドウで、[ URL 書き換え] をダブルクリックします。 URL の書き換え

  9. [操作] ウィンドウで、[ルールの追加] をクリックします。 ルールの追加

  10. [ ルールの追加 ] ダイアログ ボックスで、[ 空白のルール] をダブルクリックします。 空白の規則

  11. [ 受信規則の編集 ] ダイアログ ボックスで、[名前] に「転送プロキシ」と入力 します。 [ 一致 URL ] 領域に、次のように入力します。

    • 使用: ワイルドカード
    • パターン:*

    [転送プロキシ] の [受信規則の編集] ダイアログ ボックスを示すスクリーンショット。

  12. [受信規則の編集] ダイアログ ボックスの [条件] 領域まで下にスクロールし、[追加] をクリックします。 条件の追加

  13. [ 条件の追加 ] ダイアログ ボックスで、次を選択または入力します。

    • 条件入力: {HTTP_HOST}
    • 型: パターンに一致します
    • パターン:*

    受信規則の編集

  14. [受信ルールの編集] ダイアログ ボックスの [アクション] 領域まで下にスクロールし、次のように入力します。

    • アクションの種類: 書き換え
    • 書き換え URL: http://{C:1}/{R:0}

    スクリーンショットは、[アクションの種類の書き換え] と指定した [書き換え URL] を含む [受信規則の編集] ダイアログ ボックスを示しています。

  15. [操作] ウィンドウで、[適用] をクリックします。

    この規則により、HTTP メッセージは転送プロキシを通過できます。 ARR は HTTP CONNECT をサポートしていないため、この転送プロキシでは HTTPS (443) メッセージはサポートされていません。

  16. アプリケーション、ブラウザーなどで必要に応じてプロキシ設定を構成します。