有关 Internet 信息服务的 5 个热点问题及其解答

| 将 IIS 服务器配置为在 DMZ 中使用时应该开放的端口 | |
| 在 Windows XP 中安装 IIS 的更多指导 | |
| 访问默认 Web 站点时执行或不执行身份验证 |
问:我们计划在 DMZ 内使用 IIS 服务器来将内容传送至 Internet。您能否告诉我们,我们需要在外部防火墙处开放哪些端口,以允许在 IIS 中执行各种身份验证?
答:IIS 中的身份验证通常只使用那些您用于传送来自 IIS 的文件和应用程序的端口。默认情况下,HTTP 使用 TCP 端口 80,如果采用了 SSL 连接,则使用端口 443。您可以指定其他端口号,但是如果不指定的话,不管 IIS 中选择何种身份验证类型,外部防火墙只需要这些端口(但也有一个例外情形,这我将在稍后介绍)。
当我将 IIS 服务器配置为在 DMZ 内使用时,我一开始会假定访问服务器所需开放的端口仅限于 80 和 443。这通常会启动一个运行状况良好的对话,严格确定需要开放哪些端口来支持特定的 Web 服务器、应用程序以及网络基础架构。然而 IIS 自身只需要那些分配给网站的端口,其余均不需要。为了在 Windows Server 平台上支持 SMTP、DNS、终端服务以及其他常用的 IIS 功能,可能需要开放其他端口,而且这样做的理由非常多。
我前面所提到的例外就是 Kerberos 的使用。 Windows 2000 Server 上的 IIS 5 以及 Windows Server 2003 上的 IIS 6,都可以使用 Kerberos 来验证 IIS 服务器的通信。 Kerberos 不适用于 Internet 通信,因此不应该尝试为 Kerberos 通信开放外部防火墙。您可以从以下网址处获取 Windows 2000 上使用的端口列表:http://www.microsoft.com/resources/documentation/exchange/2000/all/reskit/en-us/resguide/appendb.mspx;另外,还可参阅 http://support.microsoft.com/default.aspx?scid=kb;en-us;179442&sd=tech 处的“如何为域和信任伙伴配置防火墙”。
问:我该如何在 Windows XP Home 版上安装 IIS?我应该从何处下载用于 Windows XP Pro 的 IIS?
答:这个问题曾经在 2001 年 11 月那一期的 IIS 有问必答中予以解答,但是,由于有关 IIS 版本的相关问题仍然非常多,因此,我认为有必要更为详细地解答这个问题。有关运行在 Windows XP 上的 IIS 的问题特别多,因此,下面概要地列出了 IIS 的各个版本及其与操作系统之间的关系:
| • | IIS 4 – Windows NT 4.0 |
| • | Personal Web Server – Windows NT 4.0 Workstation |
| • | IIS 5 – Windows 2000 Server(所有版本) |
| • | IIS 5 – Windows 2000 Workstation(功能有限的客户端版本) |
| • | IIS 5.1 – Windows XP Professional |
| • | IIS 6 – Windows Server 2003(所有版本) |
以下“规则”可以解决有关上述列表的最常见问题。
1. | 对于专门设计为在某个操作系统上运行的 IIS 版本,它们是无法 安装到任何其他操作系统上的。例如,IIS 6 无法安装到 Windows 2000 上,而 IIS 5 无法安装到 Windows NT 4 上。这是因为 IIS 和其特定的操作系统是紧密集成在一起的;因此并不属于独立于操作系统的产品。 |
2. | Windows XP 家庭版不支持或是未提供 IIS 5.1。IIS 5.1 不能下载,也不能单独购买,或是通过 CD-ROM 的形式定购。IIS 5.1 是随 Windows XP Professional 提供的,您可以通过依次单击“控制面板”、“添加或删除程序”和“添加/删除 Windows 组件”来安装它。IIS 5.1 是客户端操作系统,适用于开发环境或是非常小的企业内部网。但是它存在一些固有的限制,而且并不是专门设计为在服务器上使用的。 |
3. | 在 Windows 2000 Professional 上,IIS 的客户端版本为 PWS、IIS 5.1 和 IIS 5.0。这些版本的 IIS 只能支持一个网站,而且并发连接数不能超过 10。它们也无法通过注册表修改或更新的方式来提升功能。 |
4. | 除 IIS 4 外,所有其他版本的 IIS 都是包含在 Operating System CD 中的。您无法从 Microsoft 下载它们。IIS 4 则是随 Windows NT 4 Option Pack 提供的,您可以从以下网址下载:http://www.microsoft.com/ntserver/nts/downloads/recommended/NT4OptPk/default.asp |
问:在 Windows 2000 或 XP 上安装 IIS 后,我启动 Internet Explorer,并检查是否已经成功完成安装。为此,我使用 http://localhost 访问默认 Web 站点,发现一切正常。但是,如果我键入 http://127.0.0.1,则提示我需要进行身份验证。为什么有时候要求我出示凭证,而有时则不要求?
答:这种操作方式是预料之中,而且必须处理 Internet Explorer 服务器的访问管理和默认 Web 站点的配置。如 2002 年 6 月一期的 IIS 有问必答(报告 Localstart.asp“正在创建中”)中所述,配置默认 Web 站点是为了在没有 default.htm 或 default.asp 文件的情况下,调用文件 IISSTART.ASP。如果 IISStart.asp 认为您是在要求从本地 IP 地址进行访问,键入了 http://localhost 或 http://127.0.0.1 当然是完全合格的,那么请求就会被如下所示重定向到 Localstart.asp:
<% Response.Redirect "localstart.asp" %>
这将导致 IIS 向 Internet Explorer 发送下列信息:
HTTP/1.1 302 Object moved Server: Microsoft-IIS/5.0 Date: Thu, 09 Jan 2003 23:30:03 GMT Location: localstart.asp Connection: Keep-Alive Content-Length: 135 Content-Type: text/html Set-Cookie: ASPSESSIONIDGQQGQWNC=FOFJMOPCDFNCDALAEPMEGKNF; path=/ Cache-control: private <head><title>Object moved</title></head> <body><h1>Object Moved</h1>This object may be found <a HREF="localstart.asp">here</a>.</body>
然后,Internet Explorer 按指令请求 localstart.asp。接下来所发生的操作,取决于您如何向默认 Web 站点发送请求。如果使用 http://localhost,那么会假定您是以具有访问内容所需的足够权限的用户身份登录的。但是,如果键入 http://127.0.0.1,将会要求进行身份验证。
这似乎很让人感到困惑,因为默认 Web 站点启用了匿名验证和集成 Windows 身份验证两种方法。由于启用了匿名身份验证,因此默认情况下,每个用户都具有读取和执行权限,这样根本不会出现要求提供凭证的提示!如果仔细进行观察,您就会发现 localstart.asp 的配置与默认 Web 站点的其余项不同。它禁用了匿名身份验证,启用了基本身份验证和集成的 Windows 身份验证。
因此,要成功地运行 localstart.asp,您必须对服务器进行身份验证,而且验证的内容多余 IUSR 帐户。如果使用的是 Internet Explorer,而且 Internet Explorer 认为您请求的是企业内部网中的服务器,例如 http://research 或 http://betacode,那么验证自动进行。这时,Internet Explorer 将使用您登录计算机时所使用的凭证来帮助您登录 IIS。但是,如果 Internet Explorer 认为您是从 Internet 站点发出请求,那么为了安全起见,会要求您输入用户名和密码,而不会自动登录。这样可以防止怀有恶意的 Web 站点获取身份验证会话的网络通信,从而破译密码。
这也许不适合您所处的情形,因为您访问默认 Web 站点时使用的是 http://127.0.0.1,而 Internet Explorer 使用以下规则来判断站点是本地站点,还是非信任站点:“如果 URL 中存在句点(.),那么它不是本地站点”。因此,使用 http://localhost 不会出现提示,而使用 http://127.0.0.1 则会出现提示。
您可以避免在使用 IP 地址或名称中包含句点的企业内部网服务器上出现这种提示,方法是,在 Internet Explorer 的“本地 Intranet”设置中,列出包含 IP 地址的服务器,或是列出包含句点的服务器名称。可以通过依次单击“工具”、“Internet 选项”、“本地 Intranet”、“站点”、“高级”来访问“本地 Intranet”设置部分。然后在“将该网站添加到区域中”输入 http://127.0.0.1 或其他相关站点的 URL。
将您的问题提交给 IIS 有问必答。挑选出的问题会连同答案一起刊登在下一期的 IIS 有问必答专栏中。
要获取 IIS 有问必答专栏前几个月的问题与解答,请单击此处。
我们代表 Microsoft 公司衷心希望本文章中的信息能对您有所帮助,但是应由您自己承担使用本文所带来的风险。本文中的所有信息都“按原样”提供,对于其准确性、完整性、特殊用途的适用性、所有权和不侵权原则,并没有任何明示或暗示的保证;本著作提及的任何第三方产品和信息,Microsoft 公司都并未参与创作,也不向您推荐、支持或作出任何保证。对使用该信息而造成的任何损失,不管是直接的、间接的、特别的,还是偶然的或必然的,即使已经警告过可能会有这种损失,Microsoft 公司将不承担任何责任。