Windows 高级防火墙 - 添加授权计算机违反规则

Windows 高级防火墙 - 添加授权计算机违反规则

在其他方面都有效的 IPSec 规则中添加“仅允许连接到这些计算机”设置怎么会破坏连接呢?

背景:

我正在设置一组基本的客户端规则,限制出站 SMB 访问只能到达某些服务器。假设从黑名单开始,需要将所需的通信列入白名单。

服务器端已设置完毕,运行正常,没有任何问题。设置是使用旧版 IPSec 接口服务器端和 Windows 高级防火墙客户端进行的。

首次认证设置为Kerberos(计算机)或计算机证书,双方均采用“请求入站和出站”作为认证模式。

由于可能有非 IPSec 流量传递到其他设备,因此双方都使用“请求 IPSec”模型。

客户端上的 Windows 高级防火墙规则运行正常直到我定义了“仅允许连接到这些计算机”选项。

wireshark 捕获显示 ISAKMP 和 ESP 流量,并且我在安全关联列表中看到主模式和快速模式关联。

编辑:

根据 MS 文档,我启用了以下日志记录来调试我的连接问题。

auditpol /set /subcategory:"Filtering Platform Packet Drop" /success:enable /failure:enable
auditpol /set /subcategory:"Filtering Platform Connection" /success:enable /failure:enable
auditpol /set /subcategory:"IPsec Driver" /success:enable /failure:enable
auditpol /set /subcategory:"IPsec Main Mode" /success:enable /failure:enable
auditpol /set /subcategory:"IPsec Quick Mode" /success:enable /failure:enable
auditpol /set /subcategory:"IPsec Extended Mode" /success:enable /failure:enable

这仅表明给定的服务(我尝试了 SMB 和 RDP)被阻止。我没有看到任何其他被阻止的流量。

编辑:

当我启用 SMB 或 RDP 规则时,似乎根本没有任何流量被传递到相关服务器。Wireshark 没有显示任何内容。几年前似乎也发生过类似的情况这里但没有解决方案。

看起来 Windows 过滤平台错误地阻止了此流量,而它应该允许它。

The Windows Filtering Platform has blocked a connection.

Application Information:
Process ID:     2468
Application Name:   \device\harddiskvolume1\windows\system32\mstsc.exe

Network Information:
Direction:      Outbound
Source Address:     192.168.20.54
Source Port:        49332
Destination Address:    192.168.100.50
Destination Port:       3389
Protocol:       6

答案1

仅给您一些建议/问题(我的环境中有相同类型的规则配置,因此我很好奇为什么它不起作用)...

1) 您提到客户端正在使用具有高级安全 IPsec 策略的 Windows 防火墙,但服务器端正在使用旧版 IPsec。服务器是否运行旧版 Windows,或者旧版 IPsec 策略配置的原因是什么?我并不是说这不应该起作用(因为您尝试进行机器身份验证,而不是用户身份验证),但它可能会使事情复杂化。服务器也可以配置高级安全策略吗?您可以尝试使用高级策略和 Kerberos v5 计算机身份验证的服务器看看会发生什么吗?

2) 为了使您的方案正常工作,IPsec 连接必须使用 Kerberos V5 身份验证(证书身份验证不起作用!)。您提到您的策略可以允许证书连接,因此您可能需要检查主模式安全关联并确保它们确实是使用 Kerberos 而不是证书建立的。

3) 有几种不同的方法可以配置防火墙规则上的“仅允许连接到这些计算机”设置。默认设置要求您的 IPsec 连接经过身份验证和完整性保护……而其他设置允许您确保它也经过加密或它是空封装(仅经过身份验证,不受完整性保护)。如果您的客户端/服务器是 Windows 7+,那么您可能需要尝试空封装选项,看看这是否有助于缩小问题范围。

4) 我通常建议使用 WFP 捕获 (netsh wfp capture start) 的日志来调试防火墙丢弃的流量,因为这样可以向您显示丢弃流量的确切过滤器。但在这种情况下,日志可能不会很有趣,因为可能是默认的出站阻止过滤器阻止了您的连接,因为您不符合安全允许规则(出于某种原因)。日志将显示连接被丢弃,但不会解释您为何不符合允许规则。也许值得一试……http://technet.microsoft.com/en-us/library/ff428146(v=ws.10).aspx

答案2

在与 MS 协商了 13 多个月的问题后,我们终于为这种“预期行为”找到了“解决方案”。


选择高级安全 Windows 防火墙将对符合防火墙规则条件的网络数据包采取的操作。当您定义了多个防火墙规则时,匹配条件的评估顺序取决于规则中指定的操作。防火墙规则的评估顺序如下:

  1. 在自定义如果安全设置则允许对话框中选择覆盖阻止规则,如果安全则允许。
  2. 阻断连接。
  3. 允许连接。
  4. 默认配置文件行为(按照高级安全 Windows 防火墙属性对话框中适用的配置文件选项卡上的指定进行允许或阻止)。

在每个类别中,规则的评估顺序从最具体到最不具体。指定了四个标准的规则优先于仅指定三个标准的规则。

一旦网络数据包与规则匹配,就会触发其操作,并且不会与任何其他规则进行比较。

换句话说,即使网络数据包匹配多个规则,也只有首先针对该数据包进行评估的匹配规则才会应用于该数据包。

按照它们,如果防火墙规则中有任何匹配的规则允许,则流量将以未加密的形式通过。

需要做的是确保默认情况下有一个阻止规则,然后使用选项覆盖阻止规则创建一个安全规则以使其正常工作。

请参考http://technet.microsoft.com/en-us/library/cc730690.aspx了解更多信息。

相关内容