如何将 Active Directory RPC 流量限制到特定端口

本文介绍如何限制 Active Directory (AD) 复制远程过程调用 (RPC) 流量到 Windows Server 中的特定端口。

适用于: 所有受支持的 Windows Server 版本
原始 KB 数: 224196

总结

默认情况下,Active Directory 复制远程过程调用(RPC)通过使用端口 135 通过 RPC 终结点映射器(RPCSS)通过可用端口动态发生。 管理员可以替代此功能并指定所有 Active Directory RPC 流量通过的端口。 此过程锁定端口。

在详细信息中使用注册表项指定要使用的端口时,终结点映射器会将 Active Directory 服务器端复制流量和客户端 RPC 流量发送到这些端口。 此配置是可能的,因为 Active Directory 支持的所有 RPC 接口都在侦听的所有端口上运行。

注意

本文不介绍如何为防火墙配置 AD 复制。 必须打开其他端口,以使复制通过防火墙工作。 例如,可能需要为 Kerberos 协议打开端口。 若要获取跨防火墙的服务所需的端口的完整列表,请参阅 Windows 的服务概述和网络端口要求。

详细信息

重要

此部分(或称方法或任务)介绍了修改注册表的步骤。 但是,注册表修改不当可能会出现严重问题。 因此,按以下步骤操作时请务必谨慎。 作为额外保护措施,请在修改注册表之前先将其备份。 如果之后出现问题,您就可以还原注册表。 有关如何备份和还原注册表的详细信息,请参阅:如何备份和还原 Windows 中的注册表

连接到 RPC 终结点时,客户端上的 RPC 运行时会联系服务器上的 RPCSS(135)。 它获取用于支持所需 RPC 接口的服务连接到的端口。 它假定客户端不知道完整的绑定。 这是所有 AD RPC 服务的情况。

服务在启动时注册一个或多个终结点,并选择动态分配的端口或特定端口。

如果将 Active Directory 和 Netlogon 配置为按以下条目中的端口 x 运行,则除了标准动态端口之外,还会成为向终结点映射器注册的端口。

使用注册表编辑器在要使用的受限端口的每个域控制器上修改以下值。 成员服务器不被视为登录服务器。 因此,NTDS 的静态端口分配对成员服务器没有影响。

成员服务器确实具有 Netlogon RPC 接口,但很少使用。 一些示例可能是远程配置检索,例如 nltest /server:member.contoso.com /sc_query:contoso.com

注册表项 1

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters
注册表值:TCP/IP 端口
值类型:REG_DWORD
值数据:(可用端口)

重启计算机,使新设置生效。

注册表项 2

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters
注册表值:DCTcpipPort
值类型:REG_DWORD
值数据:(可用端口)

重启 Netlogon 服务,使新设置生效。

注意

使用 DCTcpipPort 注册表项时,将其设置为与注册表项相同的端口 TCP/IP Port 时,会收到 Netlogon 错误事件 5809 下 NTDS\Parameters。 这表示配置的端口正在使用中,应选择其他端口。

拥有唯一端口时,将收到相同的事件,并在域控制器上重启 Netlogon 服务。 此行为是特意这样设计的。 之所以发生,是因为 RPC 运行时管理其服务器端口的方式。 重启后将使用端口,可以忽略该事件。

如果任何中间网络设备或软件用于筛选域控制器之间的数据包,管理员应确认是否启用了通过指定端口的通信。

通常,还必须手动设置文件复制服务 (FRS) RPC 端口,因为 AD 和 FRS 复制使用相同的域控制器进行复制。 FRS RPC 端口应使用不同的端口。

不要假定客户端仅使用 Netlogon RPC 服务,因此只需要设置 DCTcpipPort 。 客户端还使用其他 RPC 服务,例如 SamRPC、LSARPC 和目录复制服务(DRS)接口。 应始终配置注册表设置,并在防火墙上打开这两个端口。

已知问题

指定端口后,可能会遇到以下问题:

若要解决问题,请安装文章中提到的更新。

数据收集

如果需要Microsoft支持方面的帮助,建议按照使用 TSS 收集 Active Directory 复制问题的信息中所述的步骤收集信息。