服务器 频道

服务器安全必备 给IIS服务器装上一把锁

  【IT168 服务器学院】为了提高IIS的安全性,微软提供了两个工具:IIS Lockdown和URLScan,其中IIS Lockdown 2.1包含了URLScan。IIS Lockdown 2.1具有如下功能:

  ⑴ 禁用或者删除不必要的IIS服务和组件。

  ⑵ 修改默认配置,提高系统文件和Web内容目录的安全性。

  ⑶ 用URLScan来过滤HTTP请求。

  本文介绍如何运用IIS Lockdown 2.1的前两项功能。注意本文的说明针对 IIS Lockdown 2.1版本,以前版本的用法大不相同。

  一、注意事项

  IIS Lockdown会改变IIS的运行方式,因此很可能与依赖IIS某些功能的应用冲突。特别地,如果要在一个运行Microsoft Exchange 2000 Server、Exchange Server 5.5或Microsoft SharePoint Portal Server的服务器上安装IIS Lockdown和URLScan,应当加倍小心。

  微软的两篇文章解释了可能遇到的困难和解决办法:《XADM:在Exchange 2000环境中使用IIS Lockdown向导的已知问题和调整策略》(http://support.microsoft.com/default.aspx?scid=kb;en-us;q309677),以及《SPS:IIS Lockdown工具影响SharePoint Portal Server》(http://support.microsoft.com/default.aspx?scid=kb;en-us;q309675)。

  另外,在正式应用IIS Lockdown或URLScan之前,务必搜索微软的知识库,收集可能出现问题的最新资料。掌握这些资料并了解其建议之后,再在测试服务器上安装IIS Lockdown,全面测试Web应用需要的IIS功能是否受到影响。最后,做一次全面的系统备份,以便在系统功能受到严重影响时迅速恢复。

  二、安装

  IIS Lockdown 2.1可以从http://www.microsoft.com/downloads/release.asp?releaseid=33961下载。下载之后得到一个iislockd.exe,双击运行,把它解压缩到一个临时目录并启动IIS Lockdown向导。但是,如果要用IIS Lockdown来保护多个服务器,最好按照下文的说明把它解压缩到一个专用目录,这样就不必每次运行IIS Lockdown都要重新解压缩了。

  必须注意的是,下载得到的是一个自解压缩的执行文件,这个执行文件与压缩包里面的应用执行文件同名。因此,如果把iislockd.exe解压缩到它本身所在的目录,就会引起文件名称冲突。请按照下面的安装步骤执行,以避免可能出现的问题:

  ㈠ 将iislockd.exe下载到一个临时目录。

  ㈡ 打开控制台窗口,进入临时目录,执行命令“iislockd.exe /q /c /t:c:\IISLockdown”解开压缩,/q要求以“安静”模式操作,/c要求IIS Lockdown只执行提取文件的操作,和-t选项一起使用,-t选项指定了要把文件解压缩到哪一个目录(例如在本例中,要求把文件解压缩到c:\IISLockdown目录)。表一列出了iislockd.exe解压缩得到的主要文件,注意iislockd.exe包含了URLScan的文件,但本文不准备详细探讨URLScan。

  表一:IIS Lockdown 2.1主要文件

  IIS Lockdown文件 说明

  iislockd.exe IIS Lockdown主执行文件。

  iislockd.ini 配置和选项文件。

  iislockd.chm 联机帮助。

  runlockdunattended.doc 有关“无人值守”运行方式的文档。

  404.dll “文件没有找到”应答文件。

  URLScan文件 说明

  urlscan.exe URLScan安装程序包。

  urlscan.doc URLScan文档。

  urlscan*.ini 配置和选项文件。

  urlscan_unattend.txt 无人值守方式安装URLScan的配置文件。

  readme.txt 针对无人值守方式运行URLScan的说明

  unattend.cmd 无人值守方式安装URLScan的命令文件。

  三、实践应用

  IIS Lockdown的用法很简单。双击启动iislockd.exe,出现Internet Information Services Lockdown向导,按照向导的提示一步一步操作,很快就可以为Web服务器加上一把锁。首先出现的是欢迎屏幕,点击“下一步”出现最终用户许可协议屏幕,选中I Agree选项,点击“下一步”进入服务器模板选择对话框.选择一个最接近当前服务器配置的模板,本文假定使用Static Web Server(静态Web服务器)模板。选中View Template Settings选项,向导将显示出一系列有关该模板类型的对话框,如果不选中这个选项,向导将跳过这些对话框,直接进入URLScan安装过程。

  点击“下一步”,出现Internet Services对话框,如图二,这是第一个真正配置IIS加锁选项的页面。IIS Lockdown能够禁用或删除四种IIS服务:HTTP,FTP,SMTP,以及NNTP(Network News Transport Protocol,网络新闻传输协议)。怎样才能知道哪些服务才是必需的呢?除了前面选择的服务器模板类型可资参考之外,个人经验、全面地测试也同样重要。

  Internet Services对话框中的IIS服务选项有三种状态:

  ㈠ 启用:选项处于选中状态,检查框有标记,例如图二的Web services。清除检查框的标记将禁用服务。

  ㈡ 启用,但推荐禁用,例如图二的E-mail service:选项没有选中,检查框没有标记。如果保留检查框的清除状态,服务将被禁用。

  ㈢ 禁用,且不可选择,例如图二的File Transfer service:如果一个选项变灰,它的检查框也没有选中标记,则表示不允许修改该服务,可能是因为服务没有安装,也可能是因为当前选择的服务器模板需要该服务。

  如果服务器的用途不是经常改变,最好彻底删除不用的服务,这样就再也没有人会意外地激活它了。

  点击“下一步”,向导显示出Script Maps(脚本映射)对话框。脚本映射是指把特定的文件扩展名关联到ISAPI(Internet Server API)执行文件,由指定的ISAPI文件来解释该类文件的内容。例如,.asp文件类型映射到asp.dll。

  如果禁用了某种类型的脚本文件,IIS Lockdown会把脚本映射指向一个特殊的DLL,当用户试图运行该类脚本文件时这个DLL会返回“文件没有找到”的信息。要禁用某种类型的文件,只需在图三对话框中清除该类文件的检查框。

  点击“下一步”,进入最后一个IIS Lockdown的选项对话框Additional Security,如图四所示,通过这个对话框可以删除不需要的目录,禁止未经授权的用户访问文件系统。IIS安装好之后会有许多用于开发和学习的虚拟目录,正式向用户提供服务的环境不需要这些目录,IIS Lockdown将删除图四对话框中选中的虚拟目录,但仍会完好地保留这些目录包含的数据。

  默认情况下,IIS会限制对Web内容目录的匿名访问,但还应该加上一层对系统工具(如cmd.exe)的保护,以防止未经授权的用户在系统安全出现漏洞时访问这些工具。如果选中图四对话框中的Running system utilities (for example, Cmd.exe, Tftp.exe)检查框,IIS Lockdown将修改\%windir%目录及其子目录下所有执行文件的访问控制属性(ACE,Access Control Entry),明确地禁止本地Web匿名用户组和Web用户组的运行权限。如果选中Writing to content directories 检查框,IIS Lockdown还会加强所有Web内容目录的安全性,即设置ACE,禁止本地Web匿名用户组和We应用组的写入权限。

  窗口底部有一个Disable Web Distributed Authoring and Versioning(WebDAV)选项,即禁用Web分布式创作和版本控制。WebDAV功能用来支持远程Web内容创作和管理,如果确实不必用到该功能,那就可以选中Disable Web Distributed Authoring and Versioning检查框。选中该选项之后,IIS Lockdown将设置httpext.dll(实现WebDAV功能的执行文件)的ACE,禁止将httpext.dll文件装入inetinfo.exe的进程,从而也就禁止了WebDAV功能。

  对话框的“下一步”,IIS Lockdown将询问是否要安装URLScan,如图五。如果要用筛选器来禁止IIS处理某些可能有恶意的URL,即经常被黑客用来攻击系统的URL,那就可以用URLScan作为守卫IIS的前门(即筛选器)。本文不准备详细介绍URLScan,请访问http://www.microsoft.com/technet/treeview/default.asp?url=/technet/security/tools/urlscan.asp了解更多有关URLScan的说明。

  取消安装URLScan的选项,点击“下一步”,IIS Lockdown显示出一系列将要执行的操作,如图六。点击“取消”可以放弃操作,点击“下一步”则开始执行图六清单中列出的“加锁”操作。加锁操作一旦开始,中途不能停止。

  依赖于具体的修改操作,IIS Lockdown可能在\%windir%\system32\inetsrv目录下创建几个日志文件和IIS元数据备份文件,如表二所示。虽然没有人要求我们一定要保证这些IIS Lockdown日志文件和元数据备份文件的安全,但如果要手工撤销IIS Lockdown所做的操作,或者需要重新安装OS,那就要用到这些文件。因此,最好把这些文件复制到另一个磁盘,或者把它们保存到另一个服务器。

表二:IIS Lockdown日志和元数据备份文件
.log或.md0文件 说明
oblt-log.log IIS Lockdown为了提高服务器安全性而执行的一系列操作的清单。
oblt-rep.log 加锁过程的一个简短总结。加锁过程结束后,点击View Report按钮可以看到这个文件。
oblt-undo.log IIS Lockdown为了撤销加锁操作而采取的一系列动作的清单。
metaback\oblt-mb.md0 IIS元数据的备份文件。
metaback\oblt-beforeundo-mb.md0 在IIS Lockdown Undo命令恢复元数据备份之前备份的IIS元数据。

  如果在正式为用户提供服务的机器上运行IIS Lockdown,一定要安排在正常的关机维护期间进行。IIS Lockdown开始执行修改操作时会关闭Web服务,安排在正常的维护期间进行修改可以避免给用户带来不必要的麻烦。

  四、尝尝后悔药

  只要能够找到oblt-log.log文件,IIS Lockdown就给你后悔的机会。如果你打算让服务器采用一种新的IIS Lockdown配置,首先必须撤销前一次操作,然后再启动IIS Lockdown,按照新的配置运行向导。如果已经在前一次加锁操作时删除了不必要的服务,那就必须用控制面板中的添加/删除程序功能重新安装服务。类似地,如果已经在加锁过程中安装了URLScan,也要用添加/删除程序功能删除它。

0
相关文章