共用方式為


交涉探索傳輸模式

交涉探索傳輸模式 IPsec 原則案例需要所有相符輸入流量的 IPsec 傳輸模式保護,並要求符合輸出流量的 IPsec 保護。 因此,當輸入連線不是時,允許輸出連線回復為純文字。

使用此原則時,當主機電腦嘗試新的輸出連線,而且沒有符合流量的現有 IPsec SA 時,主機會以純文字同時傳送封包,並啟動 IKE 或 AuthIP 交涉。 如果交涉成功,連線會升級為受 IPsec 保護。 否則,連接會保持純文字。 一旦受到 IPsec 保護,就無法將連線降級為純文字。

交涉探索傳輸模式通常用於同時包含支援 IPsec 和非 IPsec 機器的環境中。

可能的交涉探索傳輸模式案例範例是「使用 IPsec 傳輸模式保護 ICMP 以外的所有單播資料流量,並啟用交涉探索」。

若要以程式設計方式實作此範例,請使用下列的一個一開始設定。

在 FWPM_LAYER_IKEEXT_V{4|6} 設定 MM 交涉原則

  1. 新增下列一或兩個 MM 原則提供者內容。

    • 針對 IKE,類型 為 FWPM_IPSEC_IKE_MM_CONTEXT的原則提供者內容。
    • 針對 AuthIP,類型 為 FWPM_IPSEC_AUTHIP_MM_CONTEXT的原則提供者內容。

    注意

    將會交涉通用索引鍵模組,並套用對應的 MM 原則。 如果同時支援 IKE 和 AuthIP,AuthIP 是慣用的金鑰處理模組。

  2. 針對步驟 1 中新增的每個內容,新增具有下列屬性的篩選準則。

    Filter 屬性
    篩選準則 空白。 所有流量都會符合篩選準則。
    providerCoNtextKey 步驟 1 中新增之 MM 提供者內容的 GUID。

在 FWPM_LAYER_IPSEC_V{4|6} 設定 QM 和 EM 交涉原則

  1. 新增下列一或兩個 QM 傳輸模式原則提供者內容,並設定 IPSEC_POLICY_FLAG_ND_SECURE 旗標。

    • 針對 IKE,類型為 FWPM_IPSEC_IKE_QM_TRANSPORT_CONTEXT 的原則提供者內容。
    • 針對 AuthIP,類型為 FWPM_IPSEC_AUTHIP_QM_TRANSPORT_CONTEXT 的原則提供者內容。 此內容可以選擇性地包含 AuthIP 擴充模式 (EM) 交涉原則。

    注意

    將會交涉通用索引鍵模組,並套用對應的 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}
    rawCoNtext FWPM_CONTEXT_IPSEC_INBOUND_PERSIST_CONNECTION_SECURITY
  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}
    rawCoNtext FWPM_CONTEXT_IPSEC_OUTBOUND_NEGOTIATE_DISCOVER
  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_ALE_AUTH_RECV_ACCEPT_V{4|6} 設定每個連線的輸入篩選規則

  1. 使用下列屬性新增篩選。 如果輸入連線嘗試受到 IPsec 保護,此篩選準則將只允許輸入連線嘗試。

    Filter 屬性
    FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE 篩選準則 NlatUnicast
    action.type FWP_ACTION_CALLOUT_TERMINATING
    action.calloutKey FWPM_CALLOUT_IPSEC_INBOUND_INITIATE_SECURE_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

範例程式碼:使用傳輸模式

ALE 層

內建圖說文字識別碼

篩選準則

篩選圖層識別碼

FWPM_ACTION0

FWPM_PROVIDER_CONTEXT_TYPE