我刚刚对我们的网络运行了 nmap 扫描,发现许多 Windows 7 计算机都有多个使用 Microsoft Windows RPC 进行监听的高端口。示例:
Port Serv Process name
49152, msrpc [wininit.exe]
49153, msrpc [svchost.exe, Eventlog]
49154, msrpc [svchost.exe, Schedule]
49155, msrpc [lsass.exe]
49157, msrpc [services.exe]
49159, msrpc [svchost.exe, PolicyAgent]
出于安全原因,我想关闭任何不需要的监听服务,或者至少使用 Windows FW 阻止相关端口。
我意识到上述进程是我无法关闭的系统进程,但也许可以进行一些配置来阻止它们监听?
最后,不确定是否相关,但我们不使用任何域或 Active Directory - 仅使用针对 Samba 服务器的工作组。
所以,我的问题是:
- 一般情况下需要哪些聆听服务?
- 在我的场景中,我可以以某种方式禁用它们吗(=让它们不听)?
- 如果 #2 不可行,我可以用 FW 安全地阻止它们吗?
谢谢。
答案1
- 端口 49152 提供了通过以下方式远程关闭计算机的功能:关机程序工具。可以通过写入注册表 DWord 来禁用它HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableRemoteShutdownRPCInterface=1
- 端口 49153 允许远程查看事件日志。我还不知道如何禁用它。
- 端口 49154 允许远程查看和管理计划任务。可以通过写入注册表 DWord 来禁用它HKLM\Software\Microsoft\Windows NT\CurrentVersion\Schedule\DisableRpcOverTcp=1
- 端口 49155:我不确定它的作用或如何禁用它。
- 端口 49157 允许远程查看和管理本地服务。可以通过写入注册表 DWord 来禁用它HKLM\System\CurrentControlSet\Control\DisableRPCOverTCP=1
- 端口 49159:我还没有在最终用户计算机上看到过这个端口。
您可以按照以下步骤禁用所有 RPC 端口:
- 确保您已禁用上面列出的所有可禁用的 RPC。
- 删除HKLM\Software\Microsoft\Rpc\Internet
- 写HKLM\Software\Microsoft\Rpc\Internet\UseInternetPorts="N"
不幸的是,完全禁用 RPC 端口会破坏 Windows 8 及更高版本中的打印后台处理程序。要重新启用,只需重复上述步骤 2。
答案2
就像您发现的那样,各种 Windows 服务都在动态 RPC 端口上进行监听。这些通常对应于服务列表中的服务。但是,其中一些是您确实不想关闭的服务。发生这种情况时,您需要使用内置的 Windows 防火墙来阻止访问。它们仍在监听,但没有什么可以访问它们,这使它们能够通过网络审核。
MS Dynamic RPC 系列确实自 Vista 开始发生变化,至 49152-65535。您甚至可以根据需要调整范围:
netsh int ipv4 set dynamic tcp start=49152 number=50 # yields a range of 49152-49202