次の方法で共有


トランスポート モード

トランスポート モードの IPsec ポリシー シナリオでは、一致するすべてのトラフィックに IPsec トランスポート モード保護が必要です。 一致するクリア テキスト トラフィックは、IKE または AuthIP ネゴシエーションが正常に完了するまで破棄されます。 ネゴシエーションに失敗した場合、対応する IP アドレスとの接続は切断されたままになります。

考えられるトランスポート モード シナリオの例として、「IPsec トランスポート モードを使用して、ICMP を除くすべてのユニキャスト データ トラフィックをセキュリティで保護する」があります。

この例をプログラムで実装するには、次の WFP 構成を使用します。

FWPM_LAYER_IKEEXT_V{4|6} で MM ネゴシエーション ポリシーを設定する

  1. 次の MM ポリシー プロバイダー コンテキストの一方または両方を追加します。

    • IKE の場合、種類が FWPM_IPSEC_IKE_MM_CONTEXTのポリシー プロバイダー コンテキスト。
    • AuthIP の場合、種類が FWPM_IPSEC_AUTHIP_MM_CONTEXTのポリシー プロバイダー コンテキスト。

    Note

    共通のキー作成モジュールがネゴシエートされ、対応する MM ポリシーが適用されます。 IKE と AuthIP の両方がサポートされている場合は、AuthIP が優先されるキーモジュールです。

  2. 手順 1 で追加したコンテキストごとに、次のプロパティを含むフィルターを追加します。

    Filter プロパティ
    フィルター条件 空白。 すべてのトラフィックがフィルターと一致します。
    providerContextKey 手順 1 で追加した MM プロバイダー コンテキストの GUID。

FWPM_LAYER_IPSEC_V{4|6} で QM と EM ネゴシエーション ポリシーを設定する

  1. 次の QM トランスポート モード ポリシー プロバイダー コンテキストの一方または両方を追加します。

    • IKE の場合、種類が FWPM_IPSEC_IKE_QM_TRANSPORT_CONTEXTのポリシー プロバイダー コンテキスト。
    • AuthIP の場合、種類が FWPM_IPSEC_AUTHIP_QM_TRANSPORT_CONTEXTのポリシー プロバイダー コンテキスト。 このコンテキストには、必要に応じて、AuthIP 拡張モード (EM) ネゴシエーション ポリシーを含めることができます。

    Note

    共通キー作成モジュールがネゴシエートされ、対応する QM ポリシーが適用されます。 IKE と AuthIP の両方がサポートされている場合は、AuthIP が優先されるキーモジュールです。

  2. 手順 1 で追加したコンテキストごとに、次のプロパティを含むフィルターを追加します。

    Filter プロパティ
    フィルター条件 空白。 すべてのトラフィックがフィルターと一致します。
    providerContextKey 手順 1 で追加された QM プロバイダー コンテキストの GUID。

FWPM_LAYER_INBOUND_TRANSPORT_V{4|6} では、パケットごとの受信フィルター規則を設定します

  1. 次のプロパティを含むフィルターを追加します。

    Filter プロパティ
    フィルター条件のFWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE NlatUnicast
    action.type FWP_ACTION_CALLOUT_TERMINATING
    action.calloutKey FWPM_CALLOUT_IPSEC_INBOUND_TRANSPORT_V{4|6}
  2. 次のプロパティを持つフィルターを追加して、IPsec から ICMP トラフィックを除外します。

    Filter プロパティ
    フィルター条件のFWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE NlatUnicast
    フィルター条件のFWPM_CONDITION_IP_PROTOCOL IPPROTO_ICMP{V6}これらの定数は winsock2.h で定義されています。
    action.type FWP_ACTION_PERMIT
    weight FWPM_WEIGHT_RANGE_IKE_EXEMPTIONS

FWPM_LAYER_OUTBOUND_TRANSPORT_V{4|6} でパケットごとの送信フィルター規則を設定する

  1. 次のプロパティを含むフィルターを追加します。

    Filter プロパティ
    フィルター条件のFWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE NlatUnicast
    action.type FWP_ACTION_CALLOUT_TERMINATING
    action.calloutKey FWPM_CALLOUT_IPSEC_OUTBOUND_TRANSPORT_V{4|6}
  2. 次のプロパティを持つフィルターを追加して、IPsec から ICMP トラフィックを除外します。

    Filter プロパティ
    フィルター条件のFWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE NlatUnicast
    フィルター条件のFWPM_CONDITION_IP_PROTOCOL IPPROTO_ICMP{V6}これらの定数は winsock2.h で定義されています。
    action.type FWP_ACTION_PERMIT
    weight FWPM_WEIGHT_RANGE_IKE_EXEMPTIONS

サンプル コード: トランスポート モードの使用

レイヤー識別子のフィルター処理

プロバイダー コンテキストの種類

フィルター条件

FWPM_ACTION0

組み込みの吹き出し識別子