Windows高级防火墙 – 添加授权计算机中断规则

如何在其他工作的IPSec规则中添加“只允许连接到这些计算机”设置中断连接?

背景:

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

服务器端的设置和function应该没有任何问题。 设置使用传统IPSec接口服务器端和Windows高级防火墙客户端configuration。

首先将身份validation设置为Kerberos(计算机)或计算机证书。 双方使用'请求入站和出站'作为他们的validation模式。

双方都使用“请求IPSec”模式,因为可能有非IPSecstream量传递给其他设备。

客户端上的Windows高级防火墙规则function完美, 直到我定义“只允许连接到这些计算机”选项。

wireshark捕获显示ISAKMP和ESPstream量,我正在看安全关联列表中的主模式和快速模式关联。

编辑:

根据MS文档,我启用了以下日志logging来debugging我的连接问题。

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 – 被阻止。 我没有看到任何其他阻塞的stream量。

编辑:

当我启用SMB或RDP规则时,看起来没有任何stream量被传递到服务器。 Wireshark什么也没有显示。 看起来几年前在这里有这样的情况,但没有解决。

看来,Windows过滤平台不应该阻止这个stream量,当它应该是允许的。

 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 

只是一些build议/问题(我有这种规则configuration工作在我的环境中,所以我很好奇,为什么它不工作)…

1)您提到客户端正在使用带有高级安全IPsec策略的Windows防火墙,但服务器端正在使用传统IPsec。 服务器运行的是旧版本的Windows,还是传统的IPsec策略configuration的原因是什么? 我不是说这不应该工作(因为你试图做机器validation,而不是用户身份validation),但它可能会使事情复杂化。 服务器也可以configuration高级安全策略吗? 你可以尝试一个服务器与高级策略和Kerberos v5计算机validation看看会发生什么?

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

3)有几种不同的方法来configuration防火墙规则中的“只允许连接到这些计算机”设置。 默认要求您的IPsec连接进行身份validation和完整性保护…而其他设置允许您确保它也被encryption或它是空封装(只validation,不完整性保护)。 如果你的客户机/服务器是Windows 7+,那么你可能想尝试空封装选项,看看是否有助于缩小问题。

4)我通常会build议从WFP捕获日志(netsh wfp capture start)来debugging防火墙丢弃的stream量,因为这会显示丢弃stream量的确切filter。 在这种情况下,日志可能不会非常有趣,因为它可能是默认的出站阻止filter,由于您不符合安全允许规则(出于某种原因)阻止了您的连接。 日志将显示连接被删除,但不会解释为什么您不符合允许规则。 也许这是值得一试虽然… http://technet.microsoft.com/en-us/library/ff428146(v=ws.10).aspx

经过与MS有13个月的麻烦,我们终于为这个“预期的行为”提出了一个“解决scheme”。


select具有高级安全性的Windows防火墙将对符合防火墙规则条件的networking数据包执行的操作。 如果定义了多个防火墙规则,则匹配评估的顺序取决于规则中指定的操作。 防火墙规则按以下顺序进行评估:

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

在每个类别中,规则从最具体到最不具体的方式进行评估。 指定四个条件的规则是通过仅指定三个条件的规则select的。

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

换句话说,即使一个networking包匹配多于一个规则,也只有首先对该包进行评估的匹配规则被应用于该包。

按照他们,如果有任何匹配的规则,允许在防火墙规则的stream量将通过未encryption。

需要做的是确保默认情况下有一个阻止规则,然后使用Option Override Block规则创build一个Secure规则来使事情有效。

请参阅http://technet.microsoft.com/en-us/library/cc730690.aspx以获取更多信息。