这是我在微软网站上看到的,觉得满好的,就贴过来了,嘿嘿。。。
简介
Web 服务器通常是各种安全攻击的目标。其中一些攻击非常严重,足以对企业资产、工作效率和客户关系造成相当的破坏—所有攻击都会带来不便和麻烦。Web 服务器的安全是企业成功的关键。
本文档说明如何开始保护 Web 服务器的过程。此 Web 服务器在 Microsoft® Windows Server™ 2003 Standard Edition 操作系统上运行 Internet Information Services (IIS) 6.0。首先,本节描述影响 Web 服务器安全的一些最常见威胁。然后,本文档提供说明性指导,使您的 Web 服务器更安全地防御这些攻击。
通过对 IIS 早期版本做以下更改,IIS 6.0 以更加主动的姿态来防御恶意用户和攻击者:
• | 安装 Windows Server 2003 Standard Edition 时,默认情况下没有安装 IIS 6.0。 |
• | 初次安装 IIS 6.0 时,Web 服务器仅服务于或显示静态网页 (HTML),这降低了服务于动态网页或可执行文件、内容而带来的风险。 |
• | 万维网发布服务(WWW 服务)是 IIS 6.0 初次安装时在默认情况下支持的唯一服务。您可以在需要时启用所需要的特定服务。 |
• | IIS 6.0 初次安装时,默认情况下禁用 ASP 和 ASP.NET。 |
• | 对于其他保护,IIS 6.0 中所有默认的安全配置设置都符合或超过由 IIS Lockdown Tool 提供的安全配置设置。IIS Lockdown Tool 在 IIS 的早期版本上运行,旨在通过禁用不必要的特性来减少 Web 服务器的攻击面。有关 IIS Lockdown Tool 的详细信息,请参阅 Security Guidance Kit 中的“确保 Internet 信息服务 5.0 和 5.1 的安全”。 |
由于 IIS 6.0 的默认设置禁用了 Web 服务通常使用的许多功能,因此,本文档说明如何在降低服务器暴露给潜在攻击者程度的同时配置 Web 服务器的其他功能。
本文档就增强 Web 服务器的安全提供以下指导:
• | 减少 Web 服务器的攻击面,或者降低服务器暴露给潜在攻击者的程度。 |
• | 配置匿名访问的用户和组帐户 |
• | 保护文件和目录不接受未经授权的访问 |
• | 保护网站和虚拟目录不接受未经授权的访问 |
• | 配置 Web 服务器上安全套接字层 (SSL) |
要点:本文档包括的所有逐步说明都是使用“开始”菜单形成的,此菜单在安装操作系统时默认显示。如果修改过“开始”菜单,则这些步骤可能稍有不同。
在您完成本文档中的步骤之后,Web 服务器将能够服务于以 .asp 页面形式提供的动态内容,而且仍然能够对以下类型的攻击提供强有力的保护,这些攻击有时威胁到面向 Internet 的服务器:
• | 配置文件攻击,此攻击搜集网站的有关信息;可通过禁止不需要的端口和禁用不需要的协议来减少这种攻击。 |
• | 拒绝服务攻击,此攻击使 Web 服务器充满各种请求;可通过应用安全修补程序和软件更新来最大限度地减少这种攻击。 |
• | 没有正确权限的用户未经授权的访问;通常通过配置 Web 和 NTFS 权限来阻止这种访问。 |
• | 恶意代码在 Web 服务器上任意执行;可通过防止对系统工具和命令的访问来最大限度地减少这种攻击。 |
• | 特权提升,使恶意用户能够使用具有较高特权的帐户来运行程序;可通过使用最低特权的服务和用户帐户来最大限度地减少这种攻击。 |
• | 来自病毒、蠕虫和特洛伊木马的破坏;可通过禁用不需要的功能、使用最低特权的帐户以及及时应用最新安全修补程序来遏制这种攻击。 |
注意:由于保护 Web 服务器是一个复杂而长期的过程,完全的安全性很难保证。
准备工作
本节说明本文档中描述的 Web 服务器的系统要求和特征。
系统要求
本文档中用作示例的 Web 服务器有以下系统要求:
• | 此服务器运行 Windows Server 2003 Standard Edition。 |
• | 操作系统安装在 NTFS 分区上。有关 NTFS 的信息,请在 Windows Server 2003 中的帮助和支持中心搜索“NTFS”。 |
• | Windows Server 2003 所有必需的修补程序和更新都已经应用到此服务器。为了验证 Web 服务器上是否安装了最新的安全更新,请转到位于 Microsoft 网站 http://go.microsoft.com/fwlink/?LinkId=22630 上的 Windows Update 网页,利用 Windows Update 来扫描服务器是否有可用的更新。 |
• | Windows Server 2003 安全保护已经应用到服务器。 |
本文档提供介绍性信息,帮助您设置最初的几个步骤,以配置一台更安全的 Web 服务器。不过,为了使 Web 服务器尽可能安全,您必须了解服务器上运行的应用程序的操作。本文档不包括应用程序特定安全配置的有关信息。
Web 服务器特征
本文档中用作示例的 Web 服务器有以下特征要求:
• | Web 服务器正在工作进程隔离模式下运行 IIS 6.0 。 |
• | Web 服务器托管一个面向 Internet 的网站。 |
• | Web 服务器配有防火墙,仅支持 HTTP 端口 80 和 HTTPS 端口 443 上的流量。 |
• | 此 Web 服务器是专用 Web 服务器,这种服务器只能用作 Web 服务器而不能用于其他目的,例如文件服务器、打印服务器或运行 Microsoft SQL Server® 的数据库服务器。 |
• | 允许匿名访问网站。 |
• | Web 服务器服务于 HTML 和 ASP 网页。 |
• | 没有在 Web 服务器上配置 Microsoft 的 FrontPage® 2002 Server Extensions。 |
• | Web 服务器上的应用程序不需要数据库连接。 |
• | Web 服务器不支持 FTP(文件上传和下载)、SMTP(电子邮件)或 NNTP(新闻组)协议。 |
• | Web 服务器不使用 Internet Security and Acceleration Server。 |
• | 管理员必须本地登录以管理 Web 服务器。 |
减少 Web 服务器的攻击面
通过减少 Web 服务器的攻击面,或者降低服务器暴露给潜在攻击者的程度,来开始保护 Web 服务器的过程。例如,仅启用 Web 服务器正常运行所必需的组件、服务和端口。
禁用 SMB 和 NetBIOS
主机枚举攻击扫描网络,以便确定潜在目标的 IP 地址。要降低主机枚举成功攻击 Web 服务器上面向 Internet 的端口的可能性,应禁用除传输控制协议 (TCP) 以外的所有网络协议。Web 服务器中的面向 Internet 的网络适配器上不需要服务器消息块 (SMB) 和 NetBIOS。
本节提供以下逐步说明,以降低 Web 服务器的攻击面:
• | 禁用面向 Internet 连接上的 SMB |
• | 禁用基于 TCP/IP 的 NetBIOS |
注意:禁用 SMB 和 NetBIOS 之后,此服务器不能用作文件服务器或打印服务器,不可以浏览网络,而且不能远程管理此 Web 服务器。如果您的服务器是需要管理员本地登录的专用 Web 服务器,这些限制则不会影响服务器的运行。
SMB 使用下列端口:
• | TCP 端口 139 |
• | TCP 和 UDP 端口 445 (SMB Direct Host) |
NetBIOS 使用下列端口:
• | TCP 和 UDP 端口 137(NetBIOS 命名服务) |
• | TCP 和 UDP 端口 138(NetBIOS 数据报服务) |
• | TCP 和 UDP 端口 139(NetBIOS 会话服务) |
仅禁用 NetBIOS 将不会防止 SMB 通信,因为如果标准 NetBIOS 端口不可用,SMB 则使用 TCP 端口 445(也称为 SMB Direct Host)。您必须分别禁用 NetBIOS 和 SMB。
要求
• | 凭据:您必须作为 Web 服务器 Administrators 组成员登录。 |
• | 工具:我的电脑、系统工具和设备管理器。 |
• | 禁用面向 Internet 连接上的 SMB
|
• | 禁用基于 TCP/IP 的 NetBIOS
|
注意:本文档中的屏幕快照反映的是测试环境,其信息可能与您的屏幕所显示的信息有所不同。
上述过程不仅禁用 TCP 端口 445 和 UDP 端口 445 上的 SMB 直接宿主侦听者,而且禁用 Nbt.sys 驱动程序,并需要重新启动系统。
验证新的设置
验证正确安全设置是否已经应用于您的 Web 服务器。
• | 验证 SMB 是否已禁用
|
• | 验证 NetBIOS 是否已禁用
|
只选择基本的 IIS 组件和服务
IIS 6.0 除了包括 WWW 服务之外,还包括一些子组件和服务,例如 FTP 服务和 SMTP 服务。为了最大限度地降低针对特定服务和子组件的攻击风险,建议您只选择网站和 Web 应用程序正确运行所必需的服务和子组件。
下表显示用作本文档示例的 Web 服务器上 IIS 子组件和服务在“添加或删除程序”中的推荐设置。
IIS 子组件和服务的推荐设置
子组件或服务 | 默认设置 | Web 服务器设置 |
后台智能传输服务 (BITS) 服务器扩展 | 禁用 | 不更改 |
公用文件 | 启用 | 不更改 |
FTP 服务 | 禁用 | 不更改 |
FrontPage 2002 Server Extensions | 禁用 | 不更改 |
Internet 信息服务管理器 | 启用 | 不更改 |
Internet 打印 | 禁用 | 不更改 |
NNTP 服务 | 禁用 | 不更改 |
SMTP 服务 | 启用 | 禁用 |
万维网服务 | 启用 | 不更改 |
要求
• | 凭据:您必须作为 Web 服务器 Administrators 组成员登录。 |
• | 工具:添加或删除程序。 |
• | 配置 IIS 组件和服务
|
验证新的设置
验证正确安全设置是否已经应用于您的 Web 服务器。
• | 验证是否选择了 IIS 组件和服务
|
只启用基本的 Web 服务扩展
服务于动态内容的 Web 服务器需要 Web 服务扩展。每种动态内容都响应特定的 Web 服务扩展。由于安全原因,IIS 6.0 允许您启用和禁用单独的 Web 服务扩展,因此,只启用您的内容所需要的扩展。
警告:不要启用所有的 Web 服务扩展。尽管启用所有的 Web 服务扩展可确保最大限度地兼容现有的网站和应用程序,但却大幅增加了 Web 服务器的攻击面。您可能需要分别测试您的网站和应用程序,以确保只启用必需的 Web 服务和扩展。
假设配置 Web 服务器来服务于作为默认网页的 Default.asp 文件。尽管配置了默认网页,但您必须启用 Active Server Pages Web 服务扩展才能查看 .asp 网页。
要求
• | 凭据:您必须作为 Web 服务器 Administrators 组成员登录。 |
• | 工具:Internet 信息服务 (IIS) 管理器 (Iis.msc)。 |
• | 启用 Active Server Pages Web 服务扩展
|

