ExpressRoute プライベート ピアリング用の IPsec トランスポート モードを構成する

この記事では、トランスポート モードを使用して ExpressRoute プライベート ピアリング経由で IPsec トンネルを作成する方法について説明します。 トンネルは、Windows を実行している Azure VM とオンプレミスの Windows ホストの間に作成されます。 この記事に含まれるこの構成手順では、グループ ポリシー オブジェクトを使用します。 一方、組織単位 (OU) とグループ ポリシー オブジェクト (GPO) を使用せずにこの構成を作成することもできます。 OU と GPO を組み合わせると、セキュリティ ポリシーの制御を簡素化し、すばやくスケールアップできるようになります。 この記事の手順では、既に Active Directory 構成があり、OU と GPO の使用に慣れていることを前提としています。

この構成について

次の手順の構成では、ExpressRoute プライベート ピアリングで 1 つの Azure Virtual Network (VNet) を使用します。 ただし、この構成は他の Azure VNet やオンプレミス ネットワークにまたがることができます。 この記事では、Azure VM やオンプレミス ホストのグループに適用できる IPsec 暗号化ポリシーを定義する方法について説明します。 これらの Azure VM やオンプレミス ホストは、同じ OU に含まれています。 Azure VM (vm1 と vm2) と、宛先ポート 8080 を使用する HTTP トラフィック専用のオンプレミス host1 の間の暗号化を構成します。 必要に応じて、さまざまな種類の IPsec ポリシーを作成することができます。

OU の使用

OU に関連付けられているセキュリティ ポリシーは、GPO を介してコンピューターにプッシュされます。 単一ホストにポリシーを適用するよりも、OU を使用するいくつかの利点を以下に示します。

  • ポリシーを OU に関連付けることにより、同じ OU に属しているコンピューターで同じポリシーを取得することが保証されます。
  • OU に関連付けられているセキュリティ ポリシーを変更すると、OU 内のすべてのホストに変更が適用されます。

ダイアグラム

次のダイアグラムは、相互接続と割り当てられている IP アドレス空間を示しています。 Azure VM とオンプレミス ホストでは、Windows 2016 が実行されています。 Azure VM とオンプレミス host1 は同じドメインの一部です。 Azure VM とオンプレミス ホストでは、DNS を使用して正しく名前を解決できます。

1

このダイアグラムは、ExpressRoute プライベート ピアリングでの転送中の IPsec トンネルを示しています。

4

IPsec ポリシーの使用

Windows では、暗号化は IPsec ポリシーに関連付けられています。 IPsec ポリシーによって、セキュリティで保護される IP トラフィックと、IP パケットに適用されるセキュリティ メカニズムが決定されます。 IPSec ポリシーを構成する項目は、フィルター一覧フィルター操作、およびセキュリティ規則です。

IPsec ポリシーを構成する場合、次の IPsec ポリシーの用語を理解することが重要です。

  • IPsec ポリシー: 規則のコレクション。 特定の時点でアクティブにできる ("割り当てることができる") のは、1 つのポリシーのみです。 各ポリシーには 1 つ以上の規則を含めることができ、すべて同時にアクティブにできます。 特定の時点でコンピューターに割り当てることができるアクティブな IPsec ポリシーは 1 つのみです。 しかし、IPsec ポリシー内には、さまざまな状況で行われる場合がある複数の操作を定義することができます。 各 IPsec 規則セットは、規則が適用されるネットワーク トラフィックの種類に影響するフィルター一覧に関連付けられています。

  • フィルター一覧: フィルター一覧は 1 つ以上のフィルターの集まりです。 1 つの一覧に複数のフィルターを含めることができます。 フィルターは、次の条件に基づいて、通信がブロックされるか、許可されるか、またはセキュリティによって保護されるかを定義します。IP アドレス範囲、プロトコル、または特定のポート。 各フィルターを特定の条件セットと一致させます。たとえば、特定のサブネットから所定の宛先ポートの特定のコンピューターに送信されたパケットなどです。 ネットワーク条件がそれらのフィルターの 1 つ以上と一致すると、フィルター一覧がアクティブになります。 各フィルターは、特定のフィルター一覧内で定義されます。 フィルターをフィルター一覧間で共有することはできません。 しかし、指定されたフィルター一覧をいくつかの IPsec ポリシーに組み込むことができます。

  • フィルター操作: セキュリティ メソッドでは、一連のセキュリティ アルゴリズム、プロトコル、および IKE ネゴシエーション中にコンピューターで提供されるキーが定義されます。 フィルター操作は、優先順にランク付けされる、セキュリティ メソッドの一覧です。 コンピューターで IPsec セッションがネゴシエートされると、フィルター操作一覧に格納されているセキュリティ設定に基づいて、提案が受け入れられるか、送信されます。

  • セキュリティ規則: 規則によって、IPsec ポリシーでの通信の保護方法とそのタイミングが管理されます。 フィルター一覧フィルター操作を使用して、IPsec 接続を構築するための IPsec 規則が作成されます。 各ポリシーには 1 つ以上の規則を含めることができ、すべて同時にアクティブにできます。 各規則には、IP フィルターの一覧と、そのフィルター一覧と一致したときに行われるセキュリティ操作のコレクションが含まれます。

    • IP フィルター操作
    • 認証方法
    • IP トンネルの設定
    • 接続の種類

