如何configurationWindows防火墙以允许MSRPC?

我正在尝试使用只允许列入白名单的stream量的防火墙来configuration端点计算机,并且所有其他连接都被阻止。

客户端计算机是使用内置高级安全Windows防火墙运行Windows 7(x86和x64)的台式机和便携式计算机。 每台机器都是Windows Server 2008域的一部分,我正在使用组策略configuration防火墙。 我正在用一小部分机器testing这个防火墙configuration。

现在,我将Windows防火墙configuration为阻止与显式允许规则不匹配的所有入站和出站stream量。 以下是目前启用的基本通信:

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

另外,我为我们使用的业务应用程序定义了一些规则。 这一直工作得很好,但今天我遇到了MSRPC(微软远程过程调用)的一些问题。

我打开mmc.exe并加载计算机pipe理pipe理单元以修改本地pipe理员组。 在“select用户,计算机…”窗口中,input用户名,然后单击“检查名称”。 它给了我以下错误:

 Windows cannot process the object with the name "Foo Bar" because of the following error: Access is denied. 

当我删除防火墙的限制,它工作正常。 被阻塞的stream量是MSRPC,使用随机select的端口[49100 … 65535]。

我如何创buildWindows防火墙的规则,允许MSRPCstream量,而不会创build一个过分宽泛的规则,如允许所有端口上的TCPstream量?

KB154596 “如何configurationRPCdynamic端口分配以使用防火墙”

简而言之,看起来您将通过GPO部署许多registry更改。 确保logging你所做的一切,为什么你做到了。 如果有其他人需要在这里pipe理系统,那么看到像RPC这样基本的硬件连接到某些端口将是相当震撼的。 不是这样不好 ,请介意。 只是不同。

我创build了一个Windows防火墙规则,允许%SystemRoot%\System32\mmc.exe所有TCP通信,并完全解决了这个问题。

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

  • %SYSTEMROOT%\ SYSTEM32 \ spoolsv.exe的
  • %PROGRAMFILES%\ Hyper-V的\ vmconnect.exe