深入剖析Windows
2008-02-23 08:21:46来源:互联网 阅读 ()
一、安全
微软一次又一次地做着同样一件事情——某个软件产品出了问题,饱受人们诟病,于是赶紧发布新的版本将问题解决。例如,发布WindowsNT4.0之后,因稳定性问题而饱受批评;于是微软发布了Windows2000,新操作系统的稳定性颇受好评,但Win2K服务器默认安装的IIS5.0却成了巨大的安全隐患,需要下大力气加以整治才能解决问题。IIS6.0默认不安装,假如按照缺省方式安装,Web服务器只能提供静态内容服务。因此,从这个角度看,即使以后IIS6.0应用引擎和组件突然出现了问题,IIS6.0还是极大地降低了安全风险。另外,WindowsServer2003更有一个新的组策略“禁止安装IIS”,有了该组策略,我们就能够禁止Windows2003在活动目录(AD)森林中禁止不准备作Web服务器用的机器上安装IIS6.0,防止网络上出现根本无用的、不安全的IIS6.0服务器。但是,现在这个组策略只对Windows2003服务器有效,不能防止Windows XP Pro和Win2K的机器安装IIS 5.0。
当然,由于刚刚安装好的IIS6.0不支持动态内容,所以出现了第二个人们经常会问的问题:“为什么我的服务器不能运行ASP?”(前文提到,第一个人们经常会问的问题是:“IIS6.0能够在Win2K服务器上运行吗”?答案是“不”)。要想在IIS 6.0上运行程式,必须使用IIS6.0的一种新特性,即Web服务扩展,或WebService Extension(这个名字似乎意味着他和XMLWeb服务有某种关系,实际情况并非如此。)
假如要为某个程式启用Web服务扩展,首先打开IIS管理器(在“控制面板”→“管理工具”中。以前叫做Internet服务管理器或ISM),如图一,点击“添加一个新的Web服务扩展”,启动向导创建一个新的规则。为规则指定一个名字,然后找到想要启用的执行文档。另外,\system32\inetsrv下有一个iisext.vbs脚本,他也能够配置并管理运行带有IIS6.0的WindowsServer2003的Web服务扩展、应用程式和单独的文档。管理员能够使用此脚本来启用和列出应用程式;添加和删除应用程式依赖性;启用、禁用和列出Web服务扩展;添加、删除、启用、禁用和列出单独文档。
图1
在图一中,注意“任何未知ISAPI扩展”和“任何未知CGI扩展”这两种Web服务扩展。默认情况下,这两种扩展是禁用的,意味着除非明确地允许一个应用在IIS6.0上运行,否则他就不能运行。假如一个用户请求了某个没有启用的文档,IIS6.0将向用户返回404错误——文档或目录没有找到,同时在W3SVC日志中记录“404.2文档或目录无法找到:锁定策略禁止该请求”。在IIS6.0中,404.2和其他子状态代码是W3SVC日志文档的一项可选功能,用来帮助排解故障、疑难(IIS5.0和IIS4.0中也有子状态代码,但是不会在日志文档中记录,但能够将他们转到定制的错误页面,便于根据子状态代码执行特别的处理)。IIS6.0的子状态代码很有用,他们提供了描述问题的周详信息,例如:403.20,禁止访问:Passport登录失败;403.18,禁止访问:无法在当前应用程式池中执行请求的URL;404.3,文档或目录无法找到:MIME映射策略禁止该请求;500.19,服务器错误:该文档的数据在配置数据库中配置不正确。任何这些错误和其他错误都映射到定制的错误页面,错误页面不会把子状态代码发送给用户,攻击者无法获知具体的错误信息。
另一个安全面的改进之处是IIS 6.0允许指派一个加密服务提供者(CryptographicServiceProvider,CSP),能够将基于硬件的安全套接字层(SSL)加速器集成到IIS6.0,从而把加密任务从服务器的通用CPU转移到了专门为加密操作而优化的专用设备,有利于提高性能和可靠性。
[1] [2] [3] 下一页