% G- B1 A, o: Y! G4 w图40 x @) u8 e2 U) \8 F; W
; y! B1 _% g+ R! z s+ u4 j: r! _
6 p" X# K1 D0 M3 p* f
㈠ 启动类型。几种最容易受到攻击的服务,诸如Clipbook(启用“剪贴簿查看器”储存信息并与远程计算机共享)、Network DDE以及Network DDE DSDM(前者的功能是为在同一台计算机或不同计算机上运行的程序提供动态数据交换(DDE)的网络传输和安全;后者用于管理动态数据交换网络共享)、Telnet、WebClient(使基于Windows的程序能创建、访问和修改基于Internet的文件)等,默认情况下已经被禁止了。还有一些服务只有在必要时才启用,例如Intersite Messaging(启用在运行Windows Server的站点间交换消息)只有在域控制器提升时才启用,Routing and Remote Access Service(为网络上的客户端和服务器启用多重协议——LAN到LAN,LAN到WAN,虚拟专用网络(VPN)和网络地址转换(NAT)路由服务)只有在配置Windows Server 2003作为路由器、按需拨号的服务器、远程访问服务器时才启用。 # i, |; x5 q- Y1 v1 K! B& i * o0 n5 Z$ V: [$ b( F& P: r ㈡ 运行在Local System安全上下文之下的服务变少了,因为Local System具有不受限制的本地特权。现在,许多情况下,Local System被Local Service或Network Service帐户取代,这两个帐户都只有稍高于授权用户的特权。正如其名字所示的,Local Service帐户用于本地系统的服务,它类似于已验证的用户帐户的特殊内置帐户。Local Service帐户对于资源和对象的访问级别与Users组的成员相同。如果单个服务或进程受到危害,则通过上述受限制的访问将有助于保护系统。以Local Service帐户运行的服务作为空会话,而且不使用任何凭据访问网络资源。 - J! g, e0 S n; W6 n7 a4 H* B6 P; o8 b8 G4 u
相对地,Network Service则被用于必须要有网络访问的服务,它对于资源和对象的访问级别也与Users组的成员相同,以Network Service帐户来运行的服务将使用计算机帐户的凭据来访问网络资源。 , Y. m$ x+ L$ r) `7 s7 \0 m - c, ]6 W! W( d0 J! o四、身分验证 7 C! B" W' a$ [4 e# N$ d
) m, y3 v: f2 g$ a# l. @
身分验证方面的增强涵盖了基于本地系统的身份验证和基于活动目录域的身份验证。 ) x: q) n X! ^6 H, p( a4 |/ i7 [- v2 c: h. l
在本地系统验证方面,默认的设置限制不带密码的本地帐户只能用于控制台。这就是说,不带密码的帐户将不能再用于远程系统的访问,例如驱动器映射、远程桌面/远程协助连接。 ( o! T. w6 j2 M. s# m
/ i' Z7 V7 }: `7 O7 x+ M 活动目录验证的变化在跨越林的信任方面特别突出。跨越林的信任功能允许在林的根域之间创建基于Kerberos的信任关系(要求两个林都运行在Windows 2003功能级别上)。在 Windows Server 2003林中,管理员可创建一个林,将单个林范围外的双向传递性扩展到另外一个Windows Server 2003林中。在Windows Server 2003林中,这种跨越将两个断开连接的Windows Server 2003林链接起来建立单向或双向可传递信任关系。双向林信任用于在两个林中的每个域之间建立可传递的信任关系。 % I6 g* y ^% _+ c6 x* V& C# o- |( q! w3 m( p/ f9 C( O
林信任具有许多优点: 3 c) w4 n. I: H( F
+ S7 \6 S9 Y/ R ⑴ 通过减少共享资源所需的外部信任数,使得跨越两个 Windows Server 2003林的资源的管理得以简化。 ' Y f6 x! g1 a% b
1 O! {2 D, e. h0 s( t! _9 E ⑵ 每个林中每个域之间的完全的双向信任关系。 + V n, e( t! R1 ^# ^$ W5 @; D a
: w7 O! h* @9 ~' z ⑶ 使用跨越两个林的用户主体名称(UPN)身份验证。 : k; h, _. B8 [- q / {, Q% f& g) K+ g) r3 C ⑷ 使用Kerberos V5和NTLM身份验证协议,提高了林之间传递的授权数据的可信度。 ; n; r6 ^- t) x9 ?. h
% S% M/ }7 S3 N& l9 ]
⑸ 灵活的管理。每个林的管理任务可以是唯一的。 / h# t& M# ^2 N' y q $ B' H6 y& @' T- J A 林信任只能在两个林之间创建,不能隐式扩展到第三个林。也就是说,如果在林1和林2之间创建了一个林信任,在林2和林3之间也创建了一个林信任,则林1和林3之间没有隐式信任关系。 0 O1 X" r! j" A' F4 e r. n' i8 w- ~4 s/ g+ ?' G+ g% X( c0 w
注意:在Windows 2000林中,如果一个林中的用户需要访问另一个林中的资源,管理员可在两个域之间创建外部信任关系。外部信任可以是单向或双向的非传递信任,因此限制了信任路径扩展到其他域的能力。但在Windows Server 2003 Active Directory中,默认情况下,新的外部信任和林信任强制SID筛选。SID筛选用于防止可能试图将提升的用户权限授予其他用户帐户的恶意用户的攻击。强制SID筛选不会阻止同一林中的域迁移使用SID历史记录,而且也不会影响全局组的访问控制策略。 ' m8 z1 c0 \* i7 `# G
- |+ i, I7 F1 _' C" [: X5 Y 在默认配置下,身分验证是在林的级别上进行的,来自其他林的责任人将被授予与本地用户和计算机同样的访问能力。但无论是谁,都受到设置在资源上的权限的约束。 8 {+ |( _. O6 F+ j) W # \) c3 x, Q9 z7 `2 o9 o" b% ` 如果上述默认配置不能满足要求,你可以配置选择性验证,不过这要有Windows 2003的林功能级别。在这种配置方式中,你可以指定哪些来自其他林的用户或组允许通过验证,以及选择本地林的哪些资源可用来执行验证。具体设置分两步进行。 7 F' I: R1 f0 L$ q* \/ G
8 j4 ]; k: A# Y 第一步是授予来自其他林的责任人允许验证的权限。例如,假设有两个Windows 2003功能级别的林ForestA和ForestB,两者之间有信任关系。ForestA中DomainA域的UserA用户需要访问ForestB中DomainB域ServerB服务器的ShareB共享资源。要达到这个目标,必须按如下方式操作: # F% z. c1 N0 [6 ]8 p: q
Y0 r+ w* A) j) r; s# D1 L
⑴ DomainA的管理员在DomainA域中创建一个全局组(例如GroupA),其中包含成员UserA。虽然可以直接授予UserA适当的权限(这种方式的优点之一是透明),但如果用户数量较多,直接配置各个用户的话效率就很低了。 & `& [3 b$ B2 [! @* k
, y% M$ _& I! {! v; E
⑵ 启动Active Directory用户和计算机管理器,找到DomainB,再找到ServerB,双击ServerB的图标,打开它的属性对话框。 8 K# Q4 n* q4 V% q' U) U/ U( e2 [/ z' d3 n+ ]1 D
⑶ 转到安全设置页,将DomainA\GroupA加入到窗口上方的清单。在窗口下方,选中“允许验证”和“读取”权限的“允许”选项。第一步的设置到这里完成,我们已经允许DomainA\GroupA的成员访问DomainB\ServerB时执行验证。 9 A/ D; x Q: l$ b 1 ]4 Q# b8 L6 c( S' v3 _4 B 第二步很简单,只要把ServerB服务器ShareB共享资源上适当的权限授予DomainA\GroupA全局组即可(或者,也可以将DomainA\GroupA全局组加入到DomainB域本地组,然后对本地组授权)。 , ^9 @ J1 G' f4 X9 K* ]/ Z$ | % d" j% @ R& [2 u+ g# P 结束语:本文只涉及了Windows 2003安全性很小的一方面,许多重要的主题尚未涉及,例如Active Directory安全特性(SID过滤等),以及托管、非托管代码的应用程序代码控制等。尽管如此,我们已经可以体会到微软宣称的“迄今为止微软最强大的Windows服务器操作系统”确实在安全性方面作了许多改进。