5

開始する前に

次の前提条件が満たされていることを確認します。

  • グループ ポリシー設定を実装するために使用できる、機能している Active Directory 構成が必要です。 GPO の詳細については、「Group Policy Objects」 (グループ ポリシー オブジェクト) を参照してください。

  • アクティブな ExpressRoute 回線が必要です。

    • ExpressRoute 回線の作成については、ExpressRoute 回線の作成に関するページを参照してください。
    • 接続プロバイダーによって回線が有効化されることを確認します。
    • 回線用に Azure プライベート ピアリングが構成されていることを確認します。 ルーティング手順については、 ルーティングの構成 に関する記事を参照してください。
    • VNet と仮想ネットワーク ゲートウェイが作成され、完全にプロビジョニングされていることを確認します。 指示に従って ExpressRoute 用の仮想ネットワーク ゲートウェイを作成します。 ExpressRoute 用の仮想ネットワーク ゲートウェイは、VPN ではなく GatewayType ExpressRoute を使用します。
  • ExpressRoute 仮想ネットワーク ゲートウェイは、ExpressRoute 回線に接続する必要があります。 詳細については、ExpressRoute 回線への VNet の接続に関するページを参照してください。

  • Azure Windows VM が VNet にデプロイされていることを確認します。

  • オンプレミス ホストと Azure VM 間に接続があることを確認します。

  • Azure Windows VM とオンプレミス ホストで DNS 名を使用して名前を正しく解決できることを確認します。

ワークフロー

  1. GPO を作成し、それを OU に関連付けます。
  2. IPsec のフィルター操作を定義します。
  3. IPsec のフィルター一覧を定義します。
  4. セキュリティ規則を使用して、IPsec ポリシーを作成します。
  5. IPsec GPO を OU に割り当てます。

値の例

  • ドメイン名: ipsectest.com

  • OU: IPSecOU

  • オンプレミス Windows コンピューター: host1

  • Azure Windows VM: vm1、vm2

1.GPO を作成する

  1. [グループ ポリシーの管理] スナップインを開いて、OU にリンクされている新しい GPO を作成します。 次に、GPO がリンクされる OU を見つけます。 例では、OU に IPSecOU という名前が付けられています。

    9

  2. [グループ ポリシーの管理] スナップインで、OU を選択して右クリックします。 ドロップダウンで、 [このドメインに GPO を作成し、このコンテナーにリンクする] を選択します。

    10

  3. 後で簡単に見つけられるように、GPO にわかりやすい名前を付けます。 [OK] を選択し、GPO を作成してリンクします。

    11

OU に GPO を適用するには、GPO を OU にリンクするだけでなく、リンクを有効にする必要もあります。

  1. 作成した GPO を見つけて右クリックし、ドロップダウンから [編集] を選択します。

  2. OU に GPO を適用するには、 [リンクの有効化] を選択します。

    12

3.IP フィルター操作を定義する

  1. ドロップダウンで [IP Security Policy on Active Directory](IP セキュリティ ポリシー (Active Directory)) を右クリックしてから、 [IP フィルター一覧とフィルター操作の管理] を選択します。

    15

  2. [フィルター操作の管理] タブで、 [追加] を選択します。

    16

  3. IP セキュリティ フィルター操作ウィザードで、 [次へ] を選択します。

    17

  4. 後で見つけられるように、フィルター操作にわかりやすい名前を付けます。 この例では、フィルター操作に myEncryption という名前が付いています。 説明を追加することもできます。 次に、 [次へ] を選択します。

    18

  5. セキュリティのネゴシエートでは、別のコンピューターで IPsec を確立できない場合の動作を定義することができます。 [セキュリティのネゴシエート] を選択してから、 [次へ] を選択します。

    19

  6. [IPsec をサポートしないコンピューターとの通信] ページで、 [Do not allow unsecured communication](セキュリティで保護されていない通信を許可しない) を選択してから [次へ] を選択します。

    20

  7. [IP Traffic and Security](IP トラフィック セキュリティ) ページで、 [カスタム] を選択してから [設定] を選択します。

    21

  8. [カスタム セキュリティ メソッドの設定] ページで、 [データの整合性と暗号化 (ESP)] からSHA1、3DES を選択します。 [OK] をクリックします。

    22

  9. [フィルター操作の管理] ページで、myEncryption フィルターが正常に追加されたことを確認できます。 [閉じる] を選択します。

    23