验证新的设置
验证正确安全设置是否已经应用于您的 Web 服务器。
• | 验证是否启用了 Active Server Pages Web 服务扩展
|
配置帐户
建议您删除未使用的帐户,因为攻击者可能发现这些帐户,然后利用这些帐户来获取您服务器上的数据和应用程序的访问权。始终使用强密码,因为弱密码增加了成功进行强力攻击或字典攻击(即攻击者竭尽全力地猜密码)的可能性。使用以最低特权运行的帐户。否则,攻击者可以通过使用以高级特权运行的帐户来获取未经授权的资源的访问权。
本节对配置帐户提供以下逐步说明:
• | 禁用未使用的帐户 |
• | 使用应用程序池来隔离应用程序 |
禁用未使用的帐户
未使用的帐户及其特权可以被攻击者用来获取服务器的访问权。您应该定期审核服务器上的本地帐户,并禁用未使用的任何帐户。在生产服务器上禁用这些帐户之前,先在测试服务器上禁用帐户,以确保禁用帐户不会对应用程序的操作方式带来不利影响。如果在测试服务器上禁用帐户没有出现任何问题,则在生产服务器上禁用帐户。
注意:如果您选择删除而不是禁用未使用的帐户,则一定要知道您不能恢复已删除的帐户,因而不能删除管理员帐户和来宾帐户。而且,一定要在生产服务器上删除帐户之前,先在测试服务器上删除此帐户。
本节对删除或禁用未使用的帐户提供以下逐步说明:
• | 禁用来宾帐户 |
• | 重命名管理员帐户 |
• | 重命名 IUSR_ComputerName 帐户 |
禁用来宾帐户
采用匿名连接来访问 Web 服务器时,使用来宾帐户。在默认安装 Windows Server 2003 时,禁用来宾帐户。 要限制对服务器的匿名连接,请确保禁用来宾帐户。
要求
• | 凭据:您必须作为 Web 服务器 Administrators 组成员登录。 |
• | 工具:计算机管理 |
• | 禁用来宾帐户
|
重命名管理员帐户
默认的本地管理员帐户因其在计算机上的更高特权而成为恶意用户的目标。要增强安全性,请重命名默认的管理员帐户并分配一个强密码。
要求
• | 凭据:您必须作为 Web 服务器 Administrators 组成员登录。 |
• | 工具:我的电脑。 |
• | 重命名默认的管理员帐户并分配一个强密码
|
警告:不要使用上下文菜单中的“设置密码”菜单项来更改密码,除非您忘记了密码并且没有可用的密码重置磁盘。使用这种方法来更改管理员密码可能导致受此密码保护的信息永久丢失。
重命名 IUSR 帐户
默认的匿名 Internet 用户帐户 IUSR_ComputerName 是在 IIS 安装期间创建的。ComputerName 的值是安装 IIS 时服务器的 NetBIOS 名称。
要求
• | 凭据:您必须作为 Web 服务器 Administrators 组成员登录。 |
• | 工具:我的电脑。 |
• | 重命名 IUSR 帐户
|
• | 在 IIS 元数据库中更改 IUSR 帐户的值
|
验证新的设置
验证正确安全设置是否已经应用于您的 Web 服务器。
• | 验证帐户是否已禁用
|
• | 验证帐户是否已重命名
|
使用应用程序池来隔离应用程序
使用 IIS 6.0,可以将应用程序隔离到应用程序池。应用程序池是包含一个或多个 URL 的一个组,一个工作进程或者一组工作进程对应用程序池提供服务。因为每个应用程序都独立于其他应用程序运行,因此,使用应用程序池可以提高 Web 服务器的可靠性和安全性。
在 Windows 操作系统上运行进程的每个应用程序都有一个进程标识,以确定此进程如何访问系统资源。每个应用程序池也有一个进程标识,此标识是一个以应用程序需要的最低权限运行的帐户。可以使用此进程标识来允许匿名访问您的网站或应用程序。
要求
• | 凭据:您必须作为 Web 服务器 Administrators 组成员登录。 |
• | 工具:我的电脑。 |
• | 创建应用程序池
|
• | 将网站或应用程序分配到应用程序池
|

