Active Directory 的早期阶段,企业常常在用户可能登录的每个站点均部署域控制器。例如,银行通常在每个支行都安装 DC。其中的逻辑是每个支行的用户都能登录并访问本地网络资源,即使 WAN 失效也能如此。本文是《Active Directory教程》的第三篇,讲述了Windows Server 2008 只读域控制器。

那时,实际的 DC 安全需求没有被很好地理解。我看到过控制器堆放在桌子下面,路过的人可以轻易接触到它们。直到几年后,Active Directory 架构师才完全领会到不安全的 DC 所带来的安全风险,IT 组织开始将 DC 重新放回到中央数据中心。这以使分支用户必须经由 WAN 进行验证,但由于提高了安全性,这也是值得的。您看到的文章来自活动目录seo http://gnaw0725.blog.51cto.com/156601/d-1

Windows Server 2008 中的 Active Directory 通过引进只读域控制器或 RODC 改变了分支部署的规则。它们是 Windows Server 2008 域服务中最大的变化。

Active Directory 团队在设计 RODC 时重点考虑了分支机构的需求,他们的目标是“在分支机构就地解决问题”。这其中的要点是如果您在实际条件不安全的分支部署了 DC,基本上您是无法防止 DC(和信任它的机器)受到攻击的,但是您可防止攻击向其他域扩散。

注意,即使这需要对 ADDS 基础结构做很大的更改,但 RODC 的实现并不复杂。您的域必须处于 Windows Server 2003 的林功能级,并且域中必须至少有一个 Windows Server 2008 DC。除了是分支解决方案,在面对互联网的环境中和 DC 处于网络外围的情况下,RODC 同样发挥着重要的作用。

DC 离职
在分支机构中,需要考虑几类威胁。第一类是“DC 失窃”,即有人带着 DC 或 DC 的磁盘溜之大吉。这不但会使本地的服务崩溃,攻击者最终还有可能得到域中所有的用户名和密码,并由得以访问保密资源或造成拒绝服务。为防范这种威胁,默认情况下,RODC 不将密码哈希存储在其目录信息树 (DIT) 中。因此,用户首次向特定的 RODC 进行身份验证时,RODC 会将该请求发送给域中的完全域控制器 (FDC)。FDC 处理该请求,如果验证成功,RODC 会签发密码哈希复制请求。您看到的文章来自活动目录seo http://gnaw0725.blog.51cto.com/156601/d-1

受到攻击的 RODC 有可能请求敏感帐户的密码哈希。为防止这种情况发生,域管理员可为每个 RODC 配置密码复制策略。该策略由 RODC 计算机对象的两个属性组成。msDS-RevealOnDemandGroup 属性包含密码缓存于 RODC 上的组、用户或计算机帐户的独有名称(它们通常是与 RODC 位于同一站点的用户和计算机)。msDS-NeverRevealGroup 包含密码未缓存于 RODC 上的组、用户或计算机帐户的独有名称(例如,域管理员帐户绝不应将其密码哈希缓存于 RODC 上)。如 RODC 请求特殊帐户的密码哈希,FDC 会根据密码复制策略评估请求,以确定是否应将密码哈希复制给 RODC。如 DC 失窃,则受攻击的对象仅限于在从网络转移时在失窃 RODC 上缓存的密码,重要的密码不会受到攻击。

RODC 计算机对象包含的其他两个属性可以帮您精准确定应缓存其密码的帐户。msDS-AuthenticatedAtDC 属性列出 RODC 已验证了密码的帐户,msDS-RevealedList 属性命名其密码当前由 RODC 存储的帐户。

用户和计算机密码哈希并不是 DC 存储的唯一秘密信息。KrbTGT 帐户包含在每个域控制器上运行的 Kerberos 密钥分发中心 (KDC) 服务的密钥。在通常情况下,域中的每个 KDC 共享相同的 KrbTGT 帐户,所以有可能攻击者从窃得的 DC 上获取这些密钥,然后使用它们攻击域的其余部分。但是,如果每个 RODC 均有其自己的 KrbTGT 帐户和密钥,就可防止这种攻击。您看到的文章来自活动目录seo http://gnaw0725.blog.51cto.com/156601/d-1

应用程序还经常在 DIT 中存储密码或其他机密信息。如果攻击者窃得了 DC,可能会得到这些应用程序密码,进而用其访问应用程序。为防范这类攻击,Windows Server 2008 域服务允许管理员定义只读过滤属性集 (RO-FAS)。RO-FAS 中的属性绝不会复制到 RODC,因此不能从失窃的 DC 中获取这些属性。通过设置构架中相应 attributeSchema 对象的 searchFlags 属性的第 9 位 (0x0200),您可以将属性指定给 RO-FAS。

