Windows 2000 Server实用手册(二) 闵军 2000年 第53期 #1 第三部分 更为安全的系统平台 在Windows 2000 Server中,采取了许多方面的措施来增加系统的安全性,这包括安全模板、Kerberos验证、公钥基础结构、二次登陆等。下面将介绍Windows 2000 Server中的一些常规的安装管理。 #1 一、安全模板和二次登陆 1.安全模板(Security Templates) Windows 2000提供了两个微软管理界面(MMC)的插件作为安全性配置工具,即安全性模版MMC和安全性配置/分析。安全模板是安全配置的物理表示方法,由Windows 2000支持的安全属性的文件(.inf)组成。它将所有现有的安全属性组织到一个位置以简化安全性管理。安全模板所包含的安全性信息有这样七类:帐户策略、本地策略、时间日志、受限组、文件系统、注册表、系统服务。安全模板也可以用作安全分析。通过安全性配置/分析MMC,管理员可以创建针对当前计算机的安全性策略。 2.二次登陆(Secondary Logon) 允许用户以普通帐户的身份登陆,以另一个用户的身份运行应用程序。在Windows 2000中建议管理员以一个普通帐户的身份登陆,在执行必要的管理任务时才以管理员的身份运行管理工具。这种方法减少恶意用户通过监测网络数据包获得管理员身份的机会。 #1 二、Kerberos验证 Windows 2000中有两种验证协议,即Kerberos和公钥基础结构(PKI),这两者的不同之处在于Kerberos是对称密钥,而PKI是非对称密钥。Kerberos验证是Windows 2000域中和域间提供验证的主要协议。Kerberos验证提供更快、更安全的验证和响应,允许用户只登陆一次就可以访问网络资源。此外如果目标平台支持Kerberos验证也可以利用该方法实现跨操作系统平台的资源访问。 #1 三、公钥基础结构(PKI) 在Internet环境中,需要使用非对称密钥加密的PKI(Public key infrastructure)验证协议。PKI能够给我们带来强大的安全性,其技术包括智能卡(Smart Card,一种信用卡大小的设备,可用于存储公钥、私钥、密码、及其它类型的信息)、网际协议的安全机制(IPSec,对传输在TCP/IP网络上的数据进行加密来保护通信)、加密文件系统(EFS,通过对文件或文件夹加密保护文件)。 在PKI验证协议中,每个参与者都有一对密钥,可以分别指定为公钥(PK)和私钥(SK),一个密钥加密的消息只有另一个密钥才能解密,而从一个密钥推断不出另一个密钥。公钥可以用来加密和验证签名;私钥可以用来解密和数字签名。每个人都可以公开自己的公钥,以供他人向自己传输信息时加密之用。只有拥有私钥的本人才能解密,保证了传输过程中的保密性。关键是需要每个人保管好自己的私钥。同时,为了保证信息的完整性,还可以采用数字签名的方法。接下来的问题是,如何获得通讯对方的公钥并且相信此公钥是由某个身份确定的人拥有的,这就要用到电子证书。电子证书是由大家共同信任的第三方——认证中心(Certificate Authority, CA)颁发的,证书包含某人的身份信息、公钥和CA的数字签名。任何一个信任CA的通讯一方,都可以通过验证对方电子证书上的CA数字签名来建立起和对方的信任,并且获得对方的公钥以备使用。 Windows 2000的PKI是基于X.509协议的,X.509标准用于在大型计算机网络提供目录服务,X.509提供了一种用于认证X.509服务的PKI结构,两者都属于ISO和ITU提出的X系列国际标准,目前,有许多公司发展了基于X.509的产品,例如Visa、MasterCard 、Netscape,而且基于该标准的Internet和Intranet产品越来越多。X.509是目前唯一的已经实施的PKI系统。X.509 V3是目前的最新版本,在原有版本的基础上扩充了许多功能,目前电子商务的安全电子交易(SET)协议也采用基于X.509 V3。 #1 四、密码和帐户锁定安全管理 1.采用加强的口令 在计算机的安全管理中,密码管理是最薄弱的环节。这是因为:密码破解的方法正在不断地提高,用来破解密码的计算机也更加强大。现在的密码破解软件常用的方法有:巧妙猜测、词典对照和自动试验字符的每种可能组合,只要有足够时间,这些方法可以破解任何密码。 正因为如此,采用强保密性的密码就显得非常重要。在Windows 2000中,可以使用加强口令。加强的口令采取了以下措施来提高安全性: (1)密码长度至少有7位; (2)密码中必须包含下列三种类型的字符:大小写英文字母和`;阿拉伯数字1~9;其他特殊符号(没有定义为字母或数字的其他所有字符) ~、!、@、#、$、%、^、&、*、(、)、_、+、-、=、{、}、|、[、]、\、:、"、;、'、<、>、?、,、.、/ ; (3)在第二到第六个位置中至少应有一个特殊符号; (4)不能包含您的名字或用户名;不能是普通的单词或名称等。总之,一个加强的口令必须由一个不易猜测的复杂字符串组成。 (5)另外,还可以使用口令过滤器来检测和减少易猜测的口令,例如,PASSPROP (Windows NT Resource Kit提供),ScanNT (一个商业口令检测工具软件包),Safelogon和Auditor等; (6)还可以使用二级身份验证机制,比如智能卡、令牌卡(Token Card)、指纹识别等,可以提供更强壮的安全解决方案。 需要注意的是,Windows 2000的密码最长可以达到127个字符。但是,如果在有Windows 9X运行的网络上使用Windows 2000,密码的长度不宜长于14个字符,因为,Windows 9X支持的最大密码长度为14个字符。如果Windows 2000中使用的密码过长,便有可能不能从Windows 9X计算机上登录到Windows 2000服务器上。 2.使用密码策略 在Windows 2000中,还可以使用密码策略来管理各用户的密码,具体方法如下: (1)以Administrators组的成员登录,打开“管理工具”中的“本地安全策略”、或者“域安全策略”、或者“域控制器安全策略”、或者相应的“组策略”进行设置,见^53100028a^1; (2)要设置某一项密码策略(比如“密码长度最小值”),只需双击该策略,便可以在弹出的对话框中进行设置,设置好后单击“确定”即可。 3.使用帐户锁定策略 为了进一步保护重要用户免受攻击,可以启用帐户锁定策略。帐户锁定策略是对域或本地用户,决定系统锁定帐户的时间,以及锁定谁的帐户。比如我们可以进行这样的设定,在以Administrator用户名登录时,如果尝试了3次(帐户锁定阀值)都没有输入正确的密码,系统便拒绝任何用户再次以Administrator用户名登录并启动“帐户锁定计数器”开始计数,一直到“帐户锁定时间”30分种之后,才能“复位帐户锁定计数器”,此时才能再以Administrator用户名登录。 帐户锁定策略的设置与后面的审核策略的设置类似。要启用帐户锁定策略,必须以拥有相应权限的成员登录,打开“管理工具”中的“本地安全策略”、或者“域安全策略”、或者“域控制器安全策略”、或者相应的“组策略”进行设置。 注意,在Windows 2000Professional中则需要在“控制面板”、“管理工具”、“本地安全策略”中进行设置。在不同地方设置的帐户锁定策略,具有不同的优先级: (1)在“域控制器安全策略”中设置的帐户锁定策略优先级最高,也可以在域控制器的默认“组策略”中进行设置。 注意,这里的设置将会覆盖下一级相应项目的作用,还会在“本地安全策略”的“有效设置”栏目下显示出来,但是,它不会替换入下一级相应项目之中,下一级相应项目中的值仍然保持原样; (2)在“域安全策略”中设置的帐户锁定策略优先级较低,也可以在域的默认“组策略”中进行设置。 注意,这里的设置将会替换入“本地安全策略”里相应的项目之中,“本地安全策略”里的相应项目的值将替换为新的值; (3)在“本地安全策略”中设置的帐户锁定策略优先级最低。 注意,上一级帐户锁定策略的修改结果,需要过几分钟后才能在下一级的帐户锁定策略中起作用。如果还搞不清楚三种优先级帐户锁定策略之间的覆盖关系,便可以直接在“域控制器安全策略”中启用所需要的帐户锁定策略,下面,我们将以此为例来进行说明: (1)以有相应权限的成员登录,在“管理工具”中打开“域控制器安全策略”窗口,见^53100028b^2; (2)在左面窗格中展开“Windows设置”、“安全设置”、“帐户策略”、“帐户锁定策略”,在右面窗格中便会显示出相应的设置项目; (3)双击“帐户锁定阀值”,便会出现“安全策略设置”对话框,选中“定义这个策略设置”复选框,将无效登录次数设置为所需次数(如3次),单击“确定”,便会弹出“建议的数值改动”对话框,在此单击“确定”即可。 #1 五、用户(组)的权限管理 1.理解用户(组)权限 在NTFS分区中可以使用共享级和用户级权限安全管理,在FAT分区中则只能使用共享级权限安全管理,为减轻权限管理的负担,应尽量多地以用户组为单位来指定权限,然后通过将各用户指定为一个或多个不同组的成员来使他们取得所需的权限。这样便只需对少数单个用户单独指定权限。在Windows 2000中,组的定义可以嵌套(既可以将某个组指定为另外一个组的成员),这也为进行灵活高效的权限管理提供了有利的条件。 在Windows 2000中,权限是指“访问主体”(用户或用户组)可以对“访问对象”(文件、文件夹、其它共享项等)可以进行什么样的操作。对“访问主体”指定的每个权限都称作一个权限项或访问控制项(ACE,Access Control Entry),每一个权限项又由“允许”和“拒绝”两项设置组合而成,其结果只有两种:有权限和无权限(见^531000281c^表一,“√”为选中,“□”未选中)。诸多的权限项的组合又称作权限组。 2.设置用户(组)权限 现在假如我们想要将G:\CAI目录的权限设置为:Everyone组只读、MinJun用户完全控制, (1)打开“资源管理器”,选中要设置权限的一个或多个对象(文件、文件夹、其它共享项等),然后单击右键,打开其“属性”对话框。见^53100028c^3。 (2)单击“安全”选项卡,便会看到,在默认情况下,Windows 2000为新建的目录设置了很宽的权限:Everyone组完全控制。去掉“完全控制”、“修改”、“写入”三项后面“允许”栏下的小钩,即可设定Everyone组对该目录的只读权限。 注意,如果某种权限是从上级目录继承过来的话,便不能被取消,其允许栏下的小钩都是灰色此时有两种方法办法进行处理; 一种方法是,设置相应的“拒绝”栏目来屏蔽某些继承过来的权限。比如,我们可以在上图中打上“完全控制”、“修改”、“写入”三项后面“拒绝”栏下的小钩,即可设定Everyone组对该目录的只读权限; 另一种方法是,取消从上级目录继承过来的权限,即在上图中去掉“允许将来自父系的可继承权限传播给该对象(H)”前面的小钩。取消时会出现“安全”对话框(见^53100028d^4),单击“复制”即可; (3)去掉“完全控制”、“修改”、“写入”三项后面“允许”栏下的小钩,只保留“读取及运行”、“列出文件目录”、“读取”三项的“允许”栏下的小钩,即可设定Everyone组对该目录的只读权限。见^53100028e^5; (4)单击“添加”按钮,在出现的“选择用户、计算机或组”对话框里选中MinJun用户(注意,“组”前面的图标为两个人头,“单个用户”前面的图标为一个人头,下同),再单击“添加”、“确定”; (5)当回到“属性”对话框时,打上“完全控制”一项后面“允许”栏下的小钩,即可设定MinJun用户对该目录完全控制的权限,设置好后的情况见图5。如果有必要的话,还可以单击图5中的“高级”按钮,进行一些更为精细的权限设置。 3.用户(组)权限的叠加 在谈论用户(组)权限的叠加时,会涉及到几个概念,包括共享权限、用户自身的权限、用户所属组的权限、从上级目录继承过来的权限、用户的有效权限等。一般地说,共享权限是指,管理员在共享访问对象时所指定的最大权限范围,它是一切实际权限的基础,对访问对象的任何实际权限都不可能超出这个最大权限范围;用户自身的权限是指,管理员为该用户专门指定的权限;用户所属组的权限是指,当用户被指定为某个组的成员时,该用户便拥有了管理员赋予该组的所有权限;从上级目录继承过来的权限是指,当用户对当前目录的上级目录拥有某种权限并且上级目录允许其下级目录继承这种权限时,用户便拥有了对当前目录的这种权限;用户的有效权限是指,用户最终可以行使的实际权限。 现在,假设有一个共享目录G:\Works,其下面有目录G:\Works\part1,并且允许继承上级目录的权限,有一个用户User1,他同时属于两个用户组Group1、Group2。在这里,除共享权限外,其它权限都是指用户User1对目录G:\Works\part1的权限,由各种权限组合的实际结果见^531000281d^表二。在表中第一个“√”表示选中“允许”栏,第二个“√”表示选中“拒绝”栏,“□”表示未选中。在表中,值得注意的是,“拒绝”一项具有较高的优先级,即只要在一行的某一列中选中了“拒绝”,那用户就肯定不具备这种权限;除“拒绝”项之外,表中的其他权限都是叠加关系,即只要在一行的某一列中选中了“允许”,那用户就最终具备这种权限。 #1 六、Windows 2000中的审核功能 1.理解审核的作用 Windows 2000的审核功能可以监视各种成功或失败访问本地资源的安全事件,并可以生成和用“事件查看器”查看“安全日志”,还可以生成一个审核指针以帮助您追踪发生在系统上的所有安全管理事件(例如,如果系统管理员将审核策略更改为不再审核失败的登录尝试,那么审核指针将显示这一事件)。审核功能对于检测入侵者以及危及系统数据安全的尝试是非常必要的,比如失败的登录尝试和修改删除重要数据的尝试便是一些应被审核的典型事例。 2.“最小审核范围”原则 我们运用审核功能得目的是,从众多的可能事件中查找到我们所关心的结果事件。要更快更准确地查找到结果事件,便应该在不会影响准确查找结果事件的前提下尽量缩小可能事件的范围,否则便可能陷入庞杂的审核事件而一无所获,这是在设置审核功能时应该遵循的一个基本原则,我们把它叫做“最小审核范围”原则。 3.审核项目的三种优先级 要启用审核功能,必须以Administrators组或在“组策略”中被授予了“管理审核和安全日志”权限的成员登录。再打开“管理工具”中的“本地安全策略”、或者“域安全策略”、或者“域控制器安全策略”、或者相应的“组策略”进行设置。在不同地方设置的审核项目,具有不同的优先级: (1)在“域控制器安全策略”中设置的审核项目优先级最高,他将监视用户对域中各种资源的访问。这也可以在域控制器的默认“组策略”中进行设置; (2)在“域安全策略”中设置的审核项目优先级较低,注意在这里进行的设置将会替换入“本地安全策略”里相应的审核项目之中。这也可以在域的默认“组策略”中进行设置; (3)在“本地安全策略”中设置的审核项目优先级最低。 4.三种优先级审核项目之间的覆盖关系 在以上三个地方都可以分别设置9个不同的审核项目,它们之间的覆盖关系是,每一个对应的审核项目都单独进行覆盖。比如在“域控制器安全策略”中“审核对象访问”一项的值,只会覆盖下一级中“审核对象访问”一项的作用,而不会影响到其它项目的作用。 当高一级的审核项目设置为“没有定义”时,便不会覆盖下一级相应项目的作用。当高一级的审核项目设置为“没有定义”之外的“无审核”、“成功”、“失败”、“成功,失败”之一时,便会覆盖下一级相应项目的作用。由此可见,要想启用下一级的审核项目,就必须先将上一级相应的审核项目设置为“没有定义”。在刚安装好Windows 2000 Server时,“域控制器安全策略”中的审核项目都默认设置为“无审核”(故此时不会进行任何审核),“域安全策略”中的审核项目都默认设置为“没有定义”,“本地安全策略”中的审核项目都默认设置为“无审核”。 在“域控制器安全策略”中设置的审核项目,会覆盖下一级相应项目的作用,还会在“本地安全策略”的“有效设置”栏目下显示出来,但是,它不会替换入下一级相应项目之中,下一级相应项目中的值仍然保持原样。而在“域安全策略”中设置的审核项目,则会直接替换入下一级的“本地安全策略”里的相应项目之中,“本地安全策略”里的相应项目的值将替换为新的值。注意,上一级审核项目的修改结果,需要过几分钟后才能在下一级审核项目中起作用。 5.在“域控制器安全策略”中启用的审核项目 在启用各种审核事件时,应注意遵循“最小审核范围”原则。具体方法如下: (1)以有相应权限的成员登录,在“管理工具”中打开“域控制器安全策略”窗口,见^53100028f^6; (2)在左面窗格中展开“Windows设置”、“安全设置”、“本地策略”、“审核策略”,在右面窗格中便会显示出9个审核项目; (3)其中最常用的是“审核登录事件”、“审核对象访问”等,“审核登录事件”可以监视成功或失败的登录事件,“审核对象访问”可以监视成功或失败的对象(文件、文件夹、其它共享资源等)访问操作; (4)要启用某种审核事件,可以用鼠标双击该审核事件,便可以在弹出的“安全策略设置”对话框中进行设置,见^53100028g^7。注意,在“本地安全策略”中设置时将没有“定义这些策略设置”复选框,也就是说不能设置为“没有定义”; (5)在上图中,取消“定义这些策略设置”前的小钩是设置为“没有定义”;选中“定义这些策略设置”而取消下面的“成功”和“失败”前的小钩是设置为“无审核”;选中“定义这些策略设置”和“成功”而取消“失败”前的小钩是设置为“成功”审核;选中“定义这些策略设置”和“失败”而取消“成功”前的小钩是设置为“失败”审核;全部选中三项时为“成功、失败”审核。在启用各种审核事件时,应注意遵循“最小审核范围”原则。 6.各个审核项目的具体作用 在图6中,在右面窗格中显示出了9个审核项目,下面简单说明一下各个审核项目的具体作用: 审核策略更改,当更改安全选项、用户权限或者审核策略等时触发; 审核登录事件,当用户登陆或注销时触发; 审核对象访问,当存取对象(如文件、文件夹、打印机等共享资源)时触发; 审核过程追踪,当某个程序执行编程者有目的的跟踪操作时触发; 审核目录服务访问,当存取活动目录中的对象时触发; 审核特权使用,当利用用户权限来执行一项特殊的操作时触发; 审核系统事件,当发生的事件影响安全性或者用户重新启动、关闭计算机时触发; 审核帐户登录事件,当域控制器接收一个登录请求时触发; 审核帐户管理,当创建或者修改用户、用户组帐号时触发。 7.确定要审核的对象 如果您已经选择了审核对象访问或审核目录服务访问,则必须确定要监视访问的对象及相应的操作。比如,我们要审核用户对G:\CAI的访问情况,便可以将该目录确定为审核对象并设置要审核的具体操作。注意,只有在Windows 2000的NTFS分区上才能设置对文件和文件夹访问的审核。具体操作方法如下: (1)打开“资源管理器”,然后选中想要审核的文件和文件夹,可以使用Ctrl或者Shift来选择多个对象;打开“属性”、“安全”选项卡; (2)在“安全”选项卡中打开“高级”、“审核”选项卡,见^53100028h^8,接下来便可以在这里管理各种“审核”项目; (3)在图8中,要管理已有的“审核”项目,请单击该项目,然后可以单击“查看/编辑”按钮来查看或更改该项目,也可以单击“删除”按钮来删除该项目。如果该对话框中没有“删除”按钮,则表明这是从上级目录继承过来的审核项目。可以通过单击“允许将来自父系的可继承审核项目传播给该对象”复选框来删除从上级目录继承过来的审核项目。 (4)要添加新的“审核”项目,请单击“添加”按钮,便会弹出“选择用户、计算机或组”对话框,见^53100028i^9; (5)在图9中,可以在“名称”栏中输入要审核的用户或用户组的名称,也可以在上面的窗格中进行选择。这里我们在“名称”栏中输入“Everyone”,因为在上面的窗格中没有列出“Everyone”组。选好后单击“确定”,便会弹出“审核项目对话框”,见^53100028j^10; (6)在图10中,可以单击“访问”下面要审核的各种操作的“成功”、“失败”项目,如果某些复选框为灰色,则表明这是从上级目录继承过来的审核项目,可以通过在图8中单击“允许将来自父系的可继承审核项目传播给该对象”复选框来删除从上级目录继承过来的审核项目; (7)在有必要并且审核对象包括文件夹的时候,可以打开上面的“应用到”列表栏选择审核操作运用的范围;还可以选中下面的“将这些审核项目只应用到这个容器中的对象和/或容器上”复选框,这样可以阻止所选文件夹中的子目录下的文件和子目录继承这些审核项目。一般情况下不用设置,使用默认值即可; (8)设置好以上各项后,再单击“确定”便会返回图8,这样便完成了一个“审核”项目的添加工作。接下来还可以添加其它的审核项目,设置好后在图8中单击“确定”即可。 8.文件系统的各个审核项目的具体作用 在图10的“审核项目”对话框中,显示出了13个文件系统的审核项目,下面简单说明一下各个审核项目的具体作用: 遍历文件夹/运行文件,当在文件夹中查找文件或者运行文件时触发; 列出文件夹/读取数据,当列表显示文件和文件夹清单或者读取文件数据时触发; 读取属性,当读取文件或者文件夹的属性时触发; 读取扩展属性,当时读取文件或者文件夹的扩展属性触发; 创建文件/写入数据,当创建或者修改文件时触发; 创建文件夹/附加数据,当创建或者修改文件夹时触发; 写入属性,当修改文件或者文件夹的属性时触发; 写入扩展属性,当修改文件或者文件夹的扩展属性时触发; 删除文件夹及文件,当删除文件或者文件夹中的子文件夹时触发; 删除,当删除特定的文件或者文件夹时触发; 读取权限,当读取文件或者文件夹的权限时触发; 更改权限,当修改文件或者文件夹的权限时触发; 取得所有权,当用户获取文件或者文件夹的所有权时触发。 9.使用“事件查看器”来检查审核结果 设置好各种审核项目之后,便可以使用“事件查看器”来检查审核结果,具体方法如下: (1)打开“管理工具”、“事件查看器”中的“安全日志”,以检查对审核对象的成功或者失败的访问,见^53100028k^11; (2)要查看某个事件的详细信息,可双击该事件,便会弹出^53100028l^12所示的“事件属性”对话框; (3)在图12中,可以点击右面的“向上”或者“向下”的箭头来查看上一个或者下一个事件,还可以点击“复制”按钮将事件的详细信息拷贝到剪辑板上。