トランスポート モード
トランスポート モードの IPsec ポリシー シナリオでは、一致するすべてのトラフィックに対して IPsec トランスポート モード保護が必要です。 一致するクリア テキスト トラフィックは、IKE または AuthIP ネゴシエーションが正常に完了するまで破棄されます。 ネゴシエーションが失敗した場合、対応する IP アドレスとの接続は切断されたままになります。
トランスポート モードのシナリオの例として、「IPsec トランスポート モードを使用して、ICMP を除くすべてのユニキャスト データ トラフィックをセキュリティで保護する」があります。
この例をプログラムで実装するには、次の WFP 構成を使用します。
次の MM ポリシー プロバイダー コンテキストのいずれかまたは両方を追加します。
- IKE の場合、種類が FWPM_IPSEC_IKE_MM_CONTEXTのポリシー プロバイダー コンテキスト。
- AuthIP の場合、種類が FWPM_IPSEC_AUTHIP_MM_CONTEXTのポリシー プロバイダー コンテキスト。
手記
共通キーモジュールがネゴシエートされ、対応する 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) ネゴシエーション ポリシーを含めることができます。
手記
共通キー・モジュールがネゴシエートされ、対応する 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 重み を する 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 重み を する FWPM_WEIGHT_RANGE_IKE_EXEMPTIONS
FWPM_LAYER_IKEEXT_V{4|6} で MM ネゴシエーション ポリシー を設定する
FWPM_LAYER_IPSEC_V{4|6} で QM と EM ネゴシエーション ポリシーの を設定する
at FWPM_LAYER_INBOUND_TRANSPORT_V{4|6} では、パケットごとの受信フィルター規則を設定
FWPM_LAYER_OUTBOUND_TRANSPORT_V{4|6} でパケットごとの送信フィルター規則を設定