微软的企业网络结构里最重要的角色就是域。因此,Windows 2000/2003/2008许多重要功能都是基于域之上的。特别是自Windows 2000以来出现的最重要的功能——活动目录Active Directory,就是建立域的基础上。但是,这并不意味着Windows 2000企业网络必须采用域的结构,因为同Windows NT时代一样,Windows 2000还可以做成工作组结构。工作组适用小型的网络,而对大中型网络则心有余力不足,这就得使用域结构,因为域具有优越的管理能力,而工作组不具备。
关于工作组和域,可以用一句话来总结它们的不同点:工作组是各自为政的网络结构,而域则是中央集权的网络结构。
目录服务已经成为企业网络发展的趋势,Active Directory表明了微软对此趋势的重视。作为网络基本服务,Active Directory有赖于其他产品的配合,方能壮大声势。这也是为什么微软在推出革命性的Windows 2000的时候,宣称日后的产品将大力支持Active Directory的原因。其他厂商为了能跟微软插“一腿”,分“一羹”,也因为在服务器市场Windows的份额越来越大,都对Active Directory的支持不遗余力。
所以,作为Windows企业网络的系统管理员,必须认识Active Directory、域等几个概念,不仅仅是了解Windows 2000及以后的版本,也是日后接触的软件产品上。
网络管理中的易“域”风情
早在Windows NT时代就有了域的概念,Windows 2000继承了这个遗产。
在Windows 2000时代,其域的本质上与Windows NT的域类似,但由于与Windows 2000开始拥有的Active Directory整合,因此在结构与功能上都远远超过Windows NT域。
考虑到Windows 2003,Windows 2008都可以视为Windows 2000的延续,所以本文基本以Windows 2000为蓝本阐述域相关方面的知识。
在Windows 2000中,域成为构成Actiev Directory树状层叠体系的重要部件。域和域之间以层叠式的方式来组织,形成Aictive Directory的框架。至于域本身也采用层叠式的设计,用来提高域的扩展性。
刚才已经提到,Active Directory的层叠式结构主要是由域组成。实际上,域本身可以进一步以组织单位(Organizational Unit)来分割成较小的单位,以便管理。在Active Directory中,组织单位就是一种容器对象,故组织单位之间同样也以层叠式的关系来结合。
由此我们就可以明白,域和组织单位是构成Active Directory层叠式结构的两大要素。
为了理解Active Directory为我们带来的好处,让我们先回顾Windows NT时代。
在Windows NT中,域内的各种资源是以二维的方式存在,因此,当域规模增大到一定程度的时候,肯定会给管理带来极大的麻烦。而Active Directory的组织单位改善了Windows NT域的二维式结构,变为层叠式结构,不仅方便管理,也使得Windows 2000的域有更大的扩展性。
在Windows NT的网络结构中,域是最重要的核心单位。域在Windows 2000中仍旧扮演重要的角色,但由于Windows 2000的域与Active Directory整合,因此,与Windows NT的域便有了很大的差别。
Windows 2000域是形成整个Active Directory结构的主干。从域的角度来看,Active Directory可以认为是有单一域或多重域所构成的域的集合;从Active Directory的角度来看,域就是Active Directory的逻辑分割单位。
那么,Windows 2000的域有什么作用呢?在Active Directory中,凭借域可以完成下列功能:
形成独立的管理单位
Windows 2000的域为独立的管理单位。每个域都有各自独立的账户、系统管理员、安全设定、组策略等等。当然系统管理员可以通过信任关系将域中的资源开放给其他域的用户。域彼此之间就是以信任的关系接合起来,形成一个整体的Active Directory。
组策略与委派控制的应用单位
我们知道,组织单位是组策略与委派控制的最小应用单位。事实上,除了组织单位外,委派控制与组策略也可应用在域或站点。
系统管理员可将组策略应用到域,用来管理域内所有的用户与计算机设置。通过委派控制,系统管理员可将域中的部分管理工作委派给指定的用户或组。
域可跨越地域限制
域是一种逻辑性的概念,它不受地域或者局域网范围的限制。因此,不论用户、计算机或者资源在什么地方,都可以加入一个域,方便系统管理员集中管理。
如笔者所在的单位,位于广州的分公司,就可以加入天津总公司的本部的域,直接受总公司管辖。
多重域的结构
刚才已经提到,Windows 2000域内可以由组织单位来形成层叠式结构,从而获得更好的扩展性。一般来说,单一的域能应付一般企业的需求。不过,若企业有特殊的需求的时候,例如财务部门需要形成独立的管理单位,则可以通过多重域结构来达到目的。
多重域可以形成域树或域森林两种结构。
“域”树临风
域树
域树状目录(域树)是由多个域所组成,域之间通过信任关系,以层叠式的方式组织起来。这种层叠关系直接反应在域的命名方式,也就是域的DNS名称,在域树中,所有域的DNS名称可以形成一个连续性的名称空间。
在域树中最上层的域成为根域。例如,根域为365master.com,那么此域树中可能会是这样的:
365master.com下一层的域名为editor.365master.com,再下一层的域名为network.editor.365master.com,依此类推,形成所谓的“连续性名称空间”。你不要指望365master.com下面会有news.sinopec.com这样的域名,那样不符合连续性名称空间的要求。
值得注意的是,域树中的域的层叠式关系是仅限于命名方式,并不说明上一层的域对下一层的域具有管辖的权限。域树中的每个域都是一个独立的管理个体,上层域的系统管理员和下层域的系统管理员基本上是平级的关系,因此不能把现实世界的关系照搬到域树状结构中去。
“木秀于林”
域森林
所谓的域森林,就是通过信任关系将多个域树的根域结合而成的域集合体。域森林可以说是Active Directory中最大的集合,域森林中所有的对象构成了Active Directory。也就是说,域森林的范围等于Active Directory的范围。
让我们看看现实世界,企业应用有时难免会无法形成连续性名称空间的域,比如一家集团公司旗下有几家性质不同的分公司,每家公司拥有各自独立的DNS名称,如果要将这些域放在同一个Active Directory下就必须使用域森林。
从Windows 2000时代开始出现的域层叠式的结构,相对于Windows NT是一个伟大的变革。Windows NT的域之间没有层叠式的关系,试想,如果在Windows NT中,将账号集中在一个域的主域中,随着域数目增加,域之间的关系日益复杂,50 个、100个NT域所组成的环境,能很好管理吗?这简直就是一场噩梦!而Windows 2000开始采用的层叠式的域结构, 简单明了,方便访问网络中的各种资源。这种变革性的设计,即使Active Directory中包含成千上万的域,也一样能轻松管理。
域的信任关系
Windows NT就有域信任关系,NT域之间是以信任关系结合的。但到了Windows 2000时代以后,虽然域之间仍然有信任关系,但本质上和 NT域的信任关系却有很大不同。
在Active Directory中将域加入域树或者域森林时,域之间就自动产生信任关系,这是默认的域信任关系,这种关系具有两种特点:
双向性
如果域A信任域B,那么域B同时就信任域A。
可传递性
当域B信任域A,且域A同时也信任域C,那么域B就信任域C。这使得域之间的信任关系大为简化,NT域的信任关系没有该特性,要使N个NT域彼此互相信任,就必须建立N*(N-1)个单向性信任关系。可以想像,当域数目很多的时候,Windows NT的域信任关系很难管理。
(注:这一特性在Windows Server 2003以后有所变动,请见本文稍后部分)
除了默认的双向、可传递的信任关系,还有两种信任关系,必须用手动的方式来建立:
单向可传递、单向非传递。
单向可传递的信任关系一般用于快捷信任,但这种关系只能在位于同一域森林中的两个域之间才能建立。例如,当域B的用户要访问域D的资源,必须通过传递性的信任关系,逐级通过域A、域C才能访问目的域的资源,这种路径叫信任路径。当信任路径过长时,也就是经过的域太多,可能会影响访问的效率。这时候就可以在域B、域D之间建立快捷信任,以缩短信任路径。
要使快捷信任具有双向性,就必须结合两种方向的单向关系,即可产生双向可传递的快捷信任。
单向非传递的信任关系一般用于外部信任。顾名思义,就是将域与域森林外的其他域建立信任关系。当然也可以结合两个单向的信任关系而形成双向信任。例如,不同域森林的域B和域Y可以建立外部信任关系,由于外部信任不具备传递性,所以除了这两个域外,各自的域树、域森林中其他的域并不互相信任。
Windows 2003 Server以后的域间信任关系
但到了Windows 2003 Server以后,只可以自根域创建内部信任关系,因为域森林内部的信任关系在域一级上是可以传递的。这意味着假如你在森林A和森林B之间确立的信任关系,那么森林A中的所有域都会信任森林B中的所有域,反之亦然。不过在森林级别上,信任关系是不能传递的。
比如,如果森林A信任森林B,森林B又信任森林C,那么森林A 并不会信任森林C,除非是管理员手动确立这种信任关系。因此,森林内部的信任关系的传递,是一个具有很强能力的特性。如果你的森林包含了多个域,你肯定不希望一个低等级的管理员在未经过你同意的前提下随便建立森林内部的信任关系,因为这会导致很大的安全问题。这就是为什么你只可以在森林根域一级建立信任关系的原因。
外部信任是域和域之间的信任关系,它和Windows NT中的信任关系类似。一个外部信任可以令你的森林中的一个域信任另一个森林中的一个域。除了对任何等级的域建立外部信任关系外,外部信任和森林内部信任关系还有一个重要的区别。
这个区别就是,与森林内部信任关系不同,外部信任关系是完全不可以传递的,也就是说信任关系只对管理员手动确立信任关系所涉及的域有效。而这两个森林中的其它域,都不会受到这种信任关系的影响。
不论是森林内部的信任关系还是外部信任关系,都具有双向性,你可以实现双向的信任关系,也可以只设定单向的信任关系。双向的信任关系意味着两个域之间的信任是相互的,而单向的信任关系对于某个域来说,则分为信任对方以及被对方信任。在被对方信任的关系中,你的本地域可以访问对方域或对方森林中的内容,但对方不能访问你的资源;而在信任对方的关系中,你的本地域或森林则可以被对方域或者对方森林访问,反之也不行。
拉拉杂杂扯了那么多,现在都已经普及Windows Server 2003了,而Windows 2008 Server的普及也指日可待,那么Windows NT、2000、2003、2008的域有什么区别么?
在Windows NT中,域是唯一的组织结构。一个域可以包含整个企业内的全部用户、组、以及计算机。如果企业非常大,那么可以设立多个域,并在域之间建立信任关系,但是每个域都是独立的结构。
到了Windows 2000时代以后,微软在一个被称为森林的结构上采用了活动目录模式。
在一个森林中,你可以创建多个不同的域,甚至可以使用父域以及子域等树林结构。和在Windows NT环境中一样,每一个域仍然有自己的管理员,不过相似性也就只有这些了。
在Windows 2000中,微软认为应该让域变得更加易于管理,因此它为域的管理创建了不同的等级。比如,一个Domain Admins组的成员可以管理当前域以及当前域的子域。而Enterprise Admins组的成员则可以管理整个森林中的任何一个域。由此也产生了一些问题。
在Windows 2000 的Active Directory模式中,最大的问题是森林中所有的域都是相互信任的,这将引发一系列问题。首先,当安全规则没有设立好时,域管理员可以通过把自己添加到 Enterprise Admins组的方式提高自己的管理权限,这样他们就具有了管理整个森林中任何一个域的权限。如果该域具有一定的安全规则,那么恶意的管理员也可以通过篡改SID纪录以及运行提升权限操作等对整个森林进行攻击。通过操作SID纪录,管理员可以赋予自己Enterprise Active Directorymin的权限。
另外,Windows 2000 的Active Directory安全模式中还存在一些固有的薄弱环节。也许你知道,每一个域都至少需要一个域控制器,而每一个域控制器都包含了该域以及整个森林的信息。这些信息包括Active Directory结构以及一些基本的配置。
现在设想一下,假如公司里的一个管理员一时疏忽,安装了一个恶意程序,或者对Active Directory做了一些不正确的配置。如果这个配置的改动是针对森林级的Active Directory 组件进行的,那么最终这个改变将传递到整个森林里的每个域控制器上,这将破坏每个域控制器上的Active Directory配置副本并有可能造成整个公司的网络瘫痪。
让我们再来对比一下Windows NT中的情况。就算一个域信任另一个域,每个域中都会包含和各自域有关的安全帐户管理副本。因此,怀有恶意的管理员无法通过修改本地域的SAM文件来间接破坏对方域的SAM文件。同样,在Windows NT中没有一个足够大的管理员权限可以让某个域的管理员将权限提升到可以控制公司网络内其它域的地步。
另一个有关Windows NT的信任关系的优势在于,这种信任关系既可以是单向的,也可以是双向的,并且这种信任关系本质上是不可以传递的。这种单向性意味着,假如你有两个域,Users 域和Active Directorymin域, 你可以让他们之间相互信任,也可以仅让Users 域信任Active Directorymin域,而Active Directorymin域不信任Users 域。而信任关系的不可传递性意味着,假如域A信任域B,而域B又信任域C,那么域A 依然不会信任域C,除非管理员亲自指定这种信任关系。
而到了Windows Server 2003的时候,这方面的安全性有了新的特点。微软将Windows NT和Windows 2000的两种模式融合在一起,因此,为了更好的保护你的Windows Server 2003网络,你必须理解上两个系统的安全模式中存在的优势和不足。
Windows 2000中最大的 Active Directory安全弱点就是一个森林中的所有域都是通过一个通用的管理架构相联系的,这个通用的管理架构也就是森林本身。在Windows Server 2003中,森林架构依然被沿用下来,并且其作用也和Windows 2000中没有什么区别。
在域森林结构上,Windows Server 2003与Windows 2000 Server最大的不同是,在Windows Server 2003中,可以方便的建立森林和森林间的信任关系。在Windows 2000中,信任关系只存在于森林内部的域之间,而在2003中,这种信任关系扩展到了森林之间。
管理员可以让一个森林中的用户像访问本地资源一样访问另一个森林中的内容。
以上三者组成了活动目录,那么活动目录的作用是什么,我们在什么地方需要用到活动目录呢?
通过前文的阐述,我们已经明白,Active Directory是由树系中个别的域集合而成的目录。在Windows 2000中,每一个域都至少必须有一台域控制器,保存此域中的目录信息(即位于该域中的Active Directory对象),并提供域相关的服务诸如登陆验证、名称解析等。一句话,没有域控制器也就没有域。
回首这近十年以来的网络技术发展的历程,我们可以清晰的看到,网络化的风潮锐不可当,网络的确带来了许多便利。但是,随着各种资源陆续加入,网络的规模逐渐扩大,如何管理网络中庞大的资源,便成为一项重要的课题。目录服务最主要的功能就是集中管理这些分散在网络中各个角落的资源,提高访问资源的效率。
有鉴于目录服务的地位日益重要,微软在Windows 2000中加入了完整的目录服务,也就是传说中的活动目录——Active Directory。Windows 2000有许多重要功能都与Active Directory有关。
目录是由对象所组成。目录中的部分对象可以直接对应到现实世界中的实体,如用户,计算机,打印机等等。
目录在本质上可视为一种专门用来记录对象信息的数据库。相对于普通的数据库,目录具有以下特性,以便配合目录的特殊用途:
查询最佳化。层叠式的组织方式。统一的命名方式。
目录服务可以帮助用户或者应用程序来查找或管理目录中的信息。它主要功能就是整合网络中分散的资源。资源整合后,可以做到:
简化管理工作。所有的对象信息都集中存在在同一份目录中,应用程序需要某种对象信息(如帐户信息)时,只要通过目录服务来访问即可。因此管理员只需管理单个目录,不必再管理每个应用程序的对象信息。
单账号登陆。因为目录整合了网络所有的资源,因此管理员只需要一组帐户域密码,就可以访问网络中所有的资源。
强大的查询功能。用户可以利用目录中某项对象的相关信息来查询,使查询更具有弹性。
我们可以想见,由于目录服务的服务对象可能涵盖各种应用程序或操作系统,故目录服务必须遵循公开的标准,才能提供跨平台的服务。
目录服务的标准化历史还不到30年。最初是X.500,后来LDAP成为主流。
X.500最早在1988年由CCITT(Consultative Committee for International Teleraphy & Telephony,后来成为ITU-T)颁布,于1993年做了一些修订。今天所说的X.500标准实际上就是X.500到X.521的一系列标准的综合。
X.500目的是为了建立一个跨平台、分布式、涵盖全球的目录服务。但X.500规格相当复杂,产品开发更是困难重重,且X.500包含了一些不符合潮流的规格,如不采用通用的TCP/IP协议,而是采用完整的OSI七层通信协议。结果很少有厂商能作出完全符合X.500的产品,于是,X.500始终停留在书面规格的阶段,未能遍地开花。但X.500的基本结构几乎完美,故后续建立的标准仍然以它为基础。
LDAP(Lightweight Dirtectory Access Protocol)是X.500使用的通信协议(DAP,Dirtctory Access Protocol)的精简版,诞生目的是为了简化X.500服务器于用户端之间的通讯协议,降低用户端的复杂度。同DAP相比,LDAP可架构在TCP/IP上。仅包含重要的功能。可使用字符串的数据类型。后来很多厂商纷纷倒戈支持LDAP。
支持LDAP的目录服务产品有Lotus Domino、Netscape Directory Server、Novell Directory Services、Microsoft Active Directory。
微软在目录服务这个领域的比较晚,但自从Windows 2000到今天的Windows 2008,Active Directory的技术与功能已经越来越卓越了。
网络的分布式结构虽然提供了极佳的分工环境,但同时也加重了管理上的负担。因此在分工之余,对于整合的需求就更加殷切。目录服务可说是这股整合实力的最佳选择。
Active Directory是Windows 2000以来最重要的特色,但是其结构庞大复杂,令人望而却步。有句话说的好,不懂Active Directory,就不懂Windows Server;不懂Active Directory,就不能当网络管理员!
如果您觉得本文不错,请点击 http://2010blog.51cto.com/69882 然后点一下左侧橘红色的“投Ta一票”,然后输入四个字符的验证码以支持本人,谢谢! |
本文出自 “✟lzy's blog” 博客,转载请与作者联系!