トランスポート モード
トランスポート モードの IPsec ポリシー シナリオでは、一致するすべてのトラフィックに IPsec トランスポート モード保護が必要です。 一致するクリア テキスト トラフィックは、IKE または AuthIP ネゴシエーションが正常に完了するまで破棄されます。 ネゴシエーションに失敗した場合、対応する IP アドレスとの接続は切断されたままになります。
考えられるトランスポート モード シナリオの例として、「IPsec トランスポート モードを使用して、ICMP を除くすべてのユニキャスト データ トラフィックをセキュリティで保護する」があります。
この例をプログラムで実装するには、次の WFP 構成を使用します。
次の MM ポリシー プロバイダー コンテキストの一方または両方を追加します。
- IKE の場合、種類が FWPM_IPSEC_IKE_MM_CONTEXTのポリシー プロバイダー コンテキスト。
- AuthIP の場合、種類が FWPM_IPSEC_AUTHIP_MM_CONTEXTのポリシー プロバイダー コンテキスト。
Note
共通のキー作成モジュールがネゴシエートされ、対応する MM ポリシーが適用されます。 IKE と AuthIP の両方がサポートされている場合は、AuthIP が優先されるキーモジュールです。
手順 1 で追加したコンテキストごとに、次のプロパティを含むフィルターを追加します。
Filter プロパティ 値 フィルター条件 空白。 すべてのトラフィックがフィルターと一致します。 providerContextKey 手順 1 で追加した MM プロバイダー コンテキストの GUID。 次の QM トランスポート モード ポリシー プロバイダー コンテキストの一方または両方を追加します。
- IKE の場合、種類が FWPM_IPSEC_IKE_QM_TRANSPORT_CONTEXTのポリシー プロバイダー コンテキスト。
- AuthIP の場合、種類が FWPM_IPSEC_AUTHIP_QM_TRANSPORT_CONTEXTのポリシー プロバイダー コンテキスト。 このコンテキストには、必要に応じて、AuthIP 拡張モード (EM) ネゴシエーション ポリシーを含めることができます。
Note
共通キー作成モジュールがネゴシエートされ、対応する QM ポリシーが適用されます。 IKE と AuthIP の両方がサポートされている場合は、AuthIP が優先されるキーモジュールです。
手順 1 で追加したコンテキストごとに、次のプロパティを含むフィルターを追加します。
Filter プロパティ 値 フィルター条件 空白。 すべてのトラフィックがフィルターと一致します。 providerContextKey 手順 1 で追加された QM プロバイダー コンテキストの GUID。 次のプロパティを含むフィルターを追加します。
Filter プロパティ 値 フィルター条件のFWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE NlatUnicast action.type FWP_ACTION_CALLOUT_TERMINATING action.calloutKey FWPM_CALLOUT_IPSEC_INBOUND_TRANSPORT_V{4|6} 次のプロパティを持つフィルターを追加して、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 次のプロパティを含むフィルターを追加します。
Filter プロパティ 値 フィルター条件のFWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE NlatUnicast action.type FWP_ACTION_CALLOUT_TERMINATING action.calloutKey FWPM_CALLOUT_IPSEC_OUTBOUND_TRANSPORT_V{4|6} 次のプロパティを持つフィルターを追加して、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_IKEEXT_V{4|6} で MM ネゴシエーション ポリシーを設定する
FWPM_LAYER_IPSEC_V{4|6} で QM と EM ネゴシエーション ポリシーを設定する
FWPM_LAYER_INBOUND_TRANSPORT_V{4|6} では、パケットごとの受信フィルター規則を設定します
FWPM_LAYER_OUTBOUND_TRANSPORT_V{4|6} でパケットごとの送信フィルター規則を設定する