Active Directory 依靠远程过程调用 (RPC) 进行域控制器之间的复制。(简单邮件传输协议 [SMTP] 虽可用于架构、配置及全局编录复制等环境,但却无法用于域命名上下文。)
由于事先无法获悉 RPC 服务将使用哪个端口,因此防火墙不得不允许所有高端口通过。
有限的 RPC
优点:仅开放一个高端口,比动态 RPC 更安全
缺点:修改所有服务器的注册表
这种方法更安全,但却需要修改所有域控制器的注册表。可以通过用 Microsoft ® Windows ® 2000 资源工具包中的工具编写脚本这种方式来修改注册表,这样可避免出现配置错误。
必须为 RPC 复制确定一个固定的端口号。Internet Assigned Numbers Authority (IANA) 规定将 49152 - 65535 之间的数字用于专用和动态分配。
使用注册表编辑器,定位到该注册表项:
HKEY_LOCAL_MACHINE
SYSTEM\
CurrentControlSet\
Services\
NTDS\
Parameters\
新添一个名为 TCP/IP Port(包括空格)的 DWORD 值。将该值的数据设为所需的端口号。输入数据前,切记将所显示的数字改为十进制值。对所有 Active Directory 服务器执行此操作。要使更改生效,必须重启这些服务器。
然后,配置防火墙,使其允许:
服务 端口/协议
RPC 终结点映射器 135/TCP, 135/UDP
NetBIOS 名称服务 137/TCP, 137/UDP
NetBIOS 数据文报服务 138/UDP
NetBIOS 会话服务 139/TCP
用于 AD 复制的 RPC 静态端口 /TCP
IP 上的 SMB (Microsoft-DS) 445/TCP, 445/UDP
LDAP 389/TCP
SSL 上的 LDAP 636/TCP
全局编录 LDAP 3268/TCP
SSL 上的全局编录 LDAP 3269/TCP
Kerberos 88/TCP, 88/UDP
DNS 53/TCP, 53/UDP
WINS 解析(如果需要) 1512/TCP, 1512/UDP
WINS 复制(如果需要) 42/TCP, 42/UDP
用注册表值中的端口号替换 。
如前所述,如果不想让 DNS 或 WINS 通过,可用 HOSTS(用于 DNS)和 LMHOSTS(用于 WINS)文件进行名称解析。这些文件存储于 %SystemRoot%\system32\drivers\etc。可查看这些文件,以了解如何使用它们。
该方法仍需要使用终结点映射器,因为客户端无从知道您已给出固定的端口。当客户端请求与 Active Directory 的 RPC UUID 相关联的端口号时,终结点映射器总是返回所设置的固定端口。
下面是一些可导入注册表的文本。这些文本将端口设为 49152。请将其复制到剪贴板,再粘贴到空白的“记事本”屏幕中,然后将该文件以 .REG 扩展名保存,再在 Windows 资源管理器中双击该文件。如果要使用其它端口,请使用 Windows 计算器(科学型)将该值由十进制转换为十六进制。切记,应在该值前填入 4 个 0,如下例所示:
Windows 注册表编辑器 5.00 版
[HKEY_LOCAL_MACHINE \SYSTEM \CurrentControlSet \Services \NTDS \Parameters]
"TCP/IP Port"=dword:0000c000
封装于 IPSec 内
优点:提供的防火墙最安全,域控制器间相互验证,如果需要,可以设置个性化策略,需要时,是部署公钥结构 (PKI) 的极好理由
缺点:在所有服务器上配置 IPSec 策略
IPSec 为轻松封装 RPC 通信并携带这种通信穿过防火墙提供了一个好方法。IPSec 不但简化了 RPC 传输,而且因其具有相互验证功能,从而提高了域控制器间的安全性:通过使用 Kerberos 或机器证书,域控制器可以在真正交换信息前就“知道”将与谁通讯。
本文向您介绍如何利用 Microsoft Management Console (MMC) 接口来创建相应的 IPSec 策略。Windows 2000 资源工具包提供了一种工具:IPSECPOL.EXE,可通过用它编写脚本的方式来创建策略。在准备使用该工具前,一定要通读 IPSECPOL.EXE 文档,并全面理解其内容。因为 IPSECPOL.EXE 与图形用户接口 (GUI) 不同,这个命令行工具几乎没有内置一致性检查。
着手创建策略前,必须先决定:是用证书进行 IPSec 验证,还是用 Windows 2000 内置的 Kerberos2。Kerberos 验证要求两台计算机均处于同一个域中。所以,若要用 Kerberos,就不能在域升级阶段 (DCPROMO) 使用 IPSec,因为此时目标服务器尚不是该域的成员。而点对点隧道协议 (PPTP) 的隧道适用于这种情况,本文将加以介绍。如果不用 Kerberos,而是用证书进行验证,则必须使每个参与 IPSec 复制的域控制器都获得一个证书。 http://www.microsoft.com/windows2000/library/ 中的文档,介绍了如何建立 Windows 2000 证书颁发机构,以及如何为机器证书的自动登记配置域,请参阅这些文档。
若要进行 IPSec 复制和 IPSec 或 PPTP 升级,请配置防火墙,使其允许:
服务 端口/协议
DNS 53/TCP, 53/UDP
PPTP 的建立(如果使用 PPTP) 1723/TCP
GRE,一般路由封装(如果使用 PPTP) IP 协议 47
Kerberos3 88/TCP, 88/UDP
IKE,Internet 密钥交换 500/UDP
IPSec ESP,封装的安全有效负载 IP 协议 50
IPSec AH,已验证的标头 IP 协议 51
请注意,IPSec 不通过网络地址转换 (NAT) 设备起作用。由于 IPSec 在计算数据包校验值时使用 IP 地址,所以,如果 IPSec 数据包的源地址是由 NAT 更改的,那么这些 IPSec 数据包会在到达目的地时被丢弃。
通过 PPTP 隧道升级域控制器
如果在升级阶段选用 PPTP 隧道,则必须在内部网络中配置路由和远程访问 (RRAS)。RRAS 既可以在内部域控制器上运行,也可以在单独的服务器上运行。为简便起见,RRAS 服务器最好与根域控制器位于同一子网中,这样就不必进行静态路由维护了。
配置 RRAS:
选择“开始”、“程序”、“管理工具”、“路由和远程访问”。
用鼠标右键单击左侧面板中的服务器,然后单击“配置并启用路由和远程访问”。RRAS 设置向导即会启动。
单击“手动配置服务器”。