IIS6另类优化及安全配置
微软一次又一次编造着复杂的方程式,用以解释众口难调的当今最前沿技术的奥秘。没有人能够从哲学角度来判别 IIS 6.0是否足够安全,我们所能做的只有一次又一次地遭遇不测,然后根据经验修改IIS 6.0的不安全配置,直至它能够实现其最大性能和最佳安全性。IIS 6.0从某种意义上说,就如同我们的情人,上天总是故意安排坎坷作为你的修行课程。当你恨她入骨时,却又不得不相信如果没她我们真是活不了。 小知识:为什么Windows Server 2003缺省没有安装IIS 6.0?
在过去,包括微软在内的厂商打包一系列的样本脚本,文件处理和给管理员提供的必要的便于是用的小型的文件系统许可在网络服务器默认安装程序中。然而,这样一来增加了被攻击的可能性,而且也是多种对IIS进行攻击的基础。因此,IIS6.0比其以前的版本都要安全。其中最为显著的改变是IIS6.0不是作为windows server 2003的缺省安装。
在Windows Server 2003安装IIS 6.0:
单击“开始”“控制面板”→“添加/删除程序”→“添加/删除 Windows 组件”按钮,启动“Windows 组件向导”。在“Windows 组件”列表中,选中“应用程序服务器”旁的复选框,单击“详细信息”。在“应用程序服务器”→“应用程序服务器子组件”下方,突出显示“Internet 信息服务 (IIS)”,单击“详细信息”。在“Internet 信息服务 (IIS) 子组件”列表中,选择“万维网服务”,单击“详细信息”。要添加可选组件,选中要安装的组件旁的复选框。单击“下一步”,然后单击“完成”。
在解释IIS 6.0安全性配置之前,首先应该介绍一下IIS 6.0的几个不安定因素:IIS管理服务(inetinfo.exe,提供IIS的管理工作,SMTP,NNTP,FTP等服务),WWW管理服务 (WAS,工作处理程序管理,组态管理),HTTP.sys(负责出来Request,提供Cache,Queue等功能),工作处理程序 (W3Wp.exe)。接下来笔者围绕这些因素谈谈相关安全配置的取舍。
WEB应用程序(如ASP)缓冲池
实验证明,在给网站配备了应用程序缓冲池之后,网站的访问效率提高的几倍甚至十几倍。IIS 6.0最大的改进之一就是应用程序缓冲池允许隔离。IIS 5.0中,所有WEB应用程序只允许共用一个缓冲池。由于将web应用程序隔离在独立的单元将会导致严重的性能下降,因此没有实现应用程序隔离。
通常一个web应用程序的失败会影响同一服务器上其他应用程序。然而,IIS 6.0在处理请求时,通过将应用程序隔离成一个个叫做应用程序池的孤立单元这种设计上的改变,成倍的提高了性能。每个应用程序池中通常由一个或多个工作进程。这样就允许确定错误的位置,防止一个工作进程影响其他工作进程。这种机制也提高了服务器以及其上应用的可靠性。
这样的结构明显很不合理,造成了权限的混乱。而在IIS 6.0中,也许是微软汲取了非典期间的智慧,把各个缓冲池进行了隔离。可以设定多个缓冲池,定义它们的名字。指定在网站,目录,甚至虚拟目录中的WEB程序到任何一个缓冲池。
首先要选择到底采用IIS 5.0还是采用IIS 6.0的隔离措施。出于对旧版本的兼容性,IIS 6.0允许仍然采用IIS 5.0的方式。但两种方式不能同时启用。
点击“开始”→“设置”→“控制面板”→“管理工具”→“IIS管理器”,右键单击网站,点击“属性”→“服务”,把“以IIS 5.0的隔离模式运行WWW服务”复选框前的钩去掉。