扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
在部署分布式 Active Directory? 目录服务架构时,防火墙会带来两个困难:
最初将服务器升级为域控制器。
在域控制器之间复制通信。
Active Directory 依靠远程过程调用 (RPC) 进行域控制器之间的复制。(简单邮件传输协议[SMTP] 虽可用于架构、配置及全局编录复制等环境,但却无法用于域命名上下文,使其用途受到了限制。)在一个目录林分布于内部网络、非军事区 (DMZ)、外部(即面向 Internet)网络的环境中,要使复制顺利进行,并非易事。有三种可能的解决方法:
放松防火墙的限制,允许 RPC 的本机动态行为。
限制 RPC 使用 TCP 端口,仅略微开放防火墙。
将域控制器(DC 到 DC)通信封装在 IP 安全协议(IPSec) 内,并为此开放防火墙。
每种方法各有优缺点。总的来说,列在前面的方法缺点多于优点,而列在后面的则优点多于缺点。因此,尽管本文对这三种方法都会加以介绍,但因 IPSec 优于另外两种方法,所以将着重介绍它。
完全动态的 RPC
优点:无需特殊的服务器配置
缺点:使防火墙变成了“瑞士干酪”(不堪一击),随机引入高端口连接,防火墙配置不安全
您当然可以以该方式配置工作环境,但有足够的理由弃之不用,最重要的原因是它会导致网络不安全。不过,这种方法所需的配置工作量最少。
若要通过动态 RPC 启动复制,则应配置防火墙,使其允许:
服务 端口/协议
RPC 终结点映射器 135/TCP, 135/UDP
网络基本输入/输出系统 (NetBIOS) 名称服务 137/TCP, 137/UDP
NetBIOS 数据文报服务 138/UDP
NetBIOS 会话服务 139/TCP
RPC 动态分配 1024-65535/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/TCP1 , 53/UDP
Windows Internet Naming
Service (WINS) 解析(如果需要) 1512/TCP, 1512/UDP
WINS 复制(如果需要) 42/TCP, 42/UDP
“RPC 动态分配”规则是造成这种方案不安全的原因。该规则有时称为“TCP 高端口”,它要求准许入站通信从任何高于 1023 的端口通过。如果防火墙允许这样做,那这个防火墙也就没有存在的必要了。
如果不想让 DNS 或 WINS 通过,则可用 HOSTS(用于 DNS)和 LMHOSTS(用于 WINS)文件进行名称解析。这些文件存储于 %SystemRoot%\system32\drivers\etc。可查看这些文件,以了解如何使用它们。
RPC 工作原理
每项 RPC 服务都会在注册表中为自己配置一个通用的唯一标识符 (UUID)(类似于全局唯一标识符 GUID)。UUID 是一种常用标识符,各项服务都有一个唯一的 UUID,且在所有平台上通用。当一项 RPC 服务启动时,它会获得一个可用的高端口,并以其 UUID 在该端口注册。有些服务随机使用高端口;而有些服务却每次都尽量使用相同的高端口(如果这些高端口可用)。在服务的生存期内,端口的分配是静态的。
当一个客户端要与某特定 RPC 服务通讯时,它无法事先确定该服务在哪个端口上运行。该客户端会先建立一个到服务器端口映射器服务(在 135 上)的连接,并利用该服务的 UUID 请求所需服务。端口映射器会将相应的端口号返回给客户端,然后关闭连接。最后,客户端利用端口映射器提供的端口号,新建一个到该服务器的连接。
由于事先无法获悉 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 设置向导即会启动。
单击“手动配置服务器”。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者