验证新的设置
验证正确安全设置是否已经应用于您的 Web 服务器。
• | 验证是否创建了应用程序池
|
• | 验证网站或应用程序是否分配到特定的应用程序池
|
配置文件和目录的安全
使用强访问控制来帮助保护敏感的文件和目录。在多数情况下,允许对特定帐户的访问比拒绝对特定帐户的访问更加有效。如有可能,请将访问设置在目录级。当文件添加到文件夹时,它们继承文件夹的权限,因此您不需要采取进一步的措施。
本节对配置文件和目录提供以下逐步说明:
• | 重定位和设置 IIS 日志文件的权限 |
• | 配置 IIS 元数据库权限 |
• | 禁用 FileSystemObject 组件 |
重新定位和设置 IIS 日志文件的权限
为了增强 IIS 日志文件的安全,您应该将文件重新定位到非系统驱动器,此驱动器格式化为使用 NTFS 文件系统。此位置应该与网站内容的位置不同。
要求
• | 凭据:您必须作为 Web 服务器 Administrators 组成员登录。 |
• | 工具:我的电脑和 Internet 信息服务 (IIS) 管理器 (Iis.msc)。 |
• | 将 IIS 日志文件的位置移动到非系统分区
|
注意:如果您在原来的位置 Windows/System32/Logfiles 上有 IIS 日志文件,则必须将这些文件手动移动到新位置。IIS 不为您移动这些文件。
• | 设置 IIS 日志文件的 ACL
|
验证新的设置
验证正确安全设置是否已经应用于您的 Web 服务器。
• | 验证是否移动了日志文件并设置了权限
|
配置 IIS 元数据库权限
IIS 元数据库是包含大部分 IIS 配置信息的 XML 文件。
要求
• | 凭据:您必须作为 Web 服务器 Administrators 组成员登录。 |
• | 工具:我的电脑和 MetaBase.xml 文件。 |
• | 限制 MetaBase.xml 文件的访问权
|
验证新的设置
验证正确安全设置是否已经应用于您的 Web 服务器。
• | 验证对 MetaBase.xml 文件受限制的访问
|
禁用 FileSystemObject 组件
ASP、Windows 脚本主机和其他编写脚本的应用程序使用 FileSystemObject (FSO) 组件来创建、删除、获取信息以及操纵驱动器、文件夹和文件。可考虑禁用 FSO 组件,但要注意,这也将删除字典对象。另外,验证是否没有其他程序需要这个组件。
要求
• | 凭据:您必须作为 Web 服务器 Administrators 组成员登录。 |
• | 工具:命令提示符。 |
• | 禁用 FileSystemObject 组件
|
保护网站和虚拟目录
将 Web 根目录和虚拟目录重新定位到非系统分区,以帮助防御目录遍历攻击。这些攻击允许攻击者执行操作系统程序和工具。由于这种攻击不能遍历所有驱动器,因此,将网站内容重新定位到另一个驱动器可以增强对这些攻击的防护。
本节对保护网站和虚拟目录提供以下逐步说明:
• | 将网站内容移动到非系统驱动器 |
• | 配置网站权限 |
将网站内容移动到非系统驱动器
不要使用默认的 /Inetpub/Wwwroot 目录作为网站内容的位置。例如,如果系统安装在 C: 驱动器,则将内容目录移动到 D: 驱动器,以减轻目录遍历攻击(这种攻击试图浏览 Web 服务器的目录结构)带来的危险。一定要验证是否所有的虚拟目录都指向新驱动器。
要求
• | 凭据:您必须作为 Web 服务器 Administrators 组成员登录。 |
• | 工具:Internet 信息服务 (IIS) 管理器 (Iis.msc) 和命令提示。 |
• | 将网站内容移动到非系统驱动器
|
验证新的设置
验证正确安全设置是否已经应用于您的 Web 服务器。
• | 验证网站内容是否已经移动到非系统驱动器
|
• | 删除系统驱动器上的网站内容
|
验证新的设置
验证正确安全设置是否已经应用于您的 Web 服务器。
• | 验证网站内容是否已经从系统驱动器上删除
|
配置网站权限
可以为您的 Web 服务器配置特定站点、目录和文件的访问权。这些权限可以应用于所有用户,无论用户有何特定的访问权。
配置文件系统目录的权限
IIS 6.0 依靠 NTFS 权限来帮助保护单个文件和目录不会受到未经授权的访问。网站权限应用于试图访问网站的任何人,与此不同的是,您可以使用 NTFS 权限来定义哪些用户可以访问您的内容,以及如何允许这些用户操作这些内容。为了增强安全性,同时使用网站权限和 NTFS 权限。
访问控制列表 (ACL) 指示哪些用户或组有访问或修改特定文件的权限。不是在每个文件上设置 ACL,而是为每种文件类型创建新目录,在每个目录上设置 ACL,然后允许文件从它们所在的目录中继承这些权限。
要求
• | 凭据:您必须作为 Web 服务器 Administrators 组成员登录。 |
• | 工具:我的电脑和 Internet 信息服务 (IIS) 管理器 (Iis.msc)。 |
• | 将网站内容移动到单独的文件夹
|
注意: 如果您已经创建了到这些网页的链接,则必须更新这些链接以便反映站点内容的新位置。
• | 设置 Web 内容的权限
|
如果一个子节点属于您已经更改了网站权限的目录,此节点还为特定选项设置了网站权限,则子节点的权限将覆盖您为目录设置的权限。如果您想要将目录级的 Web 权限应用到子节点,则必须在“继承覆盖”框中选择这些子节点。
验证新的设置
验证正确安全设置是否已经应用于您的 Web 服务器。
• | 验证是否拒绝网站内容目录的写权限
|
在 Web 服务器上配置安全套接字层
在 Web 服务器上配置安全套接字层 (SSL) 安全功能,以便验证内容的完整性,验证用户身份并对网络传输加密。SSL 安全依靠服务器证书,此证书允许用户在传输个人信息(例如信用卡帐号)之前验证 Web 网站的身份。每个网站只能有一个服务器证书。
获取并安装服务器证书
证书由称作证书颁发机构 (CA) 的非 Microsoft 组织颁发。服务器证书通常与 Web 服务器有关,尤其与配置了 SSL 的网站有关。您必须生成证书请求,将此请求发送到 CA,然后在接收到 CA 的证书之后安装此证书。
证书依靠一对加密密钥(一个公钥和一个私钥)来确保安全。当您生成服务器证书请求时,您实际上正在生成私钥。从 CA 接收到的服务器证书包含公钥。
要求
• | 凭据:您必须作为 Web 服务器 Administrators 组成员登录。 |
• | 工具:Internet 信息服务 (IIS) 管理器 (Iis.msc) 和 Web 服务器证书向导。 |
• | 生成服务器证书请求
|
• | 提交服务器证书请求
|
接收到 CA 的证书后,准备在您的 Web 服务器上安装此证书。
• | 安装服务器证书
|
验证新的设置
验证正确设置是否已经应用于您的本地计算机。
• | 验证是否在 Web 服务器上安装了证书
|
在 Web 服务器上强制和启用 SSL 连接
安装服务器证书之后,必须在 Web 服务器上强制 SSL 连接。然后,必须启用 SSL 连接。
要求
• | 凭据:您必须作为 Web 服务器 Administrators 组成员登录。 |
• | 工具:Internet 信息服务 (IIS) 管理器 (Iis.msc)。 |
• | 强制 SSL 连接
|
• | 在 Web 服务器上启用 SSL 连接
|
验证新的设置
验证正确安全设置是否已经应用于您的 Web 服务器。
• | 验证 Web 服务器上的 SSL 连接
|