门内粗汉
分支机构域控制器会面临的另一类威胁是本地服务器管理员通过利用 DC 的权限提升自己的权限,进而访问其他域资源或发起拒绝服务攻击。同样,如果本地管理员可以实际接触到域控制器,就很难防范这类攻击。但是,可以防止攻击者通过使用分支机构的域控制器攻击域中的其他 DC。

此域中的完全 DC 不会将 RODC 视为域控制器予以信任。从信任角度讲,FDC 将 RODC 视为域中的成员服务器。RODC 不是企业域控制器或域控制器组的成员。RODC 更新目录中任何内容的能力十分有限,因此即使攻击者获得了 RODC 帐户,也不会得到很高的权限。您看到的文章来自活动目录seo http://gnaw0725.blog.51cto.com/156601/d-1

RODC 甚至可能不出现在 DS 复制拓扑中。由于 RODC 类似正常的成员服务器,而不象域控制器,知识一致性检查器(KCC,该进程在每个 DC 上负责计算 DS 复制拓扑)不会从 RODC 构建连接对象。完全 DC 或 RODC 都不会试图从 RODC 进行复制。另一方面,RODC 将创建一个代表源自完全 DC 入站复制协定的连接对象,但是此连接对象仅存在于 RODC 副本中,其他 DC 没有该连接对象的副本。从复制的角度,RODC 像目录对象的 Roach Motel。对象向内复制,但不向外复制。

RODC 上的管理角色分离
由本地服务器管理员管理分支机构 DC 是很寻常的现象,这些管理员做每项工作,从在域控制器上运行备份,到整理键盘。但是,授予远程站点管理员在域控制器进行常规维护所必需的权限会有安全风险,站点管理员有可能提升其在域中的权限。RODC 通过提供两种管理角色分离来防止此种威胁。

第一种是域管理员可以使用 DCPROMO,以正常方式提升 RODC,或者使用两个步骤的过程,实际的提升流程安全地委派给分支站点管理员,而不授予任何域管理权限。域管理员使用 Active Directory 用户和计算机 MMC 管理单元预先在域中创建 RODC 计算机帐户,如下图中所示。您看到的文章来自活动目录seo http://gnaw0725.blog.51cto.com/156601/d-1

Active Directory教程3_active directory教程

选择“预创建只读域控制器帐户”会运行精简型 DCPROMO,它执行要求有域管理访问权限的所有任务,包括创建计算机帐户、向站点指派 RODC、指定 DC 的角色、指定密码复制策略并定义需要权限来在 RODC 上完成 DCPROMO 操作的用户或组。委派的管理员或组存储在 RODC 计算机对象的 managedBy 属性中。

委派的管理员随后可在服务器上运行 DCPROMO。DCPROMO 将检测预创建的帐户并将服务器转化为 RODC。以此方式运行 DCPROMO 不需要域管理员凭据。

RODC 提供管理角色分离的第二种方式是在 RODC 本身创建本地管理角色。这些角色看起来像机器本地组,它们存储在 RODC 的注册表中,并且只能在 RODC 上进行评估。但是,管理员是使用 NTDSUTIL 管理本地 RODC 角色,而不是使用计算机管理 MMC 管理单元。下表列出了 RODC 上的本地管理角色。这些角色与 Windows 中的内置组一一对应。

帐户操作员
Administrators
备份操作员
证书服务 DCOM 访问
加密操作员
分布式 COM 用户
事件日志读取器
Guests
IIS_IUSRS
传入林信任构建器
网络配置操作员
性能日志用户
性能监控器用户
Windows 2000 以前版本兼容访问
打印操作员
Remote Desktop Users
Replicator
服务器操作员
终端服务器许可证服务器
用户
Windows 授权访问组

RODC 特性
由于 RODC 是只读的,并且其他域控制器不从其进行复制,它们会出现一些异常的行为。例如,延迟对象(即,因为 DC 的复制时间不能长于林的生存周期,所以除了特殊的 DC,该类对象已从其他位置删除)通常由 DC 的出站复制伙伴检测。但是,由于 RODC 没有入站复制伙伴,因而它们不会检测延迟对象。
 

RODC 不会为 LDAP 更新(添加、修改、删除、重命名或移动)操作提供服务。而是返回错误,其中包含对能提供操作的可写 DC 的 LDAP 参照。如果发起 LDAP 更新的应用程序对参照操作处置不当,应用程序将无法使用。

最后,如果林中其他域的用户试图向 RODC 验证,RODC 必须能够访问其所在域的完全 DC 来获取信任密码,以便将验证请求正确传递给用户域中的 DC。如果在其域中 RODC 和完全 DC 之间的网络连接不可用,验证将失败。

Active directory教程系列的其他文章请参考
Active Directory
Active Directory教程1
Active Directory教程2
Active Directory教程3
Active Directory教程4

active directory site design
active directory分支机构分公司子域委派
---gnaw0725