共用方式為


保證加密

保證加密 IPsec 原則案例需要所有相符流量的 IPsec 加密。 此原則必須與其中一個傳輸模式原則選項一起指定。

保證加密通常用來為每個應用程式加密敏感性流量。

可能的保證加密案例範例是「保護所有單播資料流量,但 ICMP 除外,使用 IPsec 傳輸模式、啟用交涉探索,並要求所有對應至 TCP 本機埠 5555 的單播流量都保證加密」。

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

在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
  3. 新增具有下列屬性的篩選。 如果 TCP 埠 5555 已加密,此篩選準則將只允許連入連線。

    Filter 屬性
    FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE 篩選準則 NlatUnicast
    FWPM_CONDITION_IP_PROTOCOL 篩選準則 IPPROTO_TCP此常數定義于 winsock2.h 中。
    FWPM_CONDITION_IP_LOCAL_PORT 篩選準則 5555
    action.type FWP_ACTION_CALLOUT_TERMINATING
    action.calloutKey FWPM_CALLOUT_IPSEC_INBOUND_INITIATE_SECURE_V{4|6}
    rawCoNtext FWPM_CONTEXT_ALE_SET_CONNECTION_REQUIRE_IPSEC_ENCRYPTION

在 FWPM_LAYER_ALE_AUTH_CONNECT_V{4|6} 設定每個連線的輸出篩選規則

  • 新增具有下列屬性的篩選。 如果 TCP 埠 5555 已加密,此篩選準則只會允許來自 TCP 埠 5555 的輸出連線。

    Filter 屬性
    FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE 篩選準則 NlatUnicast
    FWPM_CONDITION_IP_PROTOCOL 篩選準則 IPPROTO_TCP此常數定義于 winsock2.h 中。
    FWPM_CONDITION_IP_LOCAL_PORT 篩選準則 5555
    action.type FWP_ACTION_CALLOUT_TERMINATING
    action.calloutKey FWPM_CALLOUT_IPSEC_ALE_CONNECT_V{4|6}
    rawCoNtext FWPM_CONTEXT_ALE_SET_CONNECTION_REQUIRE_IPSEC_ENCRYPTION

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

ALE 層

內建圖說文字識別碼

篩選準則

篩選圖層識別碼

FWPM_ACTION0

FWPM_PROVIDER_CONTEXT_TYPE