共用方式為


交涉探索傳輸模式

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

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

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

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

若要以程式設計方式實作此範例,請使用下列 WFP 設定。

在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。

at 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。

at 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
    權數 FWPM_WEIGHT_RANGE_IKE_EXEMPTIONS

at 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
    權數 FWPM_WEIGHT_RANGE_IKE_EXEMPTIONS

at 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
    權數 FWPM_WEIGHT_RANGE_IKE_EXEMPTIONS

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

ALE 層次

內建圖說文字標識碼

篩選條件

篩選圖層標識碼

FWPM_ACTION0

FWPM_PROVIDER_CONTEXT_TYPE