谈谈只读域控制器的由来
Windows 2008 Server后,微软引入了只读域控制器的概念(RODC),一经推出,获得了广泛好评,它的出现有效地解决了大型企业域部署不够灵活这个顽疾,使域环境的架设灵活度更大。下面我们来看一个案例描述。
案例描述
如图1中,某公司因业务发展需要,在外地临时设置一个办事处,办事处设立周期拟定一年,一年后随着业务扩展到的完成,会撤除该办事处。
总部的网络采用域环境pip.cc,默认有一台主域控制器dc.pip.cc管理域环境,因工作需要,现在需要将办事处的网络也接入总部网络,这个一般通过ipsec vpn技术实现(这部分是网路互联技术,这里不再赘述,详情可参阅我以前的文章: )。总部和办事处组网成功后,还需要将办公室也加入到域中,这时我们有两种解决方案:
- 方案一:将办事处主机都加入到域中,通过主域控制器直接管理,该方案理论上可行,但有很多弊端,大大增加了主域控制器的工作负担,如果该公司定位于全国业务扩展,有上百个办事处,这种方案直接被否定掉了;
- 方案二:在每个办事处单独设置辅助域控制器,来分别管理,这种方法也有问题,需要有专门的IT人员对辅助域控制器维护,对公司来说这样人力成本会上升,另一方面,办事处具有临时性,服务器一般都是租用的,一旦办事处撤销,辅助域控制器中保留的帐户密码容易泄露,域的安全性大大降低。
基于以上两种原因,只读域控制器的概念诞生了,只读域控制器是一种特殊的辅助域控制器,有三个特点(两个优点,一个缺点):
- 优点:只读域控制器中保存的域信息是只读的,它从主域控制器上自动同步域信息,始终保持和主域控制器内容的一致,不需要专门的技术人员对其配置和维护(也配置不了,因为是只读的),该特点大大降低了人力资源成本。
- 优点:只读域控制器默认是不保存域帐户信息的,这一点很关键,也就是说当办公室的用户需要登录域时,只读域控制器会将登录请求发送给主域控制器,由主域控制器验证是否允许登录,只读域控制器在用户验证过程中只扮演“传话者”或“邮递员”的角色。当办事处撤销后,该服务器因为不保存帐户信息,因此可以放心的交还给原设备持有者。
- 缺点:凡是没有十全十美的东西,说说缺点吧,因为只读域控制器不保存帐户信息,所以当它和主域控制器之间“断线”后,会导致办事处的所有用户无法正常登录域环境,也就是说,它一定要联机工作,不能脱机工作。好在微软意识到了这一点,开了一个权限,我们可以指定某些域帐户可以将自己的登录信息保存在只读域控制器的缓存中,这样,即使只读域控制器失去和主域控制器联系,这些帐户也能正常登录域。
模拟一个小实验,把我上面所说的只读域控器的三个特点逐一验证
实验环境:三台Windows Server 2012(vmware workstation)
dc.pip.cc 192.168.59.10 主域控制器 Windows Server 2012 DataCenter
rodc.pip.cc 192.168.59.20 只读域控制器 Windows Server 2012 Datacenter
client.pip.cc 192.168.59.88 客户端 Windows 7 Ultimate
步骤一:配置三台主机的IP地址,关闭防火墙
图1、图2、图3中是三台主机的IP地址信息,这里要注意的是client.pip.cc主机的“DNS 服务器”要指向rodc.pip.cc,因为这两台主机都位于办事处。
步骤二、配置dc.pip.cc
先将dc.pip.cc配置为主域控制器,这一步是基础,这里不再赘述(配置过程略)。域控制器创建好后继续完成如下配置。
图5中,创建一个用户element,用于操作rodc的配置,一会要用它来创建rodc,因此该用户要求拥有域管理员权限(将该用户加入管理员组)。注意,这个步骤可以省略,用administrator用户也可以,但我们一般不建议这么做。
图6、图7、图8、图9、图10在dc.pip.cc上继续完成只读域控制器的委派工作,包括指定主机名,指定只读域控制器的管理,指定是否创建DNS(DNS服务器会在只读域控制器上一并创建,但它仅仅是个辅助DNS服务器,是只读的,真正的主DNS服务器仍然在主域控制器上)。
步骤三、配置rodc.pip.cc
图11、图12、图13、图14中,在rodc.pip.cc上完成只读域控制器的部署,几乎没什么难度,选择RODC帐户,向已有的林中添加域控制器即可,完成重启后,只读域控制器配置成功。
步骤四、验证只读域控制器的特点(只读;不保存帐户信息)
1、只读性验证
图15中,注意,关于帐户的相关操作是灰颜色,禁用帐户、修改密码等操作,说明是只读的。
图16中,rodc的DNS服务器也是只读的,也不可修改。
2、不保存帐户信息验证
为了让实验效果明显,我做了这样的预设,添加一个用户mike,让mike的帐户信息可以在rodc.pip.cc上缓存数据,而原先的element不做任何设置(默认只读域控制器拒绝所有用户缓存数据),这样,我们在主域和只读域控制器断线后,就会看到实验效果了,一个仍然可以登录,另一个不允许登录。
图17中,Allowed RODC Password Replication Group是内置组,我们如果希望某个帐户信息可以缓存到只读域控制器上,就把它加入到该组即可。
图18中,mike允许缓存到只读域控制器,将其加入Allowed RODC Password Replication Group组。
图19中,在Active Dirctory站点和服务中,查看RODC的属性,我们可以看到Allowed RODC Password Replication Group是允许的,其它都是拒绝(这是默认设置,不要更改,确认一下就好)。
点击图19中的“高级”按钮,切换到图20策略使用率,选择“其密码存储在只读域控制器的帐户中”,我们就能够看到mike用户了,系统自动会执行密码复制策略,在实验环境下,如果没有看到mike用户,可能是时间延迟问题,这时只要点击“预设密码”按钮,手动执行预填充密码操作,就马上看到mike用户了。
步骤五、最终实验效果
Windows 7主机模拟客户端,先将windows 7加入到域中。
正常情况下,element和mike都能登录windows 7(演示过程省略)。
然后让主域dc.pip.cc和rodc.pip.cc断线。(这个模拟方法很多,我直接将dc.pip.cc关机了)。再用两个帐户登录Windows 7。
图21和图22分别演示了element和mike的登录情况,一目了然!
总结
只读域控制器的出现丰富了管理员部署域的手段,使域的部署灵活性更大,安全性也更严谨,相信未来微软在安全性上越来越重视,基于Windows平台的服务器实用性会更加强大。本文通过模拟实验,基本把只读域控制器的主要特点描述清楚了,限于篇幅,细节问题大家可以私聊我,欢迎“骚扰”!O(∩_∩)O
閱讀更多 年糕IT講堂 的文章