多个域控制器(2016 和 2019)上的 Windows 防火墙突然停止阻止 RDP 对端口 3389 的访问。
有一个 GPO 防火墙规则可以根据 IP 限制对 RDP 端口的访问,该规则运行良好。测试期间,GPO 最初根据 AD 组成员身份进行过滤。然后从策略中删除 AD 组过滤器,以便将其应用于 OU 中的所有 DC。
突然,IP 阻止停止工作,任何 IP 的连接都可以通过 RDP。该策略正在应用,限制 IP 规则仍会添加到防火墙,但现在没有任何效果。
其他什么都没有改变,我搜索了所有可能的设置,但没有任何东西允许在 RDP 端口上完全访问。
为了测试,我为所有端口和协议添加了一条阻止规则。这似乎阻止了除 RDP 端口之外的所有内容。
防火墙在所有配置文件(域、私人和公共)上打开并启用,并且如果不存在传入允许规则则设置为阻止。
我尝试删除 GPO、将防火墙重置为默认值、删除所有传入规则、将防火墙设置为阻止所有连接,但端口 3389 仍然打开。
作为另一项测试,我将 RDP 监听端口更改为随机端口,结果端口被阻止了。将其重新设置为 3389,然后 RDP 再次连接。
有人见过这样的事情吗?
答案1
您可以尝试启用 WFP 审计日志记录并检查 3389 的允许事件。然后从事件中获取 filterID 并查找匹配的防火墙规则。请参阅如何判断哪条 Windows 防火墙规则阻止了流量步骤。这是找出哪条规则过于宽松/限制的最佳方法。
您还可以使用 powershell 搜索机器上的现有规则。按端口或服务过滤的规则是最常见的。以下是内置 RDP 规则的示例:
# Search for rules allowing the RDP service to listen:
Get-NetFirewallServiceFilter -Service TermService -PolicyStore ActiveStore |
Select InstanceID,Service
InstanceID Service
---------- -------
RemoteDesktop-UserMode-In-TCP termservice
RemoteDesktop-UserMode-In-UDP termservice
# Search for rules allowing port 3389:
Get-NetFirewallPortFilter -All -PolicyStore ActiveStore |
Where LocalPort -EQ 3389 |
Select InstanceID,Protocol,LocalPort
InstanceID Protocol LocalPort
---------- -------- ---------
RemoteDesktop-UserMode-In-TCP TCP 3389
RemoteDesktop-UserMode-In-UDP UDP 3389
您可能看不到所有活动规则,具体取决于您查看规则的方式以及规则的配置位置。Windows 适用于多个策略存储,而且一些奇怪的往往不会显示在图形查看器中
答案2
事实证明,这个问题是由 Crowdstrike Windows Sensor 引起的。当安装在 Windows 域控制器上时,它会使用 RDP 检查来验证连接的主机。问题是,目前有一个悄悄承认的错误,导致它与基于主机的防火墙发生冲突。他们正在努力修复,但尚未确定交付日期。
这只会影响具有 DC 角色的服务器。
幸好,RDP 检查组件可以禁用。然后防火墙就可以正常工作了。