概述
本章讨论在您的环境中强化IIS服务器所需要的指导和程序。要想为组织内部网中的Web服务器和应用软件提供全面的安全性,每一台Microsoft® Internet Information Services (IIS)服务器以及在这些服务器上运行的每一个站点和应用软件都应当受到保护,以免受到与之相连的客户机的攻击。另外,运行在IIS服务器上的这些网站和应用软件还应当免受公司内部Intranet中运行于其它IIS服务器上的网站和应用软件的攻击。
为了在抵制恶意用户和攻击者的过程中占据主动,在安装Microsoft Windows® Server™ 2003时,缺省情况下,Windows Server 2003家族在安装时不会安装IIS。IIS最初以高度安全的“锁定”模式安装。例如,默认情况下,IIS最初将只处理静态内容。除非管理员启用它们,否则诸如Active Server Pages (ASP)、ASP.NET、Server Side Includes(SSI)、WebDAV(Web Distributed Authoring and Versioning)发布、以及Microsoft FrontPage® Server Extensions等特性将无法工作。这些特性可以通过Internet Information Services Manger (IIS Manager)中的Web Service Extensions节点来启用。
IIS Manager 具有图形化的用户界面(GUI),可用来方便地对IIS进行管理。它包括用于文件和目录管理的资源,能够对应用程序池进行配置,并且具有安全性、性能、以及可靠性方面的诸多特性。
本章接下来的部分详细介绍了各种安全性强化设置,执行这些设置可增强公司Intranet中存放HTML内容的IIS服务器的安全性。但是,要想确保IIS服务器的彻底安全,您还应当运行安全监视、检测和响应等程序。
审核策略设置
在本指南定义的三种环境下,IIS服务器的审核策略设置通过MSBP来配置。要了解有关MSBP的更多信息,请参看第三章“创建成员服务器基线”。MSBP设置可确保所有的相关安全性审核信息均被记录在IIS服务器上。
用户权限分配
在本指南所的定义的三种环境中,大多数IIS服务器的用户权限分配通过MSBP来配置。要了解更多关于MSBP的信息,请参看第三章“创建成员服务器基线”。下面阐述MSBP与Incremental IIS Group Policy(增量式IIS组策略)之间的差别。
拒绝通过网络访问该计算机
表8.1: 设置
成员服务器缺省值 |
旧有客户机 |
企业客户机 |
高安全性 |
SUPPORT_388945a0 |
匿名登录;内置管理员帐户; Support_388945a0;Guest;所有非操作系统服务帐户 |
匿名登录;内置管理员帐户; Support_388945a0;Guest;所有非操作系统服务帐户 |
匿名登录;内置管理员帐户; Support_388945a0;Guest;所有非操作系统服务帐户 |
注意: 安全性模板中不包括匿名登录、内置管理员、Support_388945a0、Guest以及所有非操作系统服务帐户。对于组织中的每个域,这些帐户和组拥有唯一的安全标识(SID)。因此,您必须手动添加它们。
“ 拒绝通过网络访问该计算机 ”设置决定了哪些用户不能通过网络访问该计算机。该设置将拒绝很多网络协议,包括服务器信息块(SMB)协议,网络基本输入/输出系统(NetBIOS),通用Internet文件系统(CIFS),超文本传输协议(HTTP),以及 COM+ 等。当用户帐户同时适用两种策略时,该设置将覆盖“ 允许通过 网络访问该计算机 ”设置。通过给其它组配置该用户权限,您可以限制用户在您的环境中执行管理员任务的能力。
在第三章“创建成员服务器基线”中,本指南推荐将 Guests 组包含在被分配了该权限的用户和组列表中,以提供最大可能的安全性。但是,用于匿名访问IIS的IUSR 帐户被默认为 Guest 组的成员。本指南推荐从增量式IIS组策略中清除 Guests 组,以确保必要时可配置对IIS服务器的匿名访问。因此,在本指南所定义的全部三种环境下,我们针对IIS服务器将“ 拒绝通过网络访问该计算机” 设置配置为包括: 匿名登录、内置管理员、 Support_388945a0 、 Guest 以及所有非操作系统服务帐户 。
安全选项
在本指南所的定义的三种环境中, IIS服务器的安全选项通过MSBP来配置。要了解更多关于MSBP的信息,请参看第三章“创建成员服务器基线”。MSBP设置保证了所有的相关安全选项能够跨IIS服务器实现统一配置。
事件日志设置
在本指南所的定义的三种环境中,IIS服务器的事件日志设置通过MSBP来配置。要了解更多关于MSBP的信息,请参看第三章“创建成员服务器基线”。MSBP设置确保了在企业IIS服务器中统一配置正确的事件日志设置。
系统服务
为了让IIS向Microsoft Windows Server™ 2003 添加 Web 服务器功能,必须启用以下三种服务。增量式IIS组策略确保了这些服务被配置为自动启动。
注意: MSBP禁用了几种其它的IIS相关服务。FTP、SMTP和NNTP就是被MSBP禁用的服务的例子。如果想要在本指南所定义的任何一种环境下的IIS服务器上启用这些服务,必须更改增量式IIS组策略。
HTTP SSL
表 8.2: 设置
服务名称 | 默认的成员服务器 |
旧有客户机 |
企业客户机 |
高安全性 |
HTTPFilter | 手动 |
自动 |
自动 |
自动 |
“ HTTP SSL ”服务使得IIS能够实现安全套接字层(SSL)功能。SSL是建立加密通信渠道的一种开放标准,以防止诸如信用卡号等关键信息被中途截获。首先,它使得在World Wide Web上进行电子金融事务成为可能,当然也可用它来实现其它Internet服务。
如果HTTP SSL服务终止,IIS将无法完成SSL功能。禁用该服务将导致所有明确依赖该它的服务不能实现。您可以使用组策略来保证和设置服务的启动模式,只允许服务器管理员访问这些设置,因此可以防止未经授权或恶意的用户配置或操作该服务。组策略还可防止管理员无意中禁用该服务。因此,在本指南所定义的全部三种环境下,我们针对IIS服务器的需要将 HTTP SSL 设置配置为“ 自动 ”。
IIS管理服务
表8.3: 设置
服务名称 | 默认的成员服务器 |
旧有客户机 |
企业客户机 |
高安全性 |
IISADMIN | 未安装 |
自动 |
自动 |
自动 |
“ IIS 管理服务 ”允许对IIS组件进行管理,例如文件传输协议(FTP)、应用程序池、站点、Web服务扩展,以及网络新闻传输协议(NNTP)和简单邮件传输协议(SMTP)的虚拟服务器。
IIS管理服务必须运行,以便让IIS服务器能够提供Web、FTP、NNTP以及SMTP服务。如果这些服务不可用,IIS将无法配置,并且对站点服务的请求将不会成功。您可以使用组策略来保证和设置服务的启动模式,只允许服务器管理员对它进行单独访问,因此可防止未授权或恶意用户配置或操作该服务。组策略还可防止管理员无意中禁用该服务。因此,在本指南所定义的全部三种环境下,我们针对IIS服务器的需要将“
IIS
管理服务
”设置配置为“
自动
”。
World Wide Web发布服务
表8.4: 设置
服务名称 | 默认的成员服务器 |
旧有客户机 |
企业客户机 |
高安全性 |
W3SVC | 未安装 |
自动 |
自动 |
自动 |
World Wide Web 发布服务 通过IIS管理单元提供网络连通性和网站管理。
World Wide Web发布服务必须得到运行,以便让IIS服务器通过IIS Manager提供网络连通性和管理。您可以使用组策略来保证和设置服务的启动模式,只允许服务器管理员访问改设置,以防止未经授权或恶意用户配置或操作该服务。组策略还可防止管理员无意中禁用该服务。因此,在本指南所定义的全部三种环境下,我们针对IIS服务器的需要将“ World Wide Web 发布服务 ”设置配置为“ 自动 ”。
其它安全设置
在安装完Windows Server 2003和IIS之后,IIS在缺省情况下只能提供静态的网站内容。如果站点和应用程序包含动态内容,或者需要一个或多个附加IIS组件,每个附加IIS特性必须逐一单独启用。但是,在该过程中必须注意:您需要确保在您的环境中将每个IIS服务器的受攻击面积降至最小。如果您的组织只包含静态内容而无需其它IIS组件,这时,缺省的IIS配置已经可以将您的环境中的IIS服务器的攻击表面降至最小。
通过MSBP应用的安全性设置为IIS服务器提供了大量的增强安全性。然而,您还需要考虑其它一些附加事项。这些步骤不能通过组策略完成,而必须在所有IIS服务器上手动执行。
只安装必需的IIS组件
除了World Wide Web发布服务之外,IIS6.0还包括其它的组件和服务,例如FTP和SMTP服务。您可以通过双击“ 控制面板 ”上的“ 添加 / 删除程序 ”来启动Windows Components Wizard Application Server,以安装和启用IIS组件和服务。在安装完IIS之后,网站和应用程序所需要的全部IIS组件和服务必须得到启用。
安装Internet信息服务(IIS)6.0:
1.在“ 控制面板 ”上,双击“ 添加 / 删除程序 ”。
2.单击“ 添加 / 删除 Windows 组件 ”按钮,启动Windows组件向导。
3.在“ 组件 ”列表中,单击“ 应用程序服务器 ”,然后单击“ 详细 ”。
4.在“ 应用程序服务器 ”对话框中,在“ 应用程序服务器子组件 ”下,单击“ Internet 信息服务( IIS ) ”,然后单击“ 详细 ”。
5.在Internet信息服务(IIS)对话框的Internet信息服务(IIS)子组件列表中,完成以下工作之一:
- 要增加其它组件,请选中想要安装组件旁边的复选框。
- 要删除已安装的组件,请清除想要删除组件旁边的复选框。
6.单击“ 确定 ”返回到Windows组件向导。
7.单击“ 下一步 ”,然后单击“ 完成 ”。
只有站点和应用程序所必需的那些基础IIS组件和服务应当被启用。启用不必要的组件和服务只会增加IIS服务器受攻击的表面积。
下面的插图和表格显示了IIS组件的位置和建议设置。
“ 应用程序服务器 ”对话框中的子组件如下图所示:
图8.1
应用程序服务器子组件
下表简要描述了应用程序服务器的子组件,并且对何时启用它们提供了建议。
表8.5: 应用程序服务器子组件
UI中的组件名称 | 设置 | 设置逻辑 |
应用程序服务器控制台 | 禁用 | 提供一个Microsoft 管理控制台(MMC),以便管理所有的Web应用程序服务器组件。该组件在专用IIS服务器中不是必需的,因为您还可以使用IIS Server Manager。 |
ASP.NET | 禁用 | 提供了对ASP.NET应用程序的支持。当IIS服务器运行ASP.NET应用程序时启用该组件。 |
启用网络COM+访问 | 启用 | 允许IIS服务器作为存储用于分布式应用程序的COM+ 组件的主机。该组件是FTP、BITS服务器扩展、World Wide Web服务以及IIS Manager等所必需的。 |
启用网络DTC访问 | 禁用 | 允许IIS服务器作为存储通过分布式事务协调器(Distributed Transaction Coordinator,DTC)来参与网络事务的应用软件的主机。除非运行于IIS服务器的应用软件需要,否则应该禁用该组件。 |
Internet信息服务(IIS) | 启用 | 提供基本的Web和FTP服务。该组件是专用IIS服务器所必需的。 |
消息队列 | 禁用 | 注意:如果该组件未启用,则所有的子组件将禁用。 |
“ Internet 信息服务(IIS ) ”对话框中的子组件如下图所示:
图8.2
IIS子组件
下表简要地描述了IIS子组件,并且对何时启用它们提供了建议。
表8.6: IIS子组件
UI中的组件名称 | 设置 | 设置逻辑 |
后台智能传输服务(BITS)服务器扩展 | 启用 | BITS是一种由Windows Update和Automatic Update使用的后台文件传输机制。当使用Windows升级或自动升级自动地将服务包和热修补应用于IIS服务器时,该组件是必需的。 |
公共文件 | 启用 | IIS需要这些文件,而且它们在IIS服务器中应当总是被启用的。 |
文件传输协议(FTP)服务 | 禁用 | 使得IIS服务器能够提供FTP服务。该服务不是专用的IIS服务器所必需的。 |
FrontPage 2002服务器扩展 | 禁用 | 为管理和发布网站提供FrontPage支持。当没有网站使用FrontPage扩展时,请禁用本组件。 |
Internet 信息服务管理器 | 启用 | IIS的管理界面。 |
Internet打印 | 禁用 | 提供基于Web的打印机管理,并且使得打印机能够通过HTTP得到共享。该组件不是专用的IIS服务器所必需的。 |
NNTP服务 | 禁用 | 在Internet上分发、查询、获得以及发表Usenet新闻文章。该组件不是专用的IIS服务器所必需的。 |
SMTP服务 | 禁用 | 支持电子邮件的传输。该组件非专用IIS服务器所必须。 |
World Wide Web 服务 | 启用 | 提供Web服务,向客户提供静态和动态内容。该组件是专用的IIS服务器所必需的。 |
“ 消息队列 ”对话框中的子组件如下图所示:
图8.3
消息队列子组件
下表简要地描述了消息队列子组件,并且对何时启用它们提供了建议。
表8.7: 消息队列子组件
UI中的组件名称 | 设置 | 设置逻辑 |
Active Directory集成 | 禁用 | 当IIS服务器属于一个域时,提供与Microsoft Active Directory® 的集成。当运行于IIS 的站点和应用软件使用了Microsoft 消息队列(MSMQ)时,该组件是必须启用的组件。 |
公共文件 | 禁用 | MSMQ所必需的组件。当运行于IIS服务器的站点和应用软件使用了MSMQ时,该组件是必须启用的组件。 |
下级客户支持 | 禁用 | 为下游客户提供对Active Directory的访问以及站点识别。当运行于IIS服务器的站点和应用软件使用了MSMQ时,该组件是必需的。 |
MSMQ HTTP支持 | 禁用 | 提供了HTTP传输中收发消息的服务。当运行于IIS服务器的站点和应用软件使用了MSMQ时,该组件是必需的。 |
路由支持 | 禁用 | 为MSMQ提供存储转发消息以及高效路由服务。当运行于IIS服务器的站点和应用软件使用了MSMQ时,该组件是必需的。 |
“ 后台智能传输服务( BITS )服务器扩展 ”对话框中的子组件如下图所示:
图8.4
后台智能传输服务(BITS)服务器扩展子组件
下表简要地描述了后台智能传输服务(BITS)服务器扩展子组件,并且对何时启用它们提供了建议。
表8.8: 后台智能传输服务(BITS)服务器扩展子组件
UI中的组件名称 | 设置 | 设置逻辑 |
BITS管理控制台管理单元 | 启用 | 为管理BITS安装一个MMC 管理单元。当Internet服务器应用程序编程接口(ISAPI)的BITS服务器扩展被启用时,应启用该组件。 |
BITS服务器扩展ISAPI | 启用 | 安装BITS ISAPI,以便让IIS服务器能够使用BITS传输数据。当使用Windows Update或Automatic Update自动地将服务包和热修补应用于IIS服务器时,该组件是必需的。如果Windows Update或Automatic 未被使用时,应禁用该组件。 |
“ World Wide Web 服务 ”对话框中的子组件如下图所示:
图8.5
World Wide Web服务子组件
下表简要地描述了World Wide Web服务子组件,并且对何时启用它们提供了建议。
表8.9: World Wide Web服务子组件
UI中的组件名称 | 设置 | 设置逻辑 |
Active Server Pages | 禁用 | 提供了对ASP的支持。当IIS服务器中没有站点或应用软件使用ASP时,请禁用该组件,或者利用Web服务扩展禁用它。要了解更多信息,请参看本章“仅启用必需的Web服务扩展”部分。 |
Internet数据连接器 | 禁用 | 支持以.idc为扩展名的文件所提供的动态内容。当IIS服务器上没有运行使用该Web服务扩展的站点或应用软件时,请禁用该组件,或者用Web服务扩展禁用它。要了解更多信息,请参看本章“仅启用必需的Web服务扩展”部分。 |
( 继续)
远程管理(HTML) | 禁用 | 为管理IIS提供一个HTML界面。使用IIS Manager 可以提供更方便的管理,并且减少IIS服务器的攻击表面。该特性在专用的IIS服务器中不是必需的。 |
远程桌面Web连接 | 禁用 | 包括Microsoft ActiveX® 控件和示例页面,以便存储终端服务客户连接。使用IIS Manager 提供了更方便的管理,并且减少IIS服务器的攻击表面。该特性在专用IIS服务器中不是必需的。 |
服务器端包含 | 禁用 | 提供了对.shtm、.shtml和 .stm文件的支持。当运行于IIS服务器上的站点或应用软件没有使用包含该扩展名的文件时,请禁用该组件。 |
WebDAV | 禁用 | WebDAV 扩展了HTTP/1.1协议,以允许客户发布、锁定和管理网站中的资源。请在专用的IIS服务器中禁用该功能,或者用Web服务扩展禁用它。要了解更多信息,请参看本章“仅启用必需的Web服务扩展”部分。 |
World Wide Web服务 | 启用 | 提供Web服务,向客户提供静态或动态内容,该组件在专用IIS服务器中是必需的。 |
仅启用必需的Web服务扩展
许多运行于IIS服务器上的网站和应用程序具有超出静态页面范畴的扩展功能,包括生成动态内容的能力。通过IIS服务器提供的特性来产生或扩展的任何动态内容,都是通过使用Web服务扩展来实现的。
IIS6.0 中的增强安全特性允许用户单独启用或禁用Web服务扩展。在一次新的安装之后,IIS服务器将只能传送静态内容。可通过IIS Manager中的Web Service Extensions节点来启用动态内容能力。这些扩展包括ASP.NET、SSI、WebDAV、以及FrontPage Server Extensions。
启用所有的Web服务扩展可确保与现有应用软件的最大可能的兼容性。但是,这可能带来一些安全性风险,因为当所有的扩展被启用时,同时也启用了您的环境下IIS服务器所不需要的功能,这样IIS的攻击表面积就会增加。
为了尽可能减少IIS服务器的攻击表面,在本指南所定义的三种环境下,只有必需的Web服务扩展才应该在IIS服务器上被启用。
仅仅启用在您的IIS服务器环境下运行的站点和应用软件所必需的Web服务扩展,通过最大限度精简服务器的功能,可以减少每个IIS服务器的攻击表面,从而增强了安全性。
下表列举了预先定义的Web服务扩展,并且提供了何时启用它们的详细指导。
表8.10: 启用Web服务扩展
Web服务扩展 | 启用时机 |
Active Server Pages | 一个或多个运行于IIS服务器上的站点或应用软件包含ASP内容。 |
ASP.NET v1.1.4322 | 一个或多个运行于IIS服务器上的站点或应用软件包含ASP.NET内容。 |
FrontPage服务器扩展2002 | 一个或多个运行于IIS服务器上的站点或应用软件使用了FrontPage Extensions。 |
Internet数据连接器(IDC) | 一个或多个运行于IIS服务器上的站点或应用软件使用IDC来显示数据库信息(该内容包含.idc和.idx文件) |
服务器端包含(SSI) | 一个或多个运行于IIS服务器上的站点或应用软件使用SSI命令来指导IIS服务器向不同的网页中插入可复用的内容(例如,导航条、页头或页脚) |
Web Distributed Authoring and Versioning(WebDav) | WebDAV是客户在IIS服务器上透明地发布和管理站点资源所必需的。 |
在专用磁盘卷中放置内容
IIS会将默认Web站点的文件存储到 <systemroot>/inetpub/wwwroot ,其中<systemroot> 是安装了Windows Server 2003的驱动器。
在本指南所定义的三种环境下,应该将构成Web站点和应用程序的所有文件和文件夹放置到IIS服务器的专用磁盘卷中。将这些文件和文件夹放置到IIS服务器的一个专用磁盘卷——不包括操作系统所在的磁盘卷——有助于防止针对目录的遍历攻击。目录遍历攻击是指攻击者对位于IIS服务器目录结构之外的一个文件发送请求。
例如,cmd.exe位于<systemroot>/System32文件夹中。攻击者可以请求访问以下位置:
../../Windows/system/cmd.exe,企图调用该命令。
如果站点内容位于一个单独的磁盘卷,这种类型的目录遍历攻击将无法成功,原因有二。首先,cmd.exe的权限已经作为Windows Server 2003基础结构的一部分进行了重设,从而将对它的访问限制在很有限的用户群中。其次,完成该修改之后,cmd.exe不再与站点根目录处于同一磁盘卷,而目前没有任何已知的方法可通过使用这种攻击来访问位于不同驱动器上的命令。
除了安全性问题之外,将站点和应用软件文件和文件夹放置在一个专用的磁盘卷中使得诸如备份和恢复这样的管理操作变得更加容易。而且,将这种类型的内容放在一个分开的专用物理驱动器中有助于减少系统分区中的磁盘争用现象,并且改善磁盘的整体访问性能。
设置NTFS访问权限
Windows Server 2003检查NTFS文件系统权限,以决定用户或进程对特定文件或文件夹的访问类型。
您应该分配相应的NTFS权限,以便在本指南定义的三种环境下,允许或拒绝特定用户对IIS服务器上站点的访问。
NTFS访问权限应当与Web访问权限协同使用,而不是取代Web权限。NTFS权限只影响那些已经被允许或被拒绝访问站点和应用程序内容的帐户。Web权限则影响所有访问站点或应用程序的用户。如果站点权限与NTFS权限在某个文件夹或目录上发生冲突,限制性更强的设置将生效。
对于不允许匿名访问的站点和应用程序,匿名帐户访问将被明确拒绝。当没有经过身份验证的用户访问系统资源时,就是所谓的匿名访问。匿名帐户包括内置的 Guest 帐户, Guests 组,以及 IIS Anonymous 帐户。此外,除了IIS管理员之外,对其它任何用户都应该清除所有的写权限。
下表提供了关于NTFS权限的一些建议,这些权限将应用在IIS服务器上不同的文件类型之上。不同的文件类型可以被组织在不同的文件夹中,以简化应用NTFS权限的过程 。
表8.11: NTFS 权限
文件类型 | 推荐的NTFS权限 |
CGI文件(.exe, .dll, .cmd, .pl) |
Everyone(执行)
Administrators(完全控制) System(完全控制) |
脚本文件(.asp) |
Everyone(执行)
Administrators(完全控制) System(完全控制) |
包含文件(.inc, .shtm, .shtml) |
Everyone(执行)
Administrators(完全控制) System(完全控制) |
静态内容(.txt, .gif, .jpg, .htm, .html) |
Everyone(只读)
Administrators(完全控制) System(完全控制) |
设置 IIS 站点权限
IIS 检查站点许可权限,以确定能够在站点上执行的操作类型,例如允许访问脚本源代码或允许浏览文件夹。您应该为站点分配权限,以便进一步保证IIS服务器上的站点在本指南定义的三种环境下的安全性。
站点许可权限可以与NTFS权限协同使用。它们可配置给特定的站点、文件夹和文件。与NTFS权限不同,站点权限影响试图访问IIS服务器站点的每个人。站点许可权限可以通过使用IIS Manager管理单元得到应用。
下表列举了IIS6.0支持的站点权限,并且提供了简要描述,解释如何为站点分配给定的许可权限。
表8.12: IIS 6.0站点权限
站点许可: | 授予的许可 |
读(Read) | 用户可查看文件夹或文件的属性。该许可缺省为选中状态。 |
写(Write) | 用户可改变文件夹或文件的属性。 |
脚本源代码访问 | 用户可以访问源文件。如果读(Read)权限被启用,则可以读取源文件;如果写(Write)权限被启用,则可以改变脚本源代码。“脚本源访问”允许用户查看脚本的源代码。如果读和写都未启用,这些选项将不可用。 重要 :当“脚本源代码访问”被启用时,用户将可以查看敏感信息,例如用户名和密码。他们还可以改变运行于IIS服务器上的源代码,从而严重影响服务器的安全和性能。 |
目录浏览 | 用户可查看文件列表和集合。 |
日志访问 | 每次访问网站都创建一个日志项目。 |
索引该资源 | 允许索引服务,以索引资源。这允许用户对资源进行搜索。 |
执行 |
下面的选项确定用户运行脚本的级别:
|
配置IIS日志
本指南建议在指南定义的三种环境下均启用IIS服务器上的IIS日志。
可以为每个站点或应用程序创建单独的日志。IIS可以记录Microsoft Windows提供的事件日志或性能监视特性所记录信息范围之外的信息。IIS日志可记录诸如谁访问过站点,访客浏览过哪些内容、以及最后一次访问的时间等信息。IIS日志可被用来了解那些内容最受欢迎,确定信息瓶颈,或者帮助用户对攻击事件展开调查。
IIS Manager管理单元可以用来配置日志文件格式、日志日程,以及将被记录的确切信息。为限制日志的大小,应当对所记录信息的内容进行仔细规划。
当IIS日志被启用时,IIS使用W3C扩展日志文件格式(W3C Extended Log File Format)来创建日常操作记录,并存储到在IIS Manager 中为站点指定的目录中。为改善服务器性能,日志文件应当存储到系统卷以外的条带集或条带集/镜像磁盘卷上。
而且,您还可以使用 UNC 路径将日志文件写到网络上以便远程共享。远程日志使得管理员能够建立集中的日志文件存储和备份。但是,通过网络读写日志文件可能会对服务器性能带来负面影响。
IIS日志可以配置为使用其它几种 ASCII 或开放数据库连接(ODBC)文件格式。ODBC日志使得IIS能够将操作信息存储到SQL数据库中。但是,必须指出的是,当ODBC日志被启用时,IIS禁用了内核模式缓存。因此,执行ODBC日志会降低服务器的总体性能。
包括了数以百计站点的 IIS 服务器可通过启用集中的二进制日志来改善日志性能。集中化的二进制日志允许IIS服务器将所有站点的活动信息写到一个日志文件上。这样,通过减少需要逐一存储和分析的日志文件的数量,大大地提高了IIS日志记录过程的可管理性和可测量性。要了解关于集中二进制日志的更多信息,请参看Microsoft TechNet主题“集中化的二进制日志记录”:
http://www.microsoft.com/technet/prodtechnol/windowsserver2003/proddocs/server
/log_binary.asp
当IIS日志按缺省设置存储在IIS服务器中时,只有管理员有权访问它们。如果日志文件的文件夹或文件的所有者不在
Local
Administrators
组中时,HTTP.sys —— IIS 6.0的内核模式驱动程序——将向NT事件日志发布一个错误。该错误指出文件夹或文件的所有者不在
Local
Administrators
组中,并且这个站点的日志将暂时失效,直到其所有者被添加到
Local
Administrators
组中,或者现有的文件夹或文件被删除。
向用户权限分配手动增加唯一的安全组
大多数通过DCBP应用的用户权限分配都已经在本指南附带的安全性模板中进行了适当的指定。但是,有些帐户和安全组不能被包括在模板内,因为它们的安全标识对于单个的Windows 2003域是特定的。下面给出了必须手动配置的用户权限分配。
警告 :下表包含了内置的 Administrator 帐户。注意不要将 Administrator 帐户和内置的 Administrators 安全组相混淆。如果 Administrators 安全组添加了以下任何一个拒绝访问的用户权限,您必须在本地登录并且更正该错误。
此外,根据第三章“创建成员服务器基线”,内置的 Administrator 账户可能已经被重命名。当添加Administrator账户时,请确信添加的是经过了重命名的账户。
表 8.13:手动添加用户权限分配
默认的成员服务器 |
旧有客户机 |
企业客户机 |
高安全性 |
拒绝通过网络访问该计算机 |
Administrator; Support_388945a0;Guest;所有非操作系统服务帐户 |
Administrator; Support_388945a0;Guest;所有非操作系统服务帐户 |
Administrator; Support_388945a0;Guest;所有非操作系统服务帐户 |
警告: 所有非操作系统服务账户包括整个企业范围内用于特定应用程序的服务账户。这不包括操作系统使用的内置帐户——本地系统,本地服务或网络服务帐户。
保护众所周知帐户的安全
Windows Server 2003有很多内置的帐户,它们不能被删除,但可以重命名。Windows 2003中最常见的两个帐户是 Guest 和 Administrator 。
在成员服务器和域控制器中, Guest 帐户缺省时被禁用。不应改变该设置。内置的 Administrator 帐户应被重命名,而且其描述也应被更改,以防止攻击者通过该帐户破坏远程服务器。
许多恶意代码的变种企图使用内置的管理员账户来破坏一台服务器。在近几年来,进行上述重命名配置的意义已经大大降低了,因为出现了很多新的攻击工具,这些工具企图通过指定内置 Administrator 账户的安全标识(SID)来确定该帐户的真实姓名,从而侵占服务器。SID是唯一能确定网络中每个用户、组、计算机帐户以及登录会话的值。改变内置帐户的SID是不可能的。将本地管理员帐户改变为一个特别的名称,可以方便您的操作人员监视对该帐户的攻击企图。
保护 IIS 服务器中众所周知帐户的安全:
1.重命名 Administrator 和 Guest 帐户,并且将每个域和服务器上的密码更改为长而复杂的值。
2.在每个服务器上使用不同的名称和密码。如果在所有的域和服务器上使用相同的帐户名和密码,攻击者只须获得对一台成员服务器的访问,就能够访问所有其它具有相同帐户名和密码的服务器。
3.修改缺省的帐户描述,以防止帐户被轻易识别。
4.将这些变化记录一个安全的位置。
注意 :内置的管理员帐户可通过组策略重命名。本指南提供的任何安全性模板中都没有配置该设置,因为您必须为您的环境选择一个独一无二的名字。在本指南定义的三种环境下,“ 帐户:重命名管理员帐户 ” 设置可用来重命名管理员帐户。该设置是组策略的安全选项设置的一部分。
保护服务帐户的安全
除非绝对必须,否则不要让服务运行在域帐户的安全上下文中。如果服务器的物理安全受到破坏,域账户密码可以很容易通过转储本地安全性授权(LSA)秘文而获得。
用IPSec过滤器阻断端口
Internet 协议安全性(IPSec)过滤器可为增强服务器所需要的安全级别提供有效的方法。本指南推荐在指南中定义的高安全性环境中使用该选项,以便进一步减少服务器的攻击表面。
要了解关于IPSec过滤器使用的更多信息,请参看“ 威胁与对策: Windows Server 2003 和Windows XP 中的安全性设置 ”的第11章 “其它成员服务器的强化程序” , 。
下表列举了在本指南定义的高级安全性环境下,可在IIS服务器上创建的IPSec过滤器。
表8.14: IIS服务器IPSec网络流量图
服务器 | 协议 | 源端口 | 目的端口 | 源地址 | 目的地址 | 动作 | Mirror镜像 |
单点客户 | 所有 | 所有 | 所有 | ME | MOM服务器 | 允许 | 是 |
终端服务 | TCP | 所有 | 3389 | 所有 | ME | 允许 | 是 |
域成员 | 所有 | 所有 | 所有 | ME | 域控制器 | 允许 | 是 |
域成员 | 所有 | 所有 | 所有 | ME | 域控制器 2 | 允许 | 是 |
HTTP 服务器 | TCP | 所有 | 80 | ANY | ME | 允许 | 是 |
HTTPS 服务器 | TCP | 所有 | 443 | 所有 | ME | 允许 | 是 |
所有进入的通信 | 所有 | 所有 | 所有 | 所有 | ME | 阻止 | 是 |
在实施上表所列举的规则时,应当对其进行镜像处理。这样可以保证任何进入服务器的网络流量也可以返回到源服务器。
上表介绍了服务器要想完成特定角色的功能所应该打开的基本端口。如果服务器使用静态的IP地址,这些端口已经足够。如果需要提供更多的功能,则可能需要打开更多的端口。打开更多的端口将使得您的环境下的IIS服务器更容易管理,但是这可能大大降低服务器的安全性。
由于在域成员和域控制器之间有大量的交互,尤其是RPC和身份验证通信,在IIS服务器和全部域控制器之间,您应该允许所有的通信。通信还可以被进一步限制,但是大多数环境都需要为有效保护服务器而创建更多的过滤器。这将使得执行和管理IPSec策略非常困难。您应该为每一个将与IIS服务器进行交互的域控制器创建类似的规则。为了提高IIS服务器的可靠性和可用性,您需要为环境中的所有域控制器添加更多规则。
正如上表所示,如果环境中运行了Microsoft Operations Manager(MOM),那么在执行IPSec过滤器的服务器和MOM服务器之间,应该允许传输所有的网络通信。这是必须的,因为在MOM服务器和OnePoint 客户端——向MOM控制台提供报告的客户应用程序——之间存在大量的交互过程。其它管理软件可能也具有类似的需求。如果希望获得更高级别的安全性,可将OnePoint 客户端的过滤动作配置就IPSec与MOM服务器进行协商。
该IPSec策略将有效地阻止通过任意一个高端口的通信,因此它不允许远程过程调用(RPC)通信。这可能使得服务器的管理很困难。由于已经关闭了许多端口,您可以启用终端服务。以便管理员可以进行远程管理。
上面的网络通信图假设环境中包含启用了Active Directory的DNS服务器。如果使用独立的DNS服务器,可能还需要建立更多规则。
IPSec策略的执行将不会对服务器的性能带来明显影响。但是,在执行这些过滤器之前必须进行测试,以核实服务器保持了必要的功能和性能。您可能还需要添加一些附加规则以支持其它应用程序。
本指南包括一个.cmd文件,它简化了依照指南要求为域控制器创建IPSec过滤器的过程。 PacketFilters-IIS.cmd 文件使用NETSH命令来创建适当的过滤器。应当修改该.cmd文件,在其中包含您所在环境中域控制器的IP地址。脚本中包含两个占位符,这是为将被增加的两个域控制器IP地址预留的。如果需要,还可以添加其它更多的域控制器。这些域控制器的IP地址列表应当是最新的。
如果环境中有MOM,应当在脚本中指定相应的MOM服务器 IP 地址。该脚本不创建永久的过滤器。因此,直到IPSec Policy Agent启动时,服务器才会得到保护。要了解关于建立永久过滤器或创建更高级IPSec过滤器脚本的信息,请参看本指南姐妹篇“ 威胁与对策: Windows Server 2003 和 Windows XP 中的安全性设置 ”的第11章“其它成员服务器的强化程序” 。 最后,该脚本不会分发其创建的IPSec策略。IP安全性策略管理单元可被用来检查所创建的IPSec过滤器,并且分发IPSec策略以便让其生效。
总结
本章解释了在本指南指定的三种环境下,为保护IIS服务器的安全所应采取的强化设置。我们讨论的大多数设置通过组策略进行配置和应用。可以将能够为MSBP提供有益补充的组策略对象(GPO)链接到包含IIS服务器的相应组织单位(OU),以便为这些服务器提供的服务赋予更多的安全性。
本章讨论的有些设置不能通过组策略得到应用。对于这种情况,本章介绍了有关手动配置这些设置的详细信息。此外,我们还详细介绍了创建和应用能够控制IIS服务器间网络通信类型的IPSec过滤器的具体过程。