如何配置 Windows 防火墙以允许 MSRPC?

如何配置 Windows 防火墙以允许 MSRPC?

我正在尝试为端点机器配置一个防火墙,只允许白名单流量,而所有其他连接都被阻止。

客户端计算机是运行 Windows 7(x86 和 x64)的台式机和笔记本电脑,使用内置的高级安全 Windows 防火墙。每台计算机都是 Windows Server 2008 域的一部分,我正在使用组策略配置防火墙。我正在用一小部分计算机测试此防火墙配置。

目前,我已将 Windows 防火墙配置为阻止所有不符合明确允许规则的入站和出站流量。以下是当前启用的基本通信:

  • DNS(UDP 53 输出)
  • LDAP(TCP 389 输出,UDP 389 输出)
  • 远程桌面(TCP 3389 输出)
  • 网页浏览(TCP 80 输出)
  • 预设:核心网络
  • 预设:分布式事务协调器
  • 预设:文件和打印机共享
  • 预设:网络发现
  • 预设:远程协助

此外,我还为我们使用的业务应用程序定义了一些规则。这些规则一直运行良好,但今天我遇到了一些 MSRPC(Microsoft 远程过程调用)问题。

我打开mmc.exe并加载计算机管理插件以修改本地管理员组。在“选择用户、计算机...”窗口中,我输入用户名,然后单击“检查名称”。它给出了以下错误:

Windows cannot process the object with the name "Foo Bar" because of the following error:

Access is denied.

当我删除防火墙限制时,它工作正常。被阻止的流量是 MSRPC,它使用 [49100...65535] 范围内随机选择的端口。

如何为 Windows 防火墙创建一条允许 MSRPC 流量的规则,而无需创建过于宽泛的规则(例如允许所有端口上的 TCP 流量)?

答案1

KB154596“如何配置 RPC 动态端口分配以与防火墙配合使用”

简而言之,看起来您将通过 GPO 部署大量注册表更改。确保记录您所做的一切以及这样做的原因。如果其他人必须在那里管理系统,那么看到像 RPC 这样基本的东西硬连线到某些端口将令人震惊。并不是说它坏的,请注意。只是不同而已。

答案2

我创建了一条 Windows 防火墙规则,允许所有 TCP 流量,从而%SystemRoot%\System32\mmc.exe彻底解决了该问题。

此外,我注意到另外两个程序也需要允许所有 TCP 流量:

  • %SystemRoot%\System32\spoolsv.exe
  • %ProgramFiles%\Hyper-V\vmconnect.exe

相关内容