4.IP フィルター一覧を定義する

宛先ポート 8080 で暗号化された HTTP トラフィックを指定するフィルター一覧を作成します。

  1. 暗号化する必要があるトラフィックの種類を特定するには、IP フィルター一覧を使用します。 [IP フィルター一覧の管理] タブで、 [追加] を選択して新しい IP フィルター一覧を追加します。

    24

  2. [名前] フィールドで、IP フィルター一覧の名前を入力します。 たとえば、「azure-onpremises-HTTP8080」と入力します。 その後、 [追加] を選択します。

    25

  3. [IP フィルターの説明とミラー化のプロパティ] ページで、 [ミラー化] を選択します。 ミラー化の設定では両方向のパケットを一致させます。これにより、双方向通信が可能になります。 [次へ] を選択します。

    26

  4. [IP トラフィックの発信元] ページの [発信元アドレス] ドロップダウンから、 [A specific IP Address or Subnet](特定の IP アドレスまたはサブネット) を選択します。

    27

  5. IP トラフィックの発信元アドレスの [IP Address or Subnet](IP アドレスまたはサブネット) を指定してから、 [次へ] を選択します。

    28

  6. [送信先アドレス] としてIP アドレスまたはサブネットを指定します。 次に、 [次へ] を選択します。

    29

  7. [IP プロトコルの種類] ページで、 [TCP] を選択します。 次に、 [次へ] を選択します。

    30

  8. [IP プロトコルのポート] ページで、 [任意の発信ポート][次の宛先ポート] を選択します。 テキスト ボックスに「8080」と入力します。 これらの設定では、宛先ポート 8080 の HTTP トラフィックのみが暗号化されるように指定します。 次に、 [次へ] を選択します。

    31

  9. IP フィルター一覧を表示します。 IP フィルター一覧 azure-onpremises-HTTP8080 の構成により、次の条件に一致するすべてのトラフィックの暗号化がトリガーされます。

    • 10.0.1.0/24 (Azure Subnet2) の任意の発信元アドレス
    • 10.2.27.0/25 (オンプレミス サブネット) のすべての宛先アドレス
    • TCP プロトコル
    • 宛先ポート 8080

    32

5.IP フィルター一覧を編集する

オンプレミス ホストから Azure VM への同じ種類のトラフィックを暗号化するには、2 番目の IP フィルターが必要です。 最初の IP フィルターを設定するときに使用したのと同じ手順に従い、新しい IP フィルターを作成します。 唯一の違いは、発信元サブネットと宛先サブネットです。

  1. IP フィルター一覧に新しい IP フィルターを追加するには、 [編集] を選択します。

    33

  2. [IP フィルター一覧] ページで、 [追加] を選択します。

    34

  3. 次の例の設定を使用して、2 番目の IP フィルターを作成します。

    35

  4. 2 番目の IP フィルターを作成した後、IP フィルター一覧は次のようになります。

    36

アプリケーションを保護するためにオンプレミスの場所と Azure サブネットの間で暗号化が必要な場合は、 既存の IP フィルター一覧を変更するのではなく、新しい IP フィルター一覧を追加できます。 2 つ以上の IP フィルター一覧を同じ IPsec ポリシーに関連付けると、柔軟性が向上することがあります。 IP フィルター一覧は、他の IP フィルター一覧に影響を与えずに変更または削除できます。

6.IPsec セキュリティ ポリシーを作成する

セキュリティ規則を使用して、IPsec ポリシーを作成します。

  1. OU に関連付けられている [IPSecurity Policies on Active directory](IP セキュリティ ポリシー (Active Directory)) を選択します。 右クリックして [IP セキュリティ ポリシーの作成] を選択します。

    37

  2. セキュリティ ポリシーに名前を付けます。 たとえば、policy-azure-onpremises という名前を付けます。 次に、 [次へ] を選択します。

    38

  3. チェック ボックスをオンにせずに、 [次へ] を選択します。

    39

  4. [プロパティの編集] チェック ボックスがオンになっていることを確認してから、 [完了] を選択します。

    40

7.IPsec セキュリティ ポリシーを編集する

