远程标识授权
远程标识授权 IPsec 策略方案要求入站连接来自在 Windows 安全描述符(SD)访问控制列表(ACL)中指定的特定远程安全主体集。 如果远程标识(由 IPsec 确定)与允许的标识集不匹配,则会删除连接。 必须结合其中一个传输模式策略选项指定此策略。
如果启用了 AuthIP,则可以指定两个安全描述符、一个对应于 AuthIP 主模式,另一个对应于 AuthIP 扩展模式。
一个可能的协商发现传输模式方案的示例是“保护除 ICMP 以外的所有单播数据流量,使用 IPsec 传输模式,启用协商发现,并根据安全描述符 SD1(对应于 IKE/AuthIP 主模式)和安全描述符 SD2(对应于 AuthIP 扩展模式)限制对 TCP 本地端口 5555 的所有单播流量允许的入站访问。
若要以编程方式实现此示例,请使用以下 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 传输模式策略提供程序上下文中的一个或两个,并设置 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 是首选密钥模块。
对于步骤 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} rawContext FWPM_CONTEXT_IPSEC_INBOUND_PERSIST_CONNECTION_SECURITY 通过添加具有以下属性的筛选器来免除 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} rawContext FWPM_CONTEXT_IPSEC_OUTBOUND_NEGOTIATE_DISCOVER 通过添加具有以下属性的筛选器来免除 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 添加具有以下属性的筛选器。 仅当入站连接尝试受 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} 通过添加具有以下属性的筛选器来免除 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 添加具有以下属性的筛选器。 如果 SD1 和 SD2 允许相应的远程标识,此筛选器将允许到 TCP 端口 5555 的入站连接。
Filter 属性 价值 FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE 筛选条件 NlatUnicast FWPM_CONDITION_IP_PROTOCOL 筛选条件 IPPROTO_TCPwinsock2.h 中定义了此常量。 FWPM_CONDITION_IP_LOCAL_PORT 筛选条件 5555 FWPM_CONDITION_ALE_REMOTE_MACHINE_ID SD1 FWPM_CONDITION_ALE_REMOTE_USER_ID SD2 action.type FWP_ACTION_CALLOUT_TERMINATING action.calloutKey FWPM_CALLOUT_IPSEC_INBOUND_INITIATE_SECURE_V{4|6} 添加具有以下属性的筛选器。 此筛选器将阻止与上一筛选器不匹配的 TCP 端口 5555 的任何其他入站连接。
Filter 属性 价值 FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE 筛选条件 NlatUnicast FWPM_CONDITION_IP_PROTOCOL 筛选条件 IPPROTO_TCPwinsock2.h 中定义了此常量。 FWPM_CONDITION_IP_LOCAL_PORT 筛选条件 5555 action.type FWP_ACTION_BLOCK
FWPM_LAYER_IKEEXT_V{4|6} 设置 MM 协商策略
at FWPM_LAYER_IPSEC_V{4|6} 设置 QM 和 EM 协商策略
FWPM_LAYER_INBOUND_TRANSPORT_V{4|6} 设置入站每数据包筛选规则
at FWPM_LAYER_OUTBOUND_TRANSPORT_V{4|6} 设置出站每数据包筛选规则
FWPM_LAYER_ALE_AUTH_RECV_ACCEPT_V{4|6} 设置入站每连接筛选规则