用安全模板加强Windows的安全
Windows NT家族的操作系统——Windows XP、Windows 2000、NT 4.0和NT 3.x一直以缺乏安全性饱受争议。但实际上,这些操作系统(包括Novell Netware和各种UNIX变种)都具有相当好的安全性,它们都装备了数以千计的“锁”——这是一些操作系统用来确保安全性的部件,能够让我们作出只允许用户A可以在对象B上实施动作C之类的规定。NT和Netware之间的区别在于,虽然两种操作系统都提供了这类锁,但一个新装的Netware系统中这些锁默认是锁上的,管理员根据需要有选择地打开某些锁;而在一个新装的N T操作系统中,大部分的锁默认处于打开状态,管理员的任务是关闭某些可能引起安全隐患的锁。(Windows Server 2003的情况有所不同,它的设计改用了Netware策略。相比之下,Win 2K默认锁上的选项要多于NT 4.0,而新装的XP又比Win 2K Pro有更多的安全限制。)
对于NT系列平台的管理员来说,这些锁带来的是一个两难的局面:从理论上看,它们确实提供了保障服务器和工作站安全的机制;但实际操作起来却要耗费大量的时间。XP是一个优秀的操作系统,但如果要我们检查每一台机器,依次调整数十种授权和权限选项来保证系统的安全,很多人会把XP或其他NT系列的操作系统看成代价昂贵和浪费时间的代名词。我们需要一种快速配置安全选项的办法,它能够根据要求自动批量设定所有与安全有关的配置。
这种办法确实存在,它就是安全模板。安全模板是一种ASCII文本文件,它定义了本地权限、安全配置、本地组成员、服务、文件和目录授权、注册表授权等方面的信息。创建好安全模板之后,我们只要一个命令就可以将它定义的信息应用/部署到系统,所有它定义的安全配置都立即生效——原本需要数小时修补注册表、倒腾管理控制台“计算机管理”单元以及其他管理工具才能完成的工作,现在只需数秒就可以搞定。
安全模板并非Windows Server 2003或XP独创的功能,第一次提出这个概念的是NT 4.0 SP 4。安全模板是每一个管理员都必须了解的重要工具。安全模板不会让你修改不能通过其他方式修改的安全选项,它只是提供了一种快速批量修改安全选项的办法。凡是可以利用安全模板设置的安全选项,同样可以使用Windows的GUI工具手工修改,但后者耗费的时间肯定多得多。
一、安全模板可以批量修改的五类和安全有关的设置
1.管理组
模板能够调整本地的组成员。如果你的用户使用的是NT系列的桌面系统,或许你也在为这样的问题烦恼:授予用户哪些控制桌面系统的权限才合适?有的公司让每一位用户都拥有本地管理员权限,有些则授予Power Users权限,还有的只授予Users权限。
如果限制了用户对自己桌面系统的管理权限,可以肯定的是,某些时候你不得不放宽限制,至少是临时性地放宽。例如,假设设置一个工作站时只允许本地的Administrator帐户成为本地Administrators组的成员,后来有一个维护人员为了方便“临时”地将普通用户帐户提升为Administrators组的成员,本来他打算稍后恢复原来的设置,但后来却忘记了。如果我们定义了一个“只有Administrator才能加入本地Administrators组”的安全模板,只要重新应用一下这个模板就可以防止其他用户进入Administrators组。
当然,模板不是随时监视安全设置选项确实已被采纳的守护神,确保安全设置策略已被执行的最好办法是定期重新应用整个模板,或者创建一个组策略来应用模板(组策略大约每隔90分钟重新应用自己的设置信息)。凡是安全模板能够做到的事情,组策略同样都能够做到,但如果使用组策略的话就要有一个Active Directory(AD)域,而模板却没有这方面的要求。
2.调整NTFS权限
安全模板能够调整NTFS权限。例如,假设我们想要授予C:Stuff目录System/完全控制和Aministrators/完全控制的NTFS权限,但禁止任何其他用户访问,模板可以方便地设定这些授权和限制。
另外,由于模板可以应用到多台机器(倘若使用组策略的话),我们可以将同样的NTFS授权应用到整个域。如果你和大多数NT管理员一样,那么也一定对NT默认的目录权限(Everyone/完全控制)大为不满,并决定加强ACL设置。但是,这个过程很容易出错,以至于把ACL调整到没有一个人能够正常使用机器的地步。因此最好先做一些试验,找出适当的平衡点,然后将平衡点的权限配置用模板表达出来,再将模板应用到所有的系统。
3.启用和禁用服务
模板可以启用或关闭服务,控制谁有权启动或关闭服务。你想要关闭大部分机器的IIS服务,只留下个别服务器运行IIS吗?这可不是一件轻松的工作,因为默认情况下,Win 2K和NT 4.0会把IIS安装到所有服务器上(可喜的是,Windows Server 2003改正了这一做法。)除了IIS,你可能还希望禁止许多其他不必要的服务,可能还想对Server、Computer Browser、Index、Wireless Zero Configuration之类的服务痛下杀手,但是,到每一台机器上逐个禁用这些服务实在太麻烦了,好在模板能够帮助我们迅速完成这些工作。
安全模板允许我们停止(针对服务运行的状态)以及禁用(针对服务的启动方式)服务。当你开始了解模板时,会惊奇地发现模板允许我们控制哪些人有权开启和关闭服务——了解Windows服务的ACL的人可能不是很多,但模板却提供了调整这些ACL的途径。例如,如果你想让Mary有权开启和关闭Server服务,却又不想让Mary成为管理员,现在可以通过模板来设置。
4.调整注册表授权
安全模板允许我们调整注册表的授权。注册表包含了大量只能读取、不能修改的信息。例如,假设有一个NT 4.0的工作站安装了AutoCAD,现在把它升级到了Win 2K,但却发现用户需要本地管理员权限才能运行AutoCAD。注册表中究竟发生了什么事情才导致如此怪异的现象?
注重细节的应用程序会在两个注册键下面保存其配置信息:HKEY_LOCAL_MACHINESOFTWARE和HKEY_CURRENT_USERSoftware。具有管理员权限的用户负责初始的安装以及大部分的配置,这些配置信息保存在HKEY_LOCAL_MACHINESOFTWARE注册键下。但是,每一个用户又必须根据自己的需要和爱好调整应用程序,应用程序需要一个适当的位置来保存这部分配置信息。如果应用程序把所有的配置信息都保存在HKEY_LOCAL_MACHINESOFTWARE,普通用户每次要修改配置时都要找管理员才行。
正是考虑到该问题,注重细节的应用程序会把非关键性的配置选项(用户个人的配置选项)保存在HKEY_CURRENT_USERSoftware注册键下,所以我们应该让用户拥有对该注册键的写入权限。也就是说,如果用户没有管理员权限,那么他至少要有HKEY_LOCAL_MACHINESOFTWARE注册键的读取权限、HKEY_CURRENT_USERSoftware注册键的读取和写入权限。
遗憾的是,许多软件厂商还没有重视HKEY_LOCAL_MACHINESOFTWARE、HKEY_CURRENT_USERSoftware这两个注册键的区别,而是把所有配置信息都保存到了HKEY_LOCAL_MACHINESOFTWARE注册键下。在NT 4.0下,这种处置办法不会引起问题,因为NT 4.0默认允许所有用户写入HKEY_LOCAL_MACHINE,由于NT 4.0控制HKEY_LOCAL_MACHINE的ACL非常宽松,所以即使普通用户也不会遇到问题。但在Win 2K中,注册表ACL的默认配置已经变化,非管理员的用户只有读取HKEY_LOCAL_MACHINE的权限,所以用户必须以本地管理员身份登录才能正常运行AutoCAD。
如何解决这类问题呢?获取一份应用软件的新版本,或者将XP、Win2K的注册表ACL放宽到NT 4.0的程序。如果采用后面的解决办法,我们既可以用注册表编辑器(对于XP或Windows Server 2003,使用Regedit,对于Win2K,使用Regedt32)手工执行修改,也可以用模板来调整注册表的授权。
其实,我们根本不必自己创建修改注册表授权的模板,微软已经提供了一个:winntsecurity emplatescompatws.inf。微软提供的另一个模板winntsecurity emplatesasicws.inf能够把注册表授权恢复到Win 2K的默认状态。
5.控制本地安全策略设置
安全模板能够控制本地安全策略设置。每一台机器都有许多本地安全策略设置,例如是否显示出最后登录系统的用户名称、多长时间修改本地帐户的密码,等等。在NT 4.0中,这些设置通过用户管理器的本地版本(lusrmgr.exe)修改;在Win 2K中,修改工具是本地安全策略管理单元secpol.msc。
手工修改这类设置的步骤是:从控制面板的管理工具中启动“本地安全策略”,或者点击“开始”→“运行”,输入secpol.msc,点击“确定”启动本地安全策略管理器。本地安全策略管理器可以用来关闭或启动系统审核功能、调整密码管理策略、授予或者收回用户操作XP和Win2K的许多权限、控制IP安全(IPSec)。实际上,“本地安全策略”管理器可能是Windows默认提供的唯一控制IPSec的工具。
以上就是安全模板能够调整的五个方面,所有这些安全选项的调整都只要一个安全模板文件就可以完成。
二、如何创建安全模板
下面我们从实践应用的角度介绍模板的应用,示范如何为工作站或成员服务器创建一个模板,这个模板主要包括三方面的功能:首先,该安全模板能够控制组的成员,即限制本地的Administrators组只能由本地Administrator帐户和域的Domain Admins组加入;第二,该模板将设置F:adminstuff目录的NTFS权限,只允许本地的Administrators组访问;最后,该模板将禁止Indexing服务。
<