IPsec ポリシーに、先ほど構成した IP フィルター一覧フィルター操作を追加します。

  1. [HTTP policy Properties](HTTP ポリシーのプロパティ) の [規則] タブで、 [追加] を選択します。

    41

  2. [ようこそ] ページで [次へ] をクリックします。

    42

  3. 規則では、IPsec モード (トンネル モードまたはトランスポート モード) を定義するためのオプションが提供されます。

    • トンネル モードの場合、元のパケットが一連の IP ヘッダーでカプセル化されます。 トンネル モードでは、元のパケットの IP ヘッダーを暗号化することで、内部ルーティング情報を保護します。 トンネル モードは、サイト間 VPN シナリオにおけるゲートウェイ間で広く実装されています。 トンネル モードは、ほとんどの場合、ホスト間のエンドツーエンド暗号化で使用されます。

    • トランスポート モードではペイロードと ESP トレーラーのみが暗号化されます。元のパケットの IP ヘッダーは暗号化されません。 トランスポート モードの場合、パケットの IP 発信元と IP 宛先は変わりません。

    [この規則ではトンネルを指定しない] を選択してから、 [次へ] を選択します。

    43

  4. [ネットワークの種類] では、セキュリティ ポリシーに関連付けるネットワーク接続を定義します。 [すべてのネットワーク接続] を選択してから、 [次へ] を選択します。

    44

  5. 先ほど作成した IP フィルター一覧 azure-onpremises-HTTP8080 を選択し、[次へ] を選択します。

    45

  6. 先ほど作成した、既存のフィルター操作 myEncryption を選択します。

    46

  7. Windows は、Kerberos、証明書、NTLMv2、および事前共有キーという 4 つの異なる種類の認証をサポートします。 ここではドメインに参加しているホストを使用しているため、 [Active Directory 既定値 (Kerberos V5 プロトコル)] を選択して、 [次へ] を選択します。

    47

  8. 新しいポリシーでは azure-onpremises-HTTP8080 というセキュリティ規則が作成されます。 [OK] を選択します。

    48

IPsec ポリシーでは、宛先ポート 8080 のすべての HTTP 接続で IPsec トランスポート モードを使用することが求められます。 HTTP はクリア テキストのプロトコルであるため、セキュリティ ポリシーを有効にすることで、データは ExpressRoute プライベート ピアリング経由で転送されるときに確実に暗号化されます。 Active Directory の IPsec ポリシーは、セキュリティが強化された Windows ファイアウォールよりも構成が複雑になります。 ただし、IPsec 接続をさらにカスタマイズすることができます。

8.IPsec GPO を OU に割り当てる

  1. ポリシーを表示します。 セキュリティ グループ ポリシーは定義されていますが、まだ割り当てられていません。

    49

  2. OU (IPSecOU) にセキュリティ グループ ポリシーを割り当てるには、セキュリティ ポリシーを右クリックして [割り当て] を選択します。 OU に属するすべてのコンピューターにセキュリティ グループ ポリシーが割り当てられます。

    50

トラフィックの暗号化を確認する

OU で適用された暗号化 GPO を確認するには、すべての Azure VM および host1 に IIS をインストールします。 すべての IIS は、ポート 8080 で HTTP 要求に応答するためにカスタマイズされます。 暗号化を確認するために、OU 内のすべてのコンピューターで (Wireshark などの) ネットワーク スニファーをインストールできます。 PowerShell スクリプトは、ポート 8080 で HTTP 要求を生成する HTTP クライアントとして動作します。

$url = "http://10.0.1.20:8080"
while ($true) {
try {
[net.httpWebRequest]
$req = [net.webRequest]::create($url)
$req.method = "GET"
$req.ContentType = "application/x-www-form-urlencoded"
$req.TimeOut = 60000

$start = get-date
[net.httpWebResponse] $res = $req.getResponse()
$timetaken = ((get-date) - $start).TotalMilliseconds

Write-Output $res.Content
Write-Output ("{0} {1} {2}" -f (get-date), $res.StatusCode.value__, $timetaken)
$req = $null
$res.Close()
$res = $null
} catch [Exception] {
Write-Output ("{0} {1}" -f (get-date), $_.ToString())
}
$req = $null

# uncomment the line below and change the wait time to add a pause between requests
#Start-Sleep -Seconds 1
}

次のネットワーク キャプチャには、オンプレミス host1 の結果が、暗号化されたトラフィックのみと一致させる表示フィルター ESP と共に示されています。

51

オンプレミスで PowerShell スクリプト (HTTP クライアント) を実行すると、Azure VM のネットワーク キャプチャで同様のトレースが示されます。

次のステップ

ExpressRoute の詳細については、「 ExpressRoute のFAQ」をご覧ください。