Web 服务器计算机的正确安全措施,可以降低或消除来自怀有恶意的个人以及意外获准访问限制信息或无意中更改重要文件的善意用户的各种安全威胁。
本主题包括下列信息:
为确保 Windows 管理员不会因安装 IIS 而要处理不必要的安全威胁,IIS 6.0 安装时启用了静态网页请求处理功能,但禁用了所有其他请求处理功能。从安装 IIS 开始,IIS 6.0 的锁定安全配置文件可最大限度地减少入侵者的攻击面。IIS 6.0 安装和服务启用功能简化了与管理 IIS 服务有关的用于提高安全性的管理任务。例如:
有关管理 Web 服务扩展的信息,请参阅启用和禁用动态内容。
Internet 信息服务提供与 Windows 完全集成的安全功能。例如,IIS 支持以下 6 种身份验证方法。可以使用这些方法确认任何请求访问网站的用户的身份以及授予访问站点公共区域的权限,同时又可防止未经授权的用户访问专用文件和目录。
有关在 Web 服务器上使用身份验证的各种方法的信息,请参阅身份验证。
通过将 NTFS 访问权限用作 Web 服务器的安全基础,您可以定义授予 Windows 用户和组文件和目录访问的级别。例如,如果一个企业决定在您的 Web 服务器上公布它的目录,您需要为该企业创建一个 Windows 用户帐户,然后配置特定网站、目录或文件的权限。权限应该只允许服务器管理员和企业的所有人更新网站的内容。应该允许公共用户查看网站,但是不能更改网站的内容。要按此方式控制对目录和文件的访问,您必须使用 NTFS 格式的驱动器,而不能使用 FAT32 格式的驱动器。如果您使用 FAT32,您的用户将拥有硬盘驱动器上每个文件的访问权限。有关设置 NTFS 权限的详细信息,请参阅设置目录或文件的 NTFS 权限。
WebDAV 是 HTTP 1.1 协议的扩展,促进了基于 HTTP 连接的文件和目录管理。通过使用 WebDAV“动作”或命令,可以将属性添加到文件和目录中以及从文件和目录读取属性。文件和目录可以远程编辑、创建、删除、移动或复制。可以通过 Web 服务器权限或 NTFS 权限配置附加的访问控制。有关详细信息,请参阅使用 WebDAV 进行 Web 创作。
证书是允许服务器和客户彼此验证的数字标识文档。他们请求在服务器和客户端浏览器建立 SSL 连接,通过此连接可以发送加密信息。IIS 中基于证书的 SSL 特性由服务器证书、客户端证书和不同的数字密钥组成。可以使用 Microsoft 证书服务创建这些证书或者从可相互信任的第三方机构获得,该机构称为证书颁发机构 (CA)。有关设置证书和密钥的详细信息,请参阅在服务器上配置 SSL。
服务器证书给用户提供了一种确认您的网站身份的方法。服务器证书包含详细的标识信息,如与服务器内容相关的机构的名称,签发证书机构的名称和用于建立加密连接的“公钥”。用户可使用此类信息确定 Web 服务器内容的真实性以及安全 HTTP 连接的完整性。
使用 SSL,您的 Web 服务器还有通过检查客户端证书内容验证用户的选项。典型的客户端证书包含有关用户和签发证书及“公钥”的机构的详细信息。可以使用客户端证书验证,结合 SSL 加密技术,实现安全性较高的方法以检验用户的身份。详细信息,请参阅关于证书。
您可以允许用户以一种安全的方法(使用加密)与您的服务器交换个人信息,如信用卡号或电话号码。信息在发送前由加密对其进行“编码”,接收后由解密进行“解码”。IIS 中这种加密的基础是 SSL 3.0 协议,它提供了一种与用户建立加密通讯链接的安全方法。SSL 确认您的网站的真实性同时可有选择地确认正在访问受限制网站用户的身份。
证书包括用于建立 SSL 安全连接的“密钥”。“密钥”是在建立 SSL 连接时验证服务器和客户端的唯一值。“公钥”和“私钥”组成 SSL“密钥对”。Web 服务器使用此密钥对与用户 Web 浏览器协商建立安全的连接,确定保护通讯所需的加密级别。
对于此类型的连接,Web 服务器和用户浏览器都应该具有一致的加密、解密能力。在交换过程中,将创建加密密钥或“会话”密钥。您的服务器和 Web 浏览器都使用会话密钥加密、解密传输信息。会话密钥的加密程度或“强度”是使用“位”来测量的。最大的位号由会话密钥、加密和安全的最大级组成。尽管这些最大加密密钥强度提供了最大的安全性,他们还是需要更多的服务器资源去实现。通常 Web 服务器的会话密钥长度为 40 位,但是根据所需的安全等级也可以是 128 位。详细信息,请参阅加密。
服务器网关加密 (SGC) 使用 128 位加密为金融机构提供了全球金融交易解决方案。SGC 是安全套接字层 (SSL) 的扩展,它允许拥有 IIS 出口版本的金融机构可使用强加密。
SGC 不要求在客户浏览器上运行应用程序,并且可由 IIS 4.0 或更高版本的标准出口版本使用。为 SGC 配置的服务器可以增强 128 位和 40 位的加密会话,所以不要求多个 IIS 版本。虽然 SGC 功能已内建到 IIS 4.0 及以后版本中,但是使用 SGC 时还需要特殊的 SGC 证书。联系证书颁发机构以获取可用信息。有关 SGC 的详细信息,请参阅 Server-Gated Cryptography (SGC) 网站中的题为“Secured online banking goes global!”的文章。
注意 如果打开 SGC 证书,则可能会在“常规”选项卡上收到以下通知:“证书无法检验其所有的预定用途”。该通知的签发是由于 SGC 证书与 Windows 2000 交互的方式而造成的,但该通知并不表示证书一定无法正常工作。
通过使用可选的加密服务提供程序 (CSP),可以选择 Microsoft 或第三方加密提供程序来处理加密和证书管理。每个加密提供程序可以创建一个公钥和私钥来加密发送到 Web 服务器和从中发送的数据。私钥存储在硬件的服务器端、PCI 卡、智能卡或者注册表中,这是因为它用于 Microsoft 安装的两个默认提供程序:Microsoft DH SChannel 加密提供程序和 Microsoft RSA SChannel 加密提供程序。每个提供程序的 Microsoft 加密 API (CryptoAPI) 包含相同的方法和属性。因此,您可以在提供程序之间切换,而无需重新编写代码。有关 CSP 和管理安装的第三方加密提供程序的详细信息,请参阅 MSDN Web Workshop 上的 Microsoft CryptoAPI Overview。有关支持 IIS 的最新加密服务提供程序列表,请在该页上选择“Endorsements”。
可以使用安全审核技术监视大范围的用户和 Web 服务器的安全活动。推荐定期审核您的服务器配置,检测可能被未授权访问影响和篡改资源的区域。可以使用集成的 Windows 实用程序、IIS 内置的日志记录功能或 Active Server Pages (ASP) 应用程序创建您自己的审核日志。详细信息,请参阅审核。
IIS 中许多安全功能执行 Internet 通讯标准。这些标准有助于应用程序和信息的一致与跨平台使用。Microsoft 承诺配合 Internet 与计算机委员会,一起协助构建良好的标准,同时自己执行这些标准。有关 IIS 安全功能执行标准的详细信息,请参考下面列出的相应链接:
Secure Sockets Layer (SSL 3.0) 是一个基于公钥的安全协议,该协议是由安全通道 (Schannel) 安全提供程序实施的。SSL 安全协议在 Internet 浏览器和服务器的验证、信息的完整性和机密性中广泛使用。
正如万维网联合会网站上所述,基本身份验证是 HTTP 1.0 规范的一部分(它以 Base64 编码格式通过网络发送密码)。大多数浏览器都支持此规范。
正如万维网联合会网站上所述,摘要式身份验证通过网络将身份验证信息作为“哈希”发送并且与代理服务器兼容。
PKCS #7 描述加密数据的格式,如安全地包含信息的数字签名和数字信封。所有这些都包含在 IIS 的验证特性中。
PKCS #10 描述提交到证书颁发机构的证书申请的格式。
有关 Windows 和网络安全问题的详细信息,请访问 Microsoft 安全性和 Windows NT Security 网站。National Security Agency - Information Security Systems Organization 网站也是一个很好的信息来源。
在配置 Web 服务器安全之前,请首先确定保护网站和 FTP 站点所需的安全级别。例如,如果需要创建一个允许特定用户访问个人信息(如财务和健康记录)的网站,那么就需要一个坚固的安全配置。此配置应该可以可靠地验证指定的用户并仅限于这些用户进行访问。
大多数的 Web 服务器安全依赖于 Windows 安全配置。如果没有正确地配置 Windows 安全功能,就不可能保护您的 Web 服务器。
如果尚未这样作,请执行下面的任务:
有关详细信息,请参阅 Windows 联机帮助中的安全性或 Microsoft Windows Server 2003 Resource Kit。
作为安全配置的一部分,您应该将您硬盘的分区转换为 NTFS 分区。NTFS 硬盘分区提供精确的文件和目录访问控制,在保存文件方面比 FAT 分区更有效。可以使用 Windows 转换工具将硬盘分区转换成 NTFS 格式。有关详细信息,请参阅 Windows 联机帮助中的重新格式化或转换分区以使用 NTFS。
下一步,确定用户在访问您的网站和 FTP 站点时哪些文件和目录是公用的。将公用内容和受限内容放置在不同的目录中。
要开始配置您的 Web 服务器的安全,请参阅关于访问控制取得正确配置匿名 Web 服务器访问的信息。