一、活动目录的功能
活动目录是微软为解决分布式windows网络集中化管理应用的一项关键产品,它的核心思想和协议源自于早期NOVELL的类似技术。今天的活动目录总结起来功能无外乎于以下三项:
1、集中化的身份验证
利用AD数据库,将分散在windows客户机上的用户管理体系集中到DC上,实现一个用户在任何节点的漫游能力。同时微软的其他产品也不同程度的可以与这个集中化的身份认证体系集成,譬如Exchange,ISA,SMS,甚至Office等等。除此以外,由于开放的LDAP协议,使得第三方产品也可以集成到这个统一的身份验证体系中来。
2、集中化的资源检索
由于AD具有影射网络共享资源,集成DFS等能力,再加上统一的身份认证,使得将分散在网络上的资源集中检索和权限控制变得可能。从理论上说,管理员可以利用AD的这一特性,建立一个完全分布式的文件存储系统,将专用的文件服务器,网络存储系统,客户机上的分散存储集中起来管理和应用。
3、集中化的权限与策略控制
由于身份验证的集中化,用户的权限管理自然也可以集中化。同时更重要的是利用可分法的GPO,AD实现了将分散在Windows客户机上的组策略集中控管的能力。众所周知,组策略是微软提供的利用注册表开关和脚本控制Windows特性的有效工具,集中化的组策略实现了管理员对整个windows网络中客户机的批量操控。
二、活动目录的优势
活动目录技术从早期的NT到如今的2008,已经发展出一个相当庞大的技术构架。从单一的水平域管理,扩展到可以通过站点和森林扩展出庞大的域结构。达到了微软所希望的解决方案服务一个跨国机构的目标。同时,与其他厂商的类似产品相比,活动目录与微软产品的深度集成也从侧面延伸了活动目录的功能。譬如Exchange Server构建在AD之上,得到一个集成的邮件解决方案、ISA Server构建在AD之上,得到一个集成的防火墙解决方案、Office和Sharepoint构建在AD之上,得到一个企业内部集中化办公解决方案、乃至SQLserver数据库、SMS、RRAS、CA、RADIUS、iis、Cluster、WSUS甚至最简单的DHCP Server,都可以与AD集成,实现“集中化”的管控。不但如此、他们其中的一些甚至是必须与AD集成才可以使用。基于AD的微软产品构架,从理论上来说可以解决企业IT环境中绝大部分需求和问题。
三、中国企业为什么部署活动目录?
windows产品的广泛使用,使得几乎每一个企业都拥有或大或小的Windows网络环境,同时市场的需要也培养出了一大批熟悉微软产品的SA,微软还为他们颁发MCSE和MVP证书。各种各样的技术文章和培训教材也充满了网络、在各个社区中很容易找到关于活动目录的讨论和技术文章。这使得很多企业的IT管理人员在面临一些实际需求时,首先想到的就是活动目录,大量的企业部署了活动目录。甚至于很多SE认为活动目录就是一个完美的IT管理解决方案。
那么,中国的企业究竟为什么部署活动目录呢?笔者在很多社区和讨论群中与第一线的SA们进行过深入讨论,总结为以下几种:
1、为了EMAIL
企业需要一个邮件服务器、于是SA想到了微软的Exhange Server。为了实现Exchange Server,所以必须部署AD。
2、为了集中化验证和文件权限控制
企业需要员工能在任何一台计算机上工作,希望他们有自己的网络帐号,同时企业的文件服务器也需要这样的帐号来区分访问者,为不同部门和不同的员工部署不同的文件访问权限。所以,SA部署了AD。
3、为了集中化控制客户机
SA发现工作中总要花很多时间去客户机上做修改和控制,跑来跑去,工作量很大,非常不方便。于是部署AD,通过集中化的组策略,实现了从核心控制台上对不同部门客户机的不同策略管理。譬如限制用户对系统某些功能的访问和修改、统一定位内部WSUS服务器的补丁更新位置、批量分法软件、限制软件和网络的使用等等。
以上三种需求,占到了90%左右的国内中小型企业的实际情况。当然,另有10%会使用到AD的其他特性,譬如企业需要群集,于是必须部署AD。SA希望集中控管需要部署SMS,于是必须部署AD。
四、活动目录的问题
活动目录的问题就在于微软希望他能面面俱到,但实际上这是不可能的,最后导致了活动目录的臃肿、不可靠、性能低和管理复杂。按照之前我们总结的中国中小企业需求,可以说绝大部分活动目录的部署,可以形象比喻为“为了听收音机而购买了一台汽车,然后为了维持这台汽车不断的付出时间、精力和金钱”。企业的需求就是一台收音机,而活动目录就是这台汽车。
那么活动目录在作为一台收音机使用时,存在哪些问题呢?
1、对DNS的高度依赖
众所周知,AD是构建在DNS名称空间之上的,一个强健可靠的DNS实例是AD的基石,DNS让AD可以管理无限庞大和复杂的网络环境。大家知道,AD是只能部署在WINDOWS的DNS服务之上的,他融入了很多非标准DNS的定义和记录,而Windows的DNS是一个可靠性和负载能力低下的DNS服务器。看看Internet上,有几个ISP会使用Windows DNS?最后的结果,是windows DNS一旦出现问题,整个AD随即故障。例如DNS中的记录更新失败,多DNS区域复制失败,或者DNS需要迁移等等事件,都会导致AD面临极大的风险。这就是说,一栋庞大的大厦建立在了一个不牢固的地基上。
2、过于复杂的LDAP协议
AD的LDAP,虽然号称“轻量”,实际上纷繁复杂。微软希望将这个协议封闭起来,在整个AD的控管环境中用户不要直接与协议打交道。但是LDAP的复杂性,导致一旦出现问题,用户连一个基本的错误反馈界、调试接口和工具都没有。所以微软又不得不提供LDAP调试工具,放在光盘的额外安装目录中。即便如此,又有多少SA能精通这个怪胎协议的调试呢?
3、过于复杂的身份和权限机制
AD的集中化身份验证体系,无疑是AD最受欢迎的功能之一。但是为了让它能面面俱到,微软把它搞得过于复杂了。首先在计算机帐户和用户帐户被同等看待的前提下,OU和Group却又可以交叉容纳用户对象。实际上,AD中的Group太过复杂,为了实现森林的扩展,AD中的Group有基本的6种类型组合,有数十个内置组,更不用说组和组之间允许权限交联,允许交叉继承,允许权限并集和交集。再加上AD与NTFS的集成,文件夹权限和OU权限的并行,逻辑容器和物理容器的互不关联,活动目录的帐户与本地客户机帐户并存。这真的是我见过最复杂的一套机制了,虽然这样复杂的机制让AD足够灵活,但是事实上绝大部分的用户不需要这么复杂的机制,敢问有多少百分比的SA完全搞清了AD中这套机制?绝大部分的人也仅仅是从MCSE的简单教材中了解了初步的概念而已。
4、鸡肋般的组策略
组策略集中管理也是AD最受欢迎的功能之一,利用组策略,微软希望用户能集中控管庞大的客户机群,但是组策略的工作机制,决定了他在复杂多变的生产环境中注定成为一块鸡肋。首先、组策略90%的功能是通过修改客户机注册表来实现的,还有少部分是通过运行脚本来实现的,这样的工作机制导致了组策略的实时性很糟糕,抗干扰能力也很糟糕,很容易被客户机上的一些安全软件干扰,更糟糕的是策略部署后是完全无反馈的,管理员不知道一个策略是不是真的在每个计算机上生效了,一旦出现问题,只能用类似于GPRESULT一类的简陋工具,去客户机上实地分析。除此以外,组策略中的很多功能也有严重的设计缺陷。软件分发,,可能用来分发微软的某个小工具尚可,莫非你想用它真正去分发应用软件?笔者映像最深的一个客户,为了用组策略阻止客户运行QQ.exe,他设定了20条哈希规则,因为他找到了20个EXE版本不同的QQ,他们的哈希值都是不一样的,更不用说那些他还没找到的版本。
5、全封闭的数据库
在MCSE的官方资料中,经常会提到“活动目录数据库”,经常提到“SYSVOL”。SA们多少都知道他们是AD的数据中心,各种信息都存在里面。但是糟糕的是,这个数据库是专用的,你没有办法看到里面存储的东西,也没有办法像管理关系型数据库那样使用SQL语句去操作它。最后的结果就是,如果你想备份和还原AD,那根本就是噩梦。你想备份AD吗?对不起,微软是没有专用工具的,你只能用NTBACKUP去搞定。你想只备份AD数据库吗?想定期增量同步数据吗?对不起,NTBACKUP不支持,你只能把它和Windows的其他系统信息一起备份,不管这些东西是好的还是坏的。你想提高AD的可靠性吗?MY GOD 你必须要两台DC!
6、动则需要其他产品
AD作为一个微软IT管理解决方案的平台,始终只是一个平台,稍微专业一点的业务,就需要与其他微软产品集成。譬如,想对用户的网络访问进行管理,对网络数据进行筛选和审计,就必须要吧另一个大家伙ISA请出来。要想为客户机批量分发补丁,修复漏洞,又得请出另一个大家伙WSUS。如果想集中防范网络中的病毒、恶意软件、危险行为,更糟糕了,因为微软尚无可用产品,咱必须请出赛门铁克或者麦卡菲了。殊不知,企业中的服务器,就是这样被一台一台的占据的,这倒是便宜了靠卖IT设施吃饭的集成商。更糟糕的是,SA们不得不维护越来越多的系统,不断的读一本一本的专业书籍,在论坛上发一个又一个求助的帖子,然而这还仅仅是IT环境的基础运营而已,企业的生产系统还没计算在内。
五、找出更傻瓜和简单的解决方案
AD是强大的、但是你真的需要他吗?
人的能动性是无限的,您也许已经在微软的技术世界里摸爬滚打多年,但是您考察过自己企业的真实需求吗?
您是不是“买汽车的那个人”?
文章到这里,您也许想问笔者,有什么样的代替方案?
事实上,微软的AD做到今天,能在功能上完全覆盖它和代替的解决方案几乎没有。但是如果我们缩小需求,考察中国绝大部分企业的实际需要,可能我们能找到一些更好的代替方案。
我们无外乎需要以下几个东西:
1、一个集中化身份验证的平台
代替AD中的身份和用户数据库
2、一个可分权管理的网络存储系统
代替共享和NTFS,DFS
3、一个能进行集中控管的软件
代替ISA,代替WSUS,SMS等微软产品
4、一个可编程的网络任务执行工具