Internet Information Server 4 基准安全清单

下文概述了保护那些在 Internet 上运行 Windows NT Server 4.0 和 Microsoft Internet Information Server 4 的计算机所应采取的一些步骤。注意:本文没有考虑防火墙或代理服务器。它还假设公司具有适当的安全策略。

要点 本文的目的是指导在运行 Microsoft IIS 4 的服务器上配置安全的基准级别。在 Microsoft TechNet Security 网站的完整 IIS 4 安全清单中有其他高级设置。

Internet Information Server 4 设置

步骤
Box

安装所需的最小 Internet 服务

Box

设置适当的身份验证方法

Box

设置适当的虚拟目录权限和分区 Web 应用程序空间

Box

设置适当的 IIS 日志文件 ACL

Box

启用日志记录

Box

设置安全套接字层

Box

禁用或删除所有示例应用程序

Box

删除 IISADMPWD 虚拟目录

Box

删除未使用的脚本映射

Box

禁用 RDS 支持

Microsoft Internet Information Server 4 安全清单详细信息

安装所需的最小 Internet 服务

一般认为,减少服务器的入口点数是一种比较好的做法;对于 Windows NT,这意味着减少服务的数量。应该使用服务配置管理器停止和禁用不需要的服务。若要使 IIS 正常运行,必须运行下列服务:

  • 事件日志
  • 许可证日志记录
  • Windows NTLM 安全支持提供程序
  • 远程过程调用 (RPC) 服务
  • Windows NT Server 或 Windows NT Workstation
  • IIS 管理服务
  • MSDTC
  • 万维网发布服务
  • 受保护存储

设置适当的身份验证方法

这些方法是应用程序特定的,但是需要确保所使用的应用程序的身份验证方法足够强大。下面是以递增的信任顺序排列的 IIS 4 支持的身份验证方案的列表:

  • 匿名
  • 基本
  • Windows NT 质询/响应
  • 客户端证书

详细信息,请参阅 Microsoft 知识库文章 Q229694

设置适当的虚拟目录权限和分区 Web 应用程序空间

这些设置也依赖于应用程序,不过要遵从一些主要的规则:

文件类型
ACL
CGI 等 .EXE、.DLL、.CMD、.PL

Everyone (X)
Administrators(完全控制)
System(完全控制)

脚本文件 .ASP 等

Everyone (X)
Administrators(完全控制)
System(完全控制)

包含文件 .INC、.SHTML、.SHTM

Everyone (X)
Administrators(完全控制)
System(完全控制)

静态内容 .HTML、.GIF、.JPEG

Everyone (R)
Administrators(完全控制)
System(完全控制)

不要为每个文件都设置 ACL,而最好为每种文件类型创建新的目录,再对该目录设置 ACL,并允许该 ACL 继承到那些文件。例如,目录结构可能如下所示:

C:\inetpub\wwwroot\myserver\static (.html)

C:\inetpub\wwwroot\myserver\include (.inc)

C:\inetpub\wwwroot\myserver\script (.asp)

C:\inetpub\wwwroot\myserver\executable (.dll)

C:\inetpub\wwwroot\myserver\images (.gif, .jpeg)

真正的 ACL 继承是安装了安全配置编辑器的 Windows NT 4 Service Pack 4 的一个功能。

还有两个目录需要引起特别注意:

C:\inetpub\ftproot(FTP 服务器)

C:\inetpub\mailroot(SMTP 服务器)

这两个目录上的 ACL 都是 Everyone(完全控制),应该根据功能的级别,使用较严格的 ACL 进行替代。如果要支持 Everyone(写入),请将文件夹放在除 IIS 服务器之外的其他卷上。

设置适当的 IIS 日志文件 ACL

请确保 IIS 生成的日志文件 (%systemroot%\system32\LogFiles) 上的 ACL 是:

  • Administrators(完全控制)
  • System(完全控制)
  • Everyone(写入,创建)

这有助于防止恶意用户删除文件以掩饰他们的踪迹。

启用日志记录

如果要查看服务器是否正在受到攻击,日志将非常重要。应该按照下列过程使用 W3C 扩展日志记录格式:

  1. 加载 Internet 信息服务工具。
  2. 右键单击有问题的站点,然后选择“属性”。
  3. 单击“网站”选项卡。
  4. 选中“启用日志记录”复选框。

    从“活动日志格式”下拉列表中选择“W3C 扩展日志文件格式”,然后设置下列属性:

    • 客户 IP 地址
    • 用户名
    • 方法
    • URI 资源
    • HTTP 状态
    • Win32 错误
    • 用户代理
    • 服务器 IP 地址
    • 服务器端口

设置安全套接字层

SSL/TLS 可以在数据从客户端传输到 Web 服务器时保护数据的安全。SSL/TLS 主要在通过 Internet 传输密码或信用卡时使用。但是,使用 SSL/TLS 时速度较慢,特别是在初次握手过程中,所以应减少使用 SSL/TLS 的页面并减少其中的内容。

禁用或删除所有示例应用程序

这样的示例在默认情况下不安装,而且永远不应该安装在产品服务器上。该包含文档(包括示例代码的 SDK 文档)、Exploration Air 示例站点和示例脚本。下面的表格列出了其中一些示例的默认位置:

技术
位置
IIS

C:\inetpub\iissamples

IIS SDK

C:\inetpub\iissamples\sdk

管理脚本

C:\inetpub\AdminScripts

数据访问

C:\Program Files\Common Files\System\msadc\Samples

删除 IISADMPWD 虚拟目录

该目录允许您重设 Windows NT 密码;它主要是为 Intranet 方案而设计的。如果没有使用 Intranet 或者您将服务器连接到了 Web,则应该删除该目录。有关该功能的更多信息,请参阅 Microsoft 知识库文章 Q184619

删除未使用的脚本映射

IIS 被预先配置成支持常见的文件扩展名,如 .asp 和 .shtm。当 IIS 接收到针对其中某一类型文件的请求时,该调用由 DLL 进行处理。如果不使用其中的某些扩展名或功能,请按照以下步骤删除映射:

  1. 打开 Internet 服务管理器。
  2. 右键单击 Web 服务器,然后选择“属性”。
  3. 单击“主属性”。
  4. 选择“WWW 服务”,单击“编辑”,单击“HomeDirectory”,然后单击“配置”。

删除下面这些引用:
如果没有使用
请删除此项
基于 Web 的密码重设

.htr

索引服务器

.ida

Internet 数据库连接器
(新的网站不使用此连接器;它们使用活动 Active Server Pages 的 ADO)

.idc

服务器端包含程序

.shtm、.stm、.shtml

禁用 RDS 支持

这是非常重要的设置。

在配置不正确时,远程数据服务能使服务器易受拒绝服务的攻击和任意代码执行攻击。应该使用 ACL 来删除其功能或者限制其使用。详细信息,请参阅 Microsoft 知识库文章 MS98-004MS99-025Q184375。在 RFP9901RFP9902 上可以找到其他两篇由 rain.forest.puppy (r.f.p.) 写得很优秀的文章。

另外,请定期检查 IIS 日志以查看是否有攻击性的签名,该签名看起来象这样:

1999-10-24 20:38:12 - POST /msadc/msadcs.dll ...

可以使用下面的命令自动进行搜索过程:

find /i "msadcs" logfile.log

©2001 Microsoft Corporation. 保留所有权利。