HI,movno1
分类:
2006-07-05 17:12:27
新的理念是,服务器缺省就应该是安全的。这的确是一个不错的理念,不过微软贯彻得还不够彻底。虽然缺省的Windows 2003安装绝对比确省的Windows NT或 Windows 2000安装安全许多,但是它还是存在着一些不足。下面让我们来讨论如何让Windows Server 2003更加安全。
理解你的角色
理解服务器角色绝对是安全进程中不可或缺的一步。Windows Server可以被配置为多种角色,Windows Server 2003 可以作为域控制器、成员服务器、基础设施服务器、文件服务器、打印服务器、IIS服务器、IAS服务器、终端服务器等等。一个服务器甚至可以被配置为上述角色的组合。
现在的问题是每种服务器角色都有相应的安全需求。例如,如果你的服务器将作为IIS服务器,那么你将需要开启IIS服务。然而,如果服务器将作为独立的文件或者打印服务器,启用IIS服务则会带来巨大的安全隐患。
我之所以在这里谈到这个的原因是我不能给你一套在每种情况下都适用的步骤。服务器的安全应该随着服务器角色和服务器环境的改变而改变。
因为有很多强化服务器的方法,所以我将以配置一个简单但安全的文件服务器为例来论述配置服务器安全的可行性步骤。我将努力指出当服务器角色改变时你将要做的。请谅解这并不是一个涵盖每种角色服务器的完全指南。
物理安全
为了实现真正意义上的安全,你的服务器必须被放置在一个安全的位置。通常地,这意味着将将服务器放置在上了锁的门后。物理安全是相当重要的,因为现有的许多管理和灾难恢复工具同样也可以被黑客利用。任何拥有这样工具的人都能在物理接入到服务器的时候攻击服务器。唯一能够避免这种攻击的方法是将服务器放置在安全的地点。对于任何角色的Windows Server 2003,这都是必要的。
创建基线
除了建立良好的物理安全以外,我能给你的最佳建议是,在配置一系列Windows Server 2003的时候,应该确定你的安全需求策略,并立即部署和执行这些策略 。
实现这一目的最好的方法是创建一个安全基线(security baseline)。安全基线是文档和公认安全设置的清单。在大多数情况下,你的基线会随着服务器角色的不同而产生区别。因此你最好创建几个不同的基线,以便将它们应用到不同类型的服务器上。例如,你可以为文件服务器制定一个基线,为域控制器制定另一个基线,并为IAS服务器制定一个和前两者都不同的基线。
Windows 2003包含一个叫"安全配置与分析"的工具。这个工具让你可以将服务器的当前安全策略与模板文件中的基线安全策略相比较。你可以自行创建这些模板或是使用内建的安全模板。
安全模板是一系列基于文本的INF文件,被保存在%SYSTEMROOT%\SECURITY|TEMPLATES 文件夹下。检查或更改这些个体模板最简单的方法是使用管理控制台(MMC)。
要打开这个控制 台,在RUN提示下输入MMC命令,在控制台加载后,选择添加/删除管理单元属性命令,Windows就会显示添加/删除管理单元列表。点击"添加"按钮,你将会看到所有可用管理单元的列表。选择安全模板管理单元,接着依次点击添加,关闭和确认按钮。
在安全模板管理单元加载后,你就可以察看每一个安全模板了。在遍历控制台树的时候,你会发现每个模板都模仿组策略的结构。模板名反映出每个模板的用途。例如,HISECDC模板就是一个高安全性的域控制器模板。
如果你正在安全配置一个文件服务器,我建议你从SECUREWS模板开始。在审查所有的模板设置时,你会发现尽管模板能被用来让服务器更加安全,但是不一定能满足你的需求。某些安全设置可能过于严格或过于松散。我建议你修改现有的设置,或是创建一个全新的策略。通过在控制台中右击C:\ WINDOWS\Security\Templates文件夹并在目标菜单中选择新建模板命令,你就可以轻轻松松地创建一个新的模板。
在创建了符合需求的模板后,回到添加/删除管理单元属性面板,并添加一个安全配置与分析的管理单元。在这个管理单元加载后,右击"安全配置与分析"容器,接着在结果菜单中选择"打开数据库"命令,点击"打开"按钮,你可以使用你提供的名称来创建必要的数据库。
接下来,右击"安全配置与分析"容器并在快捷菜单中选择"导入模板"命令。你将会看到所有可用模板的列表。选择包含你安全策略设置的模板并点击打开。在模板被导入后,再次右击"安全配置与分析"容器并在快捷菜单中选择"现在就分析计算机"命令。Windows将会提示你写入错误日志的位置,键入文件路径并点击"确定"。
在这样的情况下,Windows将比较服务器现有安全设置和模板文件里的设置。你可以通过"安全配置与分析控制台"看到比较结果。每一条组策略设置显示现有的设置和模板设置。
在你可以检查差异列表的时候,就是执行基于模板安全策略的时候了。右击"安全配置与分析"容器并从快捷菜单中选择"现在就配置计算机"命令。这一工具将会立即修改你计算机的安全策略,从而匹配模板策略。
组策略实际上是层次化的。组策略可以被应用到本地计算机级别、站点级别、域级别和OU级别。当你实现基于模板的安全之时,你正在在修改计算机级别的组策略。其他的组策略不会受到直接影响,尽管最终策略可能会反映变化,由于计算机策略设置被更高级别的策略所继承。
修改内建的用户账号
多年以来,微软一直在强调最好重命名Administrator账号并禁用Guest账号,从而实现更高的安全。在Windows Server 2003中,Guest 账号是缺省禁用的,但是重命名Administrator账号仍然是必要的,因为黑客往往会从Administrator账号入手开始进攻。
有很多工具通过检查账号的SID来寻找账号的真实名称。不幸的是,你不能改变用户的SID,也就是说基本上没有防止这种工具来检测 Administrator账号真实名称的办法。即便如此,我还是鼓励每个人重命名Administrator 账号并修改账号的描述信息,有两个原因:
首先,黑客中的新手可能不知道这类工具的存在或者不会使用它们。其次, 重命名Administrator帐号为一个独特的名称让你能更方便的监控黑客对此帐号的进攻。
另一个技巧适用于成员服务器。成员服务器有他们自己的内建本地管理员账号,完全独立于域中的管理员账号。你可以配置每个成员服务器使用不同的用户名和密码。如果某人猜测出你的本地用户名和密码,你肯定不希望他用相同的账号侵犯其他的服务器。当然,如果你拥有良好的物理安全,谁也不能使用本地账号取得你服务器的权限。
服务账号
Windows Server 2003在某种程度上最小化服务账号的需求。即便如此,一些第三方的应用程序仍然坚持传统的服务账号。如果可能的话,尽量使用本地账号而不是域账号作为服务账号,因为如果某人物理上获得了服务器的访问权限,他可能会转储服务器的LSA机密,并泄露密码。
如果你使用域密码,森林中的任何计算机都可以通过此密码获得域访问权限。而如果使用本地账户,密码只能在本地计算机上使用,不会给域带来任何威胁。
系统服务
一个基本原则告诉我们,在系统上运行的代码越多,包含漏洞的可能性就越大。你需要关注的一个重要安全策略是减少运行在你服务器上的代码。这么做能在减少安全隐患的同时增强服务器的性能。
在Windows 2000中,缺省运行的服务有很多,但是有很大一部分服务在大多数环境中并派不上用场。事实上,Windows 2000的缺省安装甚至包含了完全操作的IIS服务器。而在Windows Server 2003中,微软关闭了大多数不是绝对必要的服务。即使如此,还是有一些有争议的服务缺省运行。
其中一个服务是分布式文件系统(DFS)服务。DFS服务起初被设计简化用户的工作。DFS允许管理员创建一个逻辑的区域,包含多个服务器或分区的资源。对于用户,所有这些分布式的资源存在于一个单一的文件夹中。
我个人很喜欢DFS,尤其因为它的容错和可伸缩特性。然而,如果你不准备使用DFS,你需要让用户了解文件的确切路径。在某些环境下,这可能意味着更强的安全性。在我看来,DFS的利大于弊。
另一个这样的服务是文件复制服务(FRS)。FRS被用来在服务器之间复制数据。它在域控制器上是强制的服务,因为它能够保持SYSVOL文件夹的同步。对于成员服务器来说,这个服务不是必须的,除非运行DFS。
如果你的文件服务器既不是域控制器,也不使用DFS,我建议你禁用FRS服务。这么做会减少黑客在多个服务器间复制恶意文件的可能性。
另一个需要注意的服务是Print Spooler服务(PSS)。该服务管理所有的本地和网络打印请求,并在这些请求下控制所有的打印工作。所有的打印操作都离不开这个服务,它也是缺省被启用的。
不是每个服务器都需要打印功能。除非服务器的角色是打印服务器,你应该禁用这个服务。毕竟,专用文件服务器要打印服务有什么用呢?通常地,没有人会在服务器控制台工作,因此应该没有必要开启本地或网络打印。
我相信通常在灾难恢复操作过程中,打印错误消息或是事件日志都是十分必要的。然而,我依然建议在非打印服务器上简单的关闭这一服务。
信不信由你,PSS是最危险的Windows组件之一。有不计其数的木马更换其可执行文件。这类攻击的动机是因为它是统级的服务,因此拥有很高的特权。因此任何侵入它的木马能够获得这些高级别的特权。为了防止此类攻击,还是关掉这个服务吧。