30岁,我在做什么?

.NET SQL数据库 Office开发 办公自动化

导航

保护 Internet Information Services 6.0

Posted on 2007-06-20 01:04  .net 世界  阅读(459)  评论(0)    收藏  举报
保护 Internet Information Services 6.0

更新日期: 2006年10月27日
本页内容
引言 引言
开始之前 开始之前
减少 Web 服务器的攻击面 减少 Web 服务器的攻击面
配置帐户 配置帐户
配置文件和目录的安全 配置文件和目录的安全
保护网站和虚拟目录 保护网站和虚拟目录
在 Web 服务器上配置安全套接字层 在 Web 服务器上配置安全套接字层
相关信息 相关信息

引言

Web 服务器通常是各种安全攻击的目标。其中一些攻击非常严重,足以对企业资产、生产力和客户关系造成相当的破坏,而且所有攻击都会带来不便和麻烦。Web 服务器的安全是企业成功的关键。

本文档介绍如何保护在 Microsoft® Windows Server™ 2003 Standard Edition 操作系统上运行 Internet Information Services (IIS) 6.0 的 Web 服务器的安全。首先,本节描述影响 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 中的“Securing Internet Information Services 5.0 and 5”(英文),可从 Microsoft 下载中心网站下载,网址为:www.microsoft.com/windowsserver2003/techinfo/overview/iis.mspx。

由于 IIS 6.0 的默认设置禁用了 Web 服务通常使用的许多功能,因此,本文档说明如何在降低服务器暴露给潜在攻击者程度的同时配置 Web 服务器的其他功能。

本文档就增强 Web 服务器的安全提供以下指导:

减少 Web 服务器的攻击面,或者降低服务器暴露给潜在攻击者的程度。

配置用于匿名访问的用户帐户和组帐户。

保护文件和目录不受未经授权的访问。

保护网站和虚拟目录不受未经授权的访问。

配置 Web 服务器上的安全套接字层 (SSL)。

要点   本文档中包含的所有分步指导都是从单击“开始”按钮后显示的默认菜单开始进行操作的。如果修改了“开始”菜单,操作步骤会略有不同。

在您完成本文档中的步骤之后,Web 服务器将能够服务于以 .asp 页面形式提供的动态内容,而且仍然能够对以下类型的攻击提供强有力的保护,这些攻击有时威胁到面向 Internet 的服务器:

配置文件攻击,此攻击搜集网站的有关信息;可通过禁止不需要的端口和禁用不需要的协议来减少这种攻击。

拒绝服务攻击,此攻击使大量请求涌入 Web 服务器;可通过应用安全修补程序和软件更新来最大限度地减少这种攻击。

没有正确权限的用户未经授权的访问;通常通过配置 Web 和 NTFS 权限来阻止这种访问。

恶意代码在 Web 服务器上任意执行;可通过防止对系统工具和命令的访问来最大限度地减少这种攻击。

特权提升,使恶意用户能够使用具有较高特权的帐户来运行程序;可通过使用最低特权的服务和用户帐户来最大限度地减少这种攻击。

来自病毒、蠕虫和特洛伊木马的破坏;可通过禁用不需要的功能、使用最低特权的帐户以及及时应用最新安全修补程序来遏制这种攻击。

注意   由于保护 Web 服务器是一个复杂而长期的过程,因此完全的安全性很难保证。

本文档的目的

本文档提供介绍性信息,帮助您采取最初的几个措施,以配置一台更安全的 Web 服务器。不过,为了使 Web 服务器尽可能安全,您必须了解服务器上运行的应用程序的操作。本文档不包括应用程序特定安全配置的有关信息。

开始之前

本节说明本文档中描述的 Web 服务器的系统要求和特征。

系统要求

本文档中用作示例的 Web 服务器有以下系统要求:

此服务器运行 Windows Server 2003 Standard Edition。

操作系统安装在 NTFS 分区上。有关 NTFS 的信息,请在 Windows Server 2003 中的帮助和支持中心搜索“NTFS”。

Windows Server 2003 所有必需的修补程序和更新都已经应用到此服务器。为了验证 Web 服务器上是否安装了最新的安全更新,请转到 Microsoft 网站上的 Microsoft Update 网页(网址为:http://windowsupdate.microsoft.com),利用 Windows Update 来扫描服务器是否有可用的更新。

Windows Server 2003 安全保护已经应用到服务器。有关保护 Windows Server 2003 的详细信息,请访问 Windows Server 2003 安全性简介,网址为:http://go.microsoft.com/fwlink/?LinkId=14845。

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 (ISA) 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

1.

单击“开始”,然后单击“控制面板”,双击“网络连接”

2.

右键单击面向 Internet 的连接,然后单击“属性”

3.

清除“Microsoft 网络客户端”复选框。

4.

清除“Microsoft 网络的文件和打印机共享”复选框,然后单击“确定”

禁用 TCP/IP 上的 NetBIOS

1.

单击“开始”,右键单击“我的电脑”,然后单击“管理”

2.

双击“系统工具”,然后选择“设备管理器”

3.

右键单击“设备管理器”,单击“查看”,然后单击“显示隐藏的设备”

4.

双击“非即插即用驱动程序”

5.

右键单击“NetBios over TCP/IP”,单击“禁用”(如下面的屏幕快照所示),然后单击“是”

SIIS601.GIF

注意   本文档中的屏幕快照反映的是测试环境,其信息可能与您的屏幕上所显示的信息不同。

上述过程不仅禁用 TCP 端口 445 和 UDP 端口 445 上的 SMB 直接宿主侦听程序,而且还禁用 Nbt.sys 驱动程序,并要求您重新启动计算机。

验证新的设置

请完成以下过程,以验证是否已为您的 Web 服务器应用了正确的安全设置。

验证 SMB 是否已禁用

1.

单击“开始”,单击“设置”,然后单击“网络和拨号连接”。

2.

右键单击面向 Internet 的连接,然后单击“属性”

3.

确认已清除“Microsoft 网络客户端”和“Microsoft 网络的文件和打印机共享”复选框,然后单击“确定”

验证 NetBIOS 是否已禁用

1.

单击“开始”,右键单击“我的电脑”,然后单击“管理”

2.

双击“系统工具”,然后选择“设备管理器”

3.

右键单击“设备管理器”,单击“查看”,然后单击“显示隐藏的设备”

4.

双击“非即插即用驱动程序”,然后右键单击“NetBIOS over TCP/IP”。现在上下文菜单中出现“启用”选项,这表示“NetBIOS over TCP/IP”已禁用。

5.

单击“确定”关闭“设备管理器”。

只选择基本的 IIS 组件和服务

IIS 6.0 除了包括 WWW 服务之外,还包括一些子组件和服务,例如 FTP 服务和 SMTP 服务。为了最大限度地降低针对特定服务和子组件的攻击风险,Microsoft 建议您只选网站和 Web 应用程序正确运行所需的服务和子组件。

下表显示用作本文档示例的 Web 服务器上 IIS 子组件和服务在“添加或删除程序”中的推荐设置。

表 1. IIS 子组件和服务的推荐设置

子组件或服务 默认设置 Web 服务器设置

后台智能传输服务 (BITS) 服务器扩展

已禁用

无更改

公用文件

已启用

无更改

FTP 服务

已禁用

无更改

FrontPage 2002 Server Extensions

已禁用

无更改

Internet 信息服务管理器

已启用

无更改

Internet 打印

已禁用

无更改

NNTP 服务

已禁用

无更改

SMTP 服务

已启用

已禁用

万维网服务

已启用

无更改

后台智能传输服务 (BITS) 服务器扩展

已禁用

无更改

要求

您需要满足以下条件才能完成此任务:

凭据。您必须作为 Web 服务器 Administrators 组成员登录。

工具。添加或删除程序。

配置 IIS 组件和服务

1.

单击“开始”,单击“控制面板”,然后单击“添加或删除程序”

2.

单击“添加/删除 Windows 组件”

3.

在“Windows 组件向导”屏幕的“组件”下,单击“应用程序服务器”,然后单击“详细信息”

4.

单击“Internet 信息服务(IIS)”,然后单击“详细信息”

5.

参考上表,然后通过选择或清除相应组件或服务的复选框,来选择或取消相应的 IIS 组件和服务。

6.

按照屏幕上的说明操作,完成 Windows 组件向导。

验证新的设置

请完成以下过程,以验证是否已经为您的 Web 服务器应用了正确的安全设置。

验证是否选择了 IIS 组件和服务

1.

依次单击“开始”、“控制面板”和“管理工具”

2.

此时“Internet 信息服务(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 服务扩展

1.

依次单击“开始”、“控制面板”、“管理工具”,然后双击“Internet 信息服务(IIS)管理器”。

2.

双击本地计算机,然后单击“Web 服务扩展”

3.

单击“Active Server Pages”,然后单击“允许”(如下面的屏幕快照所示)。

SIIS602.GIF

验证新的设置

请完成以下过程,以验证是否已经为您的 Web 服务器应用了正确的安全设置。

验证是否启用了 Active Server Pages Web 服务扩展

1.

打开文本编辑器,键入“ASP 测试页”,然后将该文件命名为 Default.asp,并保存到 C:\inetpub\wwwroot 目录下。

2.

在 Internet Explorer 的“地址”框中,键入以下 URL:

http://localhost

然后按 Enter 键。文本“ASP 测试页”应出现在浏览器中。

3.

删除文件 C:\inetpub\wwwroot\Default.asp

配置帐户

Microsoft 建议您删除未使用的帐户,因为攻击者可能会发现这些帐户,然后利用这些帐户来访问您服务器上的数据和应用程序。始终使用强密码,因为弱密码增加了成功进行强力攻击或字典攻击(即攻击者竭尽全力地猜密码)的可能性。使用以最低特权运行的帐户。否则,攻击者可以通过使用以高级特权运行的帐户来获取未经授权的资源的访问权。

本节提供下列任务的逐步说明:

禁用未使用的帐户

使用应用程序池来隔离应用程序

禁用未使用的帐户

攻击者可以利用未使用的帐户及其权限获得对服务器的访问。您应该定期审核服务器上的本地帐户,并禁用未使用的任何帐户。在生产服务器上禁用这些帐户之前,先在测试服务器上禁用帐户,以确保禁用帐户不会对应用程序的运行方式带来不利影响。如果在测试服务器上禁用帐户没有出现任何问题,则在生产服务器上禁用帐户。

注意   如果您选择删除而不是禁用未使用的帐户,则一定要知道您不能恢复已删除的帐户,因而不能删除 Administrator 帐户和 Guest 帐户。而且,一定要在生产服务器上删除帐户之前,先在测试服务器上删除此帐户。

本节提供下列步骤的逐步说明:

禁用 Guest 帐户

重命名 Administrator 帐户

重命名 IUSR_ComputerName 帐户

禁用 Guest 帐户

采用匿名连接来访问 Web 服务器时,使用 Guest 帐户。在默认安装 Windows Server 2003 时,禁用 Guest 帐户。要限制对服务器的匿名连接,请确保禁用 Guest 帐户。

要求

您需要满足以下条件才能完成此任务:

凭据。您必须作为 Web 服务器 Administrators 组成员登录。

工具。计算机管理

禁用 Guest 帐户

1.

单击“开始”,右键单击“我的电脑”,然后单击“管理”

2.

双击“本地用户和组”,然后单击“用户”文件夹。Guest 帐户出现,而且带一个红色的 X 图标,指示此帐户已禁用(如下面的屏幕快照所示)。

如果 Guest 帐户未禁用,则继续步骤 3 来禁用此帐户。

SIIS603.GIF

3.

右键单击“Guest”帐户,然后单击“属性”

4.

在“常规”选项卡上,选中“帐户已停用”复选框,然后单击“确定”

Guest 帐户现在应带有一个红色的 X 图标。

重命名管理员帐户

默认的本地管理员帐户因其在计算机上的更高特权而成为恶意用户的目标。为了增强安全性,请重命名默认的 Administrator 帐户并设置强密码。

要求

您需要满足以下条件才能完成此任务:

凭据。您必须作为 Web 服务器 Administrators 组成员登录。

工具。我的电脑。

重命名默认的管理员帐户并分配一个强密码

1.

单击“开始”,右键单击“我的电脑”,然后单击“管理”

2.

双击“本地用户和组”,然后单击“用户”文件夹。

3.

右键单击“Administrator”帐户,然后单击“重命名”

4.

在框中键入名称,然后按 Enter 键。

5.

在桌面上,按 Ctrl+Alt+Del,然后单击“更改密码”

6.

在“用户名”框中键入 Administrator 帐户的新名称

7.

在“旧密码”框中键入当前密码,在“新密码”框中键入新密码,在“确认新密码”框中重新键入新密码,然后单击“确定”

警告   除非您忘记了密码,并且没有可用的密码重置磁盘,否则不要使用上下文菜单中的“设置密码”菜单项来更改密码。使用这种方法来更改管理员密码可能导致受此密码保护的信息永久丢失。

重命名 IUSR 帐户

默认匿名 Internet 用户帐户 IUSR_<计算机名> 是在 IIS 安装期间创建的。<计算机名> 的值是安装 IIS 时服务器的 NetBIOS 名称。重命名 IUSR 帐户可以降低某些强力攻击的成功的可能性。

要求

您需要满足以下条件才能完成这些任务:

凭据。您必须作为 Web 服务器 Administrators 组成员登录。

工具。我的电脑。

重命名 IUSR 帐户

1.

单击“开始”,右键单击“我的电脑”,然后单击“管理”

2.

双击“本地用户和组”,然后单击“用户”文件夹。

3.

右键单击 IUSR_<计算机名> 帐户,然后单击“重命名”

4.

键入新帐户名称,然后按 Enter 键。

在 IIS 元数据库中更改 IUSR 帐户的值

1.

依次单击“开始”、“控制面板”、“管理工具”,然后双击“Internet 信息服务(IIS)管理器”。

2.

右键单击本地计算机,然后单击“属性”

3.

选中“允许直接编辑配置数据库”复选框,然后单击“确定”

4.

浏览至 MetaBase.xml 文件的位置。默认情况下,此文件位于 C:\Windows\system32\inetsrv。

5.

右键单击 MetaBase.xml 文件,然后单击“编辑”

6.

搜索 AnonymousUserName 属性,然后键入 IUSR 帐户的新名称。

7.

在“文件”菜单上,单击“退出”,然后单击“是”

验证新的设置

请完成以下过程,以验证是否已为您的 Web 服务器应用了正确的安全设置。

验证帐户是否已禁用

1.

按 Ctrl+Alt+Del,然后单击“注销”注销 Web 服务器。

2.

在“登录到 Windows”对话框的“用户名”框中,键入已禁用的帐户名,然后键入已禁用帐户的密码,接着单击“确定”

屏幕上显示以下消息:

您的帐户已被停用。请向系统管理员咨询。

验证帐户是否已重命名

1.

按 Ctrl+Alt+Del,然后单击“注销”注销 Web 服务器。

2.

在“登录到 Windows”对话框的“用户名”框中键入重命名帐户以前的名称,然后键入重命名帐户的密码,接着单击“确定”

屏幕上显示以下消息:

系统无法让您登录。请确定您的用户名及域无误然后再次输入密码。密码的字母必须使用正确的大小写。

3.

单击“确定”,然后在“用户名”框中键入重命名帐户的新名称。

4.

键入重命名帐户的密码,然后单击“确定”

然后您就可用已更名的帐户登录计算机了。

使用应用程序池来隔离应用程序

您可以使用 IIS 6.0 将应用程序隔离到应用程序池中。应用程序池是包含一个或多个 URL 的一个组,一个工作进程或者一组工作进程对应用程序池提供服务。因为每个应用程序都独立于其他应用程序运行,因此,使用应用程序池可以提高 Web 服务器的可靠性和安全性。

每个在 Windows 操作系统上运行的进程都有一个进程标识,此标识确定进程如何访问计算机上的资源。每个应用程序池也有一个进程标识,此标识是一个以应用程序需要的最低权限运行的帐户。可以使用此进程标识来允许匿名访问您的网站或应用程序。

要求

您需要满足以下条件才能完成这些任务:

凭据。您必须作为 Web 服务器 Administrators 组成员登录。

工具。我的电脑。

创建应用程序池

1.

依次单击“开始”、“控制面板”、“管理工具”,然后双击“Internet 信息服务(IIS)管理器”。

2.

双击本地计算机,右键单击“应用程序池”,单击“新建”,然后单击“应用程序池”

3.

在“应用程序池 ID”框中,为应用程序池键入一个新的 ID(下面的屏幕快照示例使用 ContosoAppPool 作为 ID)。

SIIS604.GIF

4.

在“应用程序池设置”下,选择“Use default settings for the new application pool”(为新应用程序池使用默认设置),然后单击“确定”

将网站或应用程序分配到应用程序池

1.

依次单击“开始”、“控制面板”、“管理工具”,然后双击“Internet 信息服务(IIS)管理器”。

2.

右键单击要分配到应用程序池中的网站或应用程序,然后单击“属性”

3.

根据所选的应用程序类型,单击“主目录”、“虚拟目录”或“目录”选项卡。

4.

如果要将目录或虚拟目录分配到应用程序池,请验证“应用程序名”框是否包含正确的网站名或应用程序名。

-或-

如果“应用程序名”框中没有名称,请单击“创建”,为网站或应用程序键入名称。

5.

在“应用程序池”列表框中,选择要将网站或应用程序分配到的应用程序池的名称(如下面的屏幕快照所示),然后单击“确定”

SIIS605.GIF

验证新的设置

请完成以下过程,以验证是否已为您的 Web 服务器应用了正确的安全设置。

验证是否创建了应用程序池

1.

使用管理员帐户登录到 Web 服务器。

2.

依次单击“开始”、“控制面板”、“管理工具”,然后双击“Internet 信息服务(IIS)管理器”。

3.

双击本地计算机,然后双击“应用程序池”,验证您所创建的应用程序池是否出现在“应用程序池”节点下。

4.

右键单击您所创建的应用程序池,然后单击“属性”

5.

单击“标识”选项卡,验证应用程序池标识是否已设置为名为“网络服务”的预定义安全帐户,然后单击“确定”

验证网站或应用程序是否分配到特定的应用程序池

1.

使用管理员帐户登录到 Web 服务器。

2.

依次单击“开始”、“控制面板”、“管理工具”,然后双击“Internet 信息服务(IIS)管理器”。

3.

双击本地计算机、然后双击“网站”,右键单击要验证其应用程序池设置的网站,然后单击“属性”

4.

根据所选的应用程序类型,单击“主目录”、“虚拟目录”或“目录”选项卡。

5.

在“应用程序池”列表框中,验证是否已列出要将网站分配到的应用程序池的名称,然后单击“取消”

配置文件和目录的安全

使用强访问控制来帮助保护敏感的文件和目录。在多数情况下,允许对特定帐户的访问比拒绝对特定帐户的访问更加有效。请尽可能在目录级设置访问权限。当文件添加到文件夹时,它们继承文件夹的权限,因此您不需要采取进一步的措施。

本节提供以下任务的逐步说明,以帮助您配置文件和目录的安全性:

重定位和设置 IIS 日志文件的权限

配置 IIS 元数据库权限

禁用 FileSystemObject 组件

重新定位和设置 IIS 日志文件的权限

为了增强 IIS 日志文件的安全,您应该将文件重新定位到非系统驱动器,此驱动器格式化为使用 NTFS 文件系统。此位置应该与网站内容的位置不同。通过重新定位这些文件,您可以防止某些类型的攻击泄露您的日志文件的内容。日志文件还应加以保护,以提供可能对服务器进行的攻击的审核记录。将日志文件放置在非系统磁盘上也可以改善服务器性能。

要求

您需要满足以下条件才能完成这些任务:

凭据。您必须作为 Web 服务器 Administrators 组成员登录。

工具。“我的电脑”和 Internet 信息服务 (IIS) 管理器 (Iis.msc)。

将 IIS 日志文件的位置移动到非系统分区

1.

单击“开始”,右键单击“我的电脑”,然后单击“资源管理器”

2.

浏览至您想要重新定位 IIS 日志文件的位置。

3.

右键单击要重新定位 IIS 日志文件的上一级目录,单击“新建”,然后单击“文件夹”

4.

键入文件夹的名称,例如 ContosoIISLogs,然后按 Enter 键。

5.

依次单击“开始”、“控制面板”、“管理工具”,然后双击“Internet 信息服务(IIS)管理器”。

6.

右键单击网站,然后单击“属性”

7.

单击“网站”选项卡,然后单击“启用日志记录”框架中的“属性”

8.

在“常规属性”选项卡中,单击“浏览”,然后导航到您刚才创建的用来存储 IIS 日志文件的文件夹。

9.

单击“确定”三次。

注意   如果在原始位置 Windows\System32\Logfiles 下有 IIS 日志文件,则必须将这些文件手动移到新位置。IIS 不为您移动这些文件。

设置 IIS 日志文件的 ACL

1.

单击“开始”,右键单击“我的电脑”,然后单击“资源管理器”

2.

浏览至日志文件所在的文件夹。

3.

右键单击此文件夹,单击“属性”,然后单击“安全”选项卡。

4.

在顶部窗格中,单击“管理员”,并确保底部窗格中的权限设置为“完全控制”

5.

在顶部窗格中,单击“系统”,并确保底部窗格中的权限设置为“完全控制”,然后单击“确定”

验证新的设置

请完成以下过程,以验证是否已经为您的 Web 服务器应用了正确的安全设置。

验证是否移动了日志文件并设置了权限

1.

依次单击“开始”、“搜索”和“文件或文件夹”

2.

在“要搜索的文件名”框中键入部分或完整的文件名(如 LogFiles),在“搜索范围”框中选择位置,然后单击“立即搜索”

搜索结果将显示日志文件的新位置。

3.

按 Ctrl+Alt+Del,然后单击“注销”

4.

使用没有日志文件访问权的帐户来登录到 Web 服务器。

5.

单击“开始”,右键单击“我的电脑”,单击“资源管理器”,然后浏览至 LogFiles 目录。

6.

右键单击 LogFiles 目录,然后单击“打开”。屏幕上显示以下消息:

访问被拒绝

配置 IIS 元数据库权限

IIS 元数据库是包含大部分 IIS 配置信息的 XML 文件。

要求

您需要满足以下条件才能完成此任务:

凭据。您必须作为 Web 服务器 Administrators 组成员登录。

工具。“我的电脑”和 MetaBase.xml 文件。

限制 MetaBase.xml 文件的访问权

1.

单击“开始”,右键单击“我的电脑”,然后单击“资源管理器”

2.

浏览至 Windows\System32\Inetsrv\MetaBase.xml 文件,右键单击此文件,然后单击“属性”

3.

单击“安全”选项卡,确认只有 Administrators 组的成员和 LocalSystem 帐户拥有对元数据库的完全控制访问权,删除所有其他文件权限,然后单击“确定”

验证新的设置

请完成以下过程,以验证是否已经为您的 Web 服务器应用了正确的安全设置。

验证对 MetaBase.xml 文件受限制的访问

1.

按 Ctrl+Alt+Del,然后单击“注销”

2.

使用对 MetaBase.xml 文件没有访问权限的帐户登录到 Web 服务器。

3.

单击“开始”,右键单击“我的电脑”,单击“资源管理器”,然后浏览至 MetaBase.xml 所在的位置。

4.

右键单击 MetaBase.xml 文件,然后单击“打开”。屏幕上显示以下消息:

访问被拒绝

禁用 FileSystemObject 组件

ASP、Windows Script Host 和其他编写脚本的应用程序使用 FileSystemObject (FSO) 组件来创建、删除以及获取有关驱动器、文件夹和文件的信息,并对驱动器、文件夹和文件进行操作。可考虑禁用 FSO 组件,但要注意,这也将删除字典对象。另外,验证是否没有其他程序需要这个组件。

要求

您需要满足以下条件才能完成此任务:

凭据。您必须作为 Web 服务器 Administrators 组成员登录。

工具。命令提示符。

禁用 FileSystemObject 组件

1.

依次单击“开始”、“运行”,然后在“打开”框中键入 cmd,单击“确定”

2.

键入 cd c:\Windows\system32,按 Enter 切换到 C:\Windows\system32 目录。

3.

在命令提示符下,键入 regsvr32 scrrun.dll /u,然后按 Enter 键。屏幕上显示以下消息:

DllUnregisterServer in scrrun.dll succeeded.

4.

单击“确定”。

5.

在命令提示符下,键入 exit 并按 Enter 关闭命令提示窗口。

保护网站和虚拟目录

将 Web 根目录和虚拟目录重新定位到非系统分区,以帮助防御目录遍历攻击。这些攻击允许攻击者执行操作系统程序和工具。由于这种攻击不能遍历所有驱动器,因此,将网站内容重新定位到另一个驱动器可以增强对这些攻击的防护。

本节提供以下任务的逐步说明,以帮助保护网站和虚拟目录:

将网站内容移动到非系统驱动器

配置网站权限

将网站内容移动到非系统驱动器

不要使用默认的 \Inetpub\Wwwroot 目录作为网站内容的位置。例如,如果操作系统安装在 C:驱动器,请考虑将站点和内容目录移至 D:驱动器,以减轻目录遍历攻击(攻击者利用这种攻击浏览 Web 服务器的目录结构)带来的风险。一定要验证是否所有的虚拟目录都指向新驱动器。

要求

您需要满足以下条件才能完成此任务:

凭据。您必须作为 Web 服务器 Administrators 组成员登录。

工具。Internet 信息服务 (IIS) 管理器 (Iis.msc) 和命令提示符。

将网站内容移动到非系统驱动器

1.

依次单击“开始”、“控制面板”、“管理工具”,然后双击“Internet 信息服务(IIS)管理器”。

2.

右键单击要移动其内容的网站,然后单击“停止”

3.

依次单击“开始”、“运行”,然后在“打开”框中键入 cmd,单击“确定”

4.

在命令提示符下键入以下命令:

xcopy c:\inetpub\wwwroot\<SiteName> <Drive>:\wwwroot\SiteName /s /i /o

这里,

<SiteName> 是您的网站的名称。

<Drive> 是新驱动器的驱动器号(如 D)。

5.

返回到 Internet 信息服务 (IIS) 管理器管理单元,右键单击网站,然后单击“属性”

6.

根据所选的应用程序类型,单击“主目录”、“虚拟目录”或“目录”选项卡,在“本地路径”框中键入新目录位置,然后单击“确定”

-或-

浏览至您刚才将文件复制到的新目录位置,然后单击“确定”

7.

右键单击网站,然后单击“开始”

验证新的设置

请完成以下过程,以验证是否已为您的 Web 服务器应用了正确的安全设置。

验证网站内容是否已经移动到非系统驱动器

1.

依次单击“开始”、“搜索”和“文件或文件夹”

2.

在“要搜索的文件名”框中键入部分或完整的文件名,在“搜索范围”框中选择位置,然后单击“立即搜索”

搜索结果列出您移动到新位置的文件以及原始位置的文件。

删除系统驱动器上的网站内容

导航到 C:\Inetpub\Wwwroot\SiteName 目录,然后删除已移动到非系统驱动器的文件。

验证网站内容是否已经从系统驱动器上删除

1.

依次单击“开始”、“搜索”和“文件或文件夹”

2.

在“要搜索的文件名”框中键入部分或完整的文件名,在“搜索范围”框中选择位置,然后单击“立即搜索”

搜索结果将只列出您移动到新位置的文件。

配置网站权限

可以为您的 Web 服务器配置特定站点、目录和文件的访问权。这些权限可以应用于所有用户,无论用户有何特定的访问权。

配置文件系统目录的权限

IIS 6.0 依靠 NTFS 权限来帮助保护单个文件和目录不会受到未经授权的访问。网站权限应用于试图访问网站的任何人,与此不同的是,您可以使用 NTFS 权限来定义哪些用户可以访问您的内容,以及如何允许这些用户操作这些内容。为了增强安全性,同时使用网站权限和 NTFS 权限。

访问控制列表 (ACL) 指示哪些用户或组有访问或修改特定文件的权限。不是针对每个文件设置 ACL,而是为每种文件类型创建新目录,针对每个目录设置 ACL,然后允许文件从它们所在的目录继承这些权限。

要求

您需要满足以下条件才能完成这些任务:

凭据。您必须作为 Web 服务器 Administrators 组成员登录。

工具。“我的电脑”和 Internet 信息服务 (IIS) 管理器 (iis.msc)。

将网站内容移动到单独的文件夹

1.

单击“开始”,右键单击“我的电脑”,然后单击“资源管理器”

2.

浏览至包含网站内容的文件,然后单击网站内容的最上层的文件夹。

3.

在“文件”菜单中,单击“新建”,然后单击“文件夹”在网站的内容目录中创建一个新文件夹。

4.

为文件夹命名,然后按 Enter 键。

5.

按 Ctrl 键,然后选择您想要保护的每个网页。

6.

右键单击这些网页,然后单击“复制”

7.

右键单击新文件夹,然后单击“粘贴”

注意   如果您已经创建了到这些网页的链接,则必须更新这些链接以反映站点内容的新位置。

设置 Web 内容的权限

1.

依次单击“开始”、“控制面板”、“管理工具”,然后双击“Internet 信息服务(IIS)管理器”。

2.

右键单击您想要配置的网站文件夹、网站、目录、虚拟目录或文件,然后单击“属性”

3.

根据您想要授权或拒绝访问的类型,选择或清除下列任何复选框(如果可用):

脚本源文件访问。用户可以访问源文件。如果选择“读”,则可以读取源文件;如果选择“写”,则可以写入源文件。脚本源访问包括脚本的源代码。如果“读”或“写”均未选择,则此选项不可用。

读(默认情况下已选定)。用户可以查看目录或文件的内容和属性。

。用户可以更改目录或文件的内容和属性。

目录浏览。用户可以查看文件列表和集合。

日志访问。对网站的每次访问创建日志项。

检索此资源。允许检索服务检索此资源。这允许用户搜索资源。

4.

在“执行权限”列表框中,选择脚本执行的相应级别:

。不在服务器上运行脚本或可执行文件(例如,文件类型为 .exe 的文件)。

仅脚本。只在服务器上运行脚本。

脚本和可执行文件。在服务器运行脚本和可执行文件。

5.

单击“确定”。如果目录的子节点配置了不同的网站权限,则显示“继承覆盖”框。

6.

如果出现“继承覆盖”框,请在“子节点”列表中选择要将目录的 Web 权限应用到的子节点。

-或-

单击“全选”来设置属性,以便将 Web 权限应用到所有子节点。

7.

如果您看到多个“继承覆盖”框,请从“子节点”列表中选择子节点,或者单击“全选”,然后单击“确定”,将此属性的 Web 权限应用到子节点。

如果一个子节点属于您已经更改了网站权限的目录,此节点还为特定选项设置了网站权限,则子节点的权限将覆盖您为目录设置的权限。如果您要将目录级网站权限应用到子节点,则必须在“继承覆盖”框中选择这些子节点。

验证新的设置

请完成以下过程,以验证是否已经为您的 Web 服务器应用了正确的安全设置。

验证是否拒绝网站内容目录的写权限

1.

按 Ctrl+Alt+Del,然后单击“注销”

2.

使用在物理或虚拟目录上具有“读”和“执行”权限的帐户来登录到 Web 服务器。

3.

单击“开始”,右键单击“我的电脑”,单击“资源管理器”,浏览至要复制到物理或虚拟目录的文件所在的位置。

4.

右键单击该文件,然后单击“复制”

5.

浏览至物理或虚拟目录的位置,然后右键单击此目录。如果“粘贴”选项没有出现在上下文菜单中,则意味着您没有此目录的写入权限。

在 Web 服务器上配置安全套接字层

在 Web 服务器上配置安全套接字层 (SSL) 安全功能,以便验证内容的完整性,验证用户身份并对网络传输加密。如果要在网站上接受信用卡交易时,则通常需要 SSL。SSL 安全依靠服务器证书,此证书允许用户在传输个人信息(例如信用卡帐号)之前验证 Web 网站的身份。每个网站只能有一个服务器证书。

获取并安装服务器证书

证书由称作证书颁发机构 (CA) 的非 Microsoft 组织颁发。通常,服务器证书与您的 Web 服务器有关,尤其是配置了 SSL 的 Web 站点。要获取 CA 颁发的证书,您必须首先创建证书请求并发送给 CA,然后在收到证书后进行安装。

证书依靠一对加密密钥(一个公钥和一个私钥)来保证安全。当您生成服务器证书请求时,您实际上正在生成私钥。从 CA 接收到的服务器证书包含公钥。

要求

您需要满足以下条件才能完成这些任务:

凭据。您必须作为 Web 服务器 Administrators 组成员登录。

工具。Internet 信息服务 (IIS) 管理器 (iis.msc) 和 Web 服务器证书向导。

生成服务器证书请求

1.

单击“开始”,右键单击“我的电脑”,然后单击“管理”

2.

双击“服务和应用程序”部分,然后双击“Internet 信息服务”

3.

右键单击要安装服务器证书的网站,然后单击“属性”

4.

单击“目录安全性”选项卡。在“安全通信”部分中,单击“服务器证书”启动“Web 服务器证书向导”,然后单击“下一步”

5.

单击“创建新证书”,然后单击“下一步”

6.

单击“立即准备请求,但稍后发送”,然后单击“下一步”

7.

在“名称”框中,键入一个容易记住的名称。(默认名称是您正在为其生成证书请求的网站名,例如 http://www.contoso.com。)

8.

指定位长,然后单击“下一步”

加密密钥的位长决定了加密强度。大多数非 Microsoft CA 都希望您最少选择 1024 位。

9.

在“组织”部分中,键入您的组织和组织单位信息。确保这些信息准确无误,并且“组织”字段中不包含逗号,然后单击“下一步”

10.

在“站点的公用名称”部分中,键入宿主计算机的名称(带域名),然后单击“下一步”

11.

键入您的地理信息,然后单击“下一步”

12.

将此文件保存为 .txt 文件。(默认的文件名和位置是 C:\certreq.txt。)下面是一个证书请求文件的示例。

-----BEGIN NEW CERTIFICATE REQUEST-----
            MIIDATCCAmoCAQAwbDEOMAwGA1UEAxMFcGxhbjgxDDAKBgNVBAsTA1BTUzESMB
            A1UEChMJTWljcm9zb2Z0MRIwEAYDVQQHEwlDaGFybG90dGUxFzAVBgNVBAgTDk
            cnRoIENhcm9saW5hMQswCQYDVQQGEwJVUzCBnzANBgkqhkiG9w0BAQEFAAOBjQ
            gYkCgYEAtW1koGfdt+EoJbKdxUZ+5vE7TF1ZuT+xaK9jEWHESfw11zoRKrHzHN
            IASnwg3vZ0ACteQy5SiWmFaJeJ4k7YaKUb6chZXG3GqL4YiSKFaLpJX+YRiKMt
            JzFzict5GVVGHsa1lY0BDYDO2XOAlstGlHCtENHOKpzdYdANRg0CAwEAAaCCAV
            GgYKKwYBBAGCNw0CAzEMFgo1LjAuMjE5NS4yMDUGCisGAQQBgjcCAQ4xJzAlMA
            A1UdDwEB/wQEAwIE8DATBgNVHSUEDDAKBggrBgEFBQcDATCB/QYKKwYBBAGCNw
            AjGB7jCB6wIBAR5aAE0AaQBjAHIAbwBzAG8AZgB0ACAAUgBTAEEAIABTAEMAaA
            AG4AbgBlAGwAIABDAHIAeQBwAHQAbwBnAHIAYQBwAGgAaQBjACAAUAByAG8Adg
            AGQAZQByA4GJAGKa0jzBn8fkxScrWsdnU2eUJOMUK5Ms87Q+fjP1/pWN3PJnH7
            MBc5isFCjww6YnIjD8c3OfYfjkmWc048ZuGoH7ZoD6YNfv/SfAvQmr90eGmKOF
            TD+hl1hM08gu2oxFU7mCvfTQ/2IbXP7KYFGEqaJ6wn0Z5yLOByPqblQZAAAAAA
            MhfC7CIvR0McCQ+CBwuLzD+UJxl+kjgb+qwcOUkGX2PCZ7tOWzcXWNmn/4YHQl
            GEXu0w67sVc2R9DlsHDNzeXLIOmjUl935qy1uoIR4V5C48YNsF4ejlgjeCFsbC
            Jb9/2RM=
            -----END NEW CERTIFICATE REQUEST-----

13.

确认请求详细信息,单击“下一步”,然后单击“完成”

提交服务器证书请求

1.

联系 CA,查找提交请求的要求。

2.

将上述过程中创建的 .txt 文件的内容复制成 CA 要求的请求格式。

3.

将请求发送给您的 CA。

接收到 CA 的证书后,准备在您的 Web 服务器上安装此证书。

安装服务器证书

1.

将证书 (.cer) 文件复制到 C:\Windows\System32\CertLog 文件夹。

2.

依次单击“开始”、“控制面板”、“管理工具”,然后双击“Internet 信息服务(IIS)管理器”。

3.

右键单击要安装服务器证书的网站,然后单击“属性”

4.

单击“目录安全性”选项卡。在“安全通信”部分中,单击“服务器证书”启动“Web 服务器证书向导”,然后单击“下一步”

5.

单击“处理挂起的请求并安装证书”,然后单击“下一步”

6.

浏览至您接收到的 CA 证书。单击“下一步”两次,然后单击“完成”

验证新的设置

请完成以下过程,以验证是否已经为您的本地计算机应用了正确的安全设置。

验证是否在 Web 服务器上安装了证书

1.

依次单击“开始”、“控制面板”、“管理工具”,然后单击“Internet 信息服务(IIS)管理器”

2.

右键单击要查看其证书的网站,然后单击“属性”

3.

在“目录安全性”选项卡的“安全通信”区域中,单击“查看证书”,然后审查证书,最后单击“确定”两次。

在 Web 服务器上强制和启用 SSL 连接

安装服务器证书之后,必须在 Web 服务器上强制 SSL 连接。然后,必须启用 SSL 连接。

注意   在请求与 Web 服务器建立 SSL 连接后,所有到服务器的链接都需要更新为使用 https 而非 http。

要求

您需要满足以下条件才能完成这些任务:

凭据。您必须作为 Web 服务器 Administrators 组成员登录。

工具。Internet 信息服务 (IIS) 管理器 (iis.msc)。

强制 SSL 连接

1.

依次单击“开始”、“控制面板”、“管理工具”,然后双击“Internet 信息服务(IIS)管理器”。

2.

右键单击要强制实施 SSL 连接的网站,然后单击“属性”

3.

单击“目录安全性”选项卡。在“安全通信”部分中,单击“编辑”

4.

单击“要求安全通道(SSL)”,选择加密强度,然后单击“确定”

注意   如果您指定 128 位加密,则使用 40 位或 56 位加密强度浏览的客户端计算机将不能与您的站点通信,除非其浏览器升级到支持 128 位加密的版本。

在 Web 服务器上启用 SSL 连接

1.

依次单击“开始”、“控制面板”、“管理工具”,然后双击“Internet 信息服务(IIS)管理器”。

2.

右键单击要启用 SSL 连接的网站,然后单击“属性”

3.

单击“网站”选项卡。在“网站标识”部分中,验证“SSL 端口”框是否填充的是数值 443

4.

单击“高级”。通常会出现两个框,在“此网站的多个标识”框中列出此网站 IP 地址和端口。在“此网站的多个 SSL 标识”字段下,如果端口 443 未列出,请单击“添加”。选择服务器的 IP 地址,在“SSL 端口”框中键入数值 443,然后单击“确定”

验证新的设置

请完成以下过程,以验证是否已经为您的 Web 服务器应用了正确的安全设置。

验证 Web 服务器上的 SSL 连接

1.

打开浏览器,然后尝试通过标准的 http:// 协议来连接到 Web 服务器。例如,在“地址”框中,键入 http://localhost,然后按 Enter。

如果 SSL 被强制,则出现以下错误消息:

此网页必须通过安全通道查看。您要访问的网页受安全套接字层 (SSL) 的保护。

2.

键入 https://localhost,然后按 Enter,再次尝试连接到要查看的网页。

通常显示 Web 服务器的默认网页。