网络专家:使用网络访问保护 (NAP) 实现 DirectAccess

DirectAccess 很不错。如果与网络访问保护结合使用,更是相得益彰。

网络专家发布

远程用户现在可以通过更安全的方式访问您公司的网络。DirectAccess 是 Windows 7 和 Windows Server 2008 R2 中的新功能。通过这项功能,远程用户无需连接到虚拟专用网络 (VPN),就可以安全地访问 Intranet 资源。

此外,Windows Server 2008 R2 和 Windows 7 中还内置了网络访问保护 (NAP) 功能。当客户端计算机尝试连接网络或与网络通信时,NAP 可监视和评估该计算机的运行状态。

二者结合将获得更强大的功能。使用 NAP 实现 DirectAccess,让您可以指定只有符合系统健康要求的 DirectAccess 客户端才能通过 Internet 访问 Intranet 资源。

DirectAccess 隧道

使用完全 Intranet 访问选定服务器访问模式的 DirectAccess 客户端将创建以下连接到 DirectAccess 服务器的 Internet 协议安全性 (IPsec) 隧道:

  • **基础结构隧道:**连接 Intranet 域名系统 (DNS) 服务器和 Active Directory 域服务 (AD DS) 域控制器。默认情况下,此隧道要求使用计算机证书和计算机帐户 NT LAN 管理器版本 2 (NTLMv2) 凭据进行身份验证。DirectAccess 客户端在用户登录之前创建此隧道。
  • **管理隧道:**在用户登录之前连接到其他 Intranet 位置。Intranet 管理服务器也可以创建此隧道,以便远程管理 DirectAccess 客户端。与基础结构隧道相同,默认情况下此隧道也要求使用计算机证书和计算机帐户 NTLMv2 凭据进行身份验证。
  • **Intranet 隧道:**在用户登录之后连接到不在基础结构和管理隧道规则的目标地址列表中的 Intranet 位置。默认情况下,此隧道要求计算机证书和用户帐户 Kerberos 凭据以进行身份验证。

NAP 和 IPsec 强制

您可以使用很多强制方法部署 NAP,以对连接或通信强制实施系统健康要求。IPsec 强制方法使用健康证书(在增强型密钥用法 [EKU] 字段中包含系统健康身份验证对象标识符 [OID] 的数字证书),要求对 Intranet 流量进行 IPsec 保护的 IPsec 连接安全性规则,以及使用健康证书的 IPsec 对等身份验证。

这种组合可强制使 Intranet 上计算机之间的通信符合系统健康要求。不符合系统健康要求和缺少健康证书的计算机无法在 Intranet 上发起通信。

IPsec 强制部署需要以下内容:

  • **健康注册机构 (HRA):**一台 Web 服务器,接收并响应 NAP 客户端以及客户端发出的验证系统健康并获得健康证书的请求。
  • **NAP 证书颁发机构 (CA):**公钥基础结构 (PKI) 中的 CA(通常是专用的),负责为合规的 NAP 客户端颁发健康证书。
  • **NAP 健康策略服务器:**负责验证系统健康请求的网络策略服务器 (NPS)。
  • **更新服务器:**包含资源的服务器。NAP 客户端需要这些资源来更正其不合规的系统健康状态。

通过 HRA 获得的健康证书的生命期很短,通常为数个小时。您也可以向需要健康证书以进行 IPsec 对等身份验证但不需要执行系统健康验证的服务器颁发生命期更长的豁免健康证书。

使用 NAP 实现 DirectAccess

使用 NAP 实现 DirectAccess 是将系统健康合规性与 DirectAccess 连接过程相集成。当您结合使用 DirectAccess 和 NAP,以便在允许访问 Intranet 资源之前强制实施系统健康要求时,实际上是利用 NAP 基础结构来颁发健康证书(HRA、NAP C、NAP 健康策略服务器)并更正系统健康状态(更新服务器)。您还针对基础结构、管理和 Intranet 隧道使用 DirectAccess 连接安全性规则。

默认情况下,在 DirectAccess 客户端和服务器上为基础结构、管理和 Intranet 隧道配置的连接安全性规则不需要在进行身份验证时使用健康证书。是否需要修改规则集以便要求健康证书,取决于以下内容:

  • NAP 部署模式(报告或完全强制)

报告模式不要求系统健康合规。不合规的 DirectAccess 客户端可以访问 Intranet。因此,不需要更改 DirectAccess 连接安全性规则。

完全强制模式要求系统健康合规。在此模式中,您必须配置连接安全性规则以要求健康证书,而不是要求普通的计算机证书。

  • HRA 和更新服务器的位置

您可以在 Intranet 或 Internet 上找到 HRA 和更新服务器。

下文将分别介绍 HRA 和更新服务器的这两种位置,以及您因此需要做出的更改,以便连接安全性规则要求健康证书。

基于 Intranet 的 HRA 和更新服务器

当 HRA 和更新服务器位于 Intranet 上时,DirectAccess 客户端必须能够使用计算机证书(而不是健康证书)来访问它们。健康验证发生在创建基础结构和管理隧道之后。DirectAccess 客户端需要基础结构隧道来访问 Intranet DNS 服务器以解析 Intranet 名称,并需要管理隧道来访问 HRA 和更新服务器。

Figure 1  DirectAccess with NAP when the HRAs and remediation servers are on the intranet.

图 1 当 HRA 和更新服务器位于 Intranet 上时,使用 NAP 实现的 DirectAccess。

但是,对于完全强制模式,DirectAccess 客户端需要健康证书才能访问其他 Intranet 资源。因此,健康证书要求只适用于 Intranet 隧道的连接安全性规则。

配置步骤

当 HRA 和更新服务器位于 Intranet 上时,若要配置使用 NAP 的 DirectAccess,您需要:

  • 向管理服务器列表中添加 HRA 和更新服务器的 IPv6 地址。您可以使用 DirectAccess 安装向导中的第三步或使用 Netsh.exe 命令来完成添加。
  • 使用 Netsh.exe 命令在 DirectAccess 服务器组策略对象 (GPO) 中配置 Intranet 隧道规则以要求健康证书。

有关详细步骤,请参见为 NAP 配置 DirectAccess 连接安全性规则

您使用 Netsh.exe 自定义 DirectAccess 连接安全性规则时,所做的更改将在您下次应用 DirectAccess 安装向导的设置时被覆盖。若要确保保留这些自定义设置,您要么放弃使用 DirectAccess 安装向导来更改配置,要么在脚本中编译自定义更改列表,然后在每次应用 DirectAccess 安装向导的设置时运行该脚本。

工作原理

以下过程描述了当 HRA 和更新服务器只位于 Intranet 上时,使用 NAP 的 DirectAccess 如何作用于 DirectAccess 客户端:

  1. 当 DirectAccess 客户端启动并尝试使用其计算机帐户登录 AD DS 域时,它使用其计算机证书创建基础结构隧道。[基础结构隧道]
  2. 当 NAP 代理启动时,DirectAccess 客户端解析已配置的 HRA 统一资源定位器 (URL) 的完全限定域名 (FQDN),使用其计算机证书创建管理隧道,然后将其目前的健康状态信息发送给 HRA。[管理隧道]
  3. HRA 将 DirectAccess 客户端的健康状态信息发送到 NAP 健康策略服务器。[Intranet 流量]
  4. NAP 健康策略服务器评估 DirectAccess 客户端的健康状态信息,确定该客户端是否合规,然后将结果发送给 HRA。[Intranet 流量]
  5. HRA 将健康评估结果发送给 DirectAccess 客户端。[管理隧道]
  6. 假设健康状态合规,HRA 将从 NAP CA 获取健康证书,并发送给 DirectAccess 客户端。[管理隧道]
  7. 当 DirectAccess 客户端尝试访问 Intranet 上的资源时,它首先使用健康证书创建 Intranet 隧道。[Intranet 隧道]

如果 DirectAccess 客户端不合规:

  1. HRA 将健康评估结果发送给 DirectAccess 客户端,其中包括健康更正指令;但 HRA 不会获得健康证书。[管理隧道]
  2. 根据已安装的健康评估组件,DirectAccess 客户端可能需要访问更新服务器以更正其健康状态。如果是这样,DirectAccess 客户端将向合适的更新服务器发送更新请求。[管理隧道]
  3. 更新服务器向 DirectAccess 客户端提供所需的设置或更新,以便符合系统健康要求。[管理隧道]
  4. DirectAccess 客户端将更新后的健康状态信息发送给 HRA。[管理隧道]
  5. HRA 将更新后的健康状态信息发送给 NAP 健康策略服务器。假设已进行了所有必需的更新,NAP 健康策略服务器将确定 DirectAccess 客户端是合规的,并将结果发送给 HRA。[Intranet 流量]
  6. HRA 从 NAP CA 获得健康证书。[Intranet 流量]
  7. HRA 将健康证书发送给 DirectAccess 客户端。[管理隧道]
  8. 当 DirectAccess 客户端尝试访问 Intranet 上的资源时,它将使用健康证书创建 Intranet 隧道。[Intranet 隧道]

HRA 和更新服务器位于 Internet 上

当 HRA 和更新服务器仅位于 Internet 上时,DirectAccess 客户端始终可以访问它们,而且系统健康验证会独立于 DirectAccess 隧道进行。

图 2 显示了 HRA 和更新服务器仅位于 Internet 上时的配置。有关此配置的详细信息,请参见 2009 年 6 月的网络专家专栏文章 Internet 上的 NAP

Figure 2  DirectAccess with NAP when the HRAs and remediation servers are on the Internet.

图 2 当 HRA 和更新服务器位于 Internet 上时,使用 NAP 实现的 DirectAccess。

对于完全强制模式,DirectAccess 客户端需要先获得健康证书,之后才能访问除管理服务器之外的任何 Intranet 资源。管理服务器是从 Intranet 进行远程管理和支持不合规的DirectAccess 客户端所必需的。因此,针对基础结构、Intranet 和管理(可选)隧道的连接安全性规则都需要健康证书。

配置步骤

当 HRA 和更新服务器都位于 Internet 上时,若要配置使用 NAP 的 DirectAccess,您需要使用 Netsh.exe 命令在 DirectAccess 服务器 GPO 中更改基础结构、Intranet 和管理隧道规则以便要求健康证书。

以下命令使用 Windows Server 2008 R2 中的 DirectAccess 安装向导为 GPO 和连接安全性规则配置的默认名称:

  1. 在管理员级别的命令提示符下,运行 netsh –c advfirewall 命令。
  2. 在 netsh advfirewall 提示符下,运行以下命令:

 

set store gpo="DomainName\DirectAccess Policy-{ab991ef0-6fa9-4bd9-bc42-3c397e8ad300}"

consec set rule "DirectAccess Policy-DaServerToDnsDC" new auth1=computercert auth1ca=CANameString auth1healthcert=yes applyauthz=yes

consec set rule "DirectAccess Policy-DaServerToCorp" new auth1=computercert auth1ca=CANameString auth1healthcert=yes applyauthz=yes

consec set rule "DirectAccess Policy-DaServerToMgmt" new auth1=computercert auth1ca=CANameString auth1healthcert=yes applyauthz=yes

注意:DomainName 是 AD DS 域的 FQDN。CANameString 是显示 consec show rule name="DirectAccess Policy-DaServerToCorp" 命令时 Auth1CAName 字段的值。

只有当您已定义管理服务器且希望阻止不合规的 DirectAccess 客户端访问它们时,才需要运行最后一个命令。

工作原理

以下过程描述了当 HRA 和更新服务器都位于 Internet 上时,使用 NAP 的 DirectAccess 如何作用于 DirectAccess 客户端:

  1. 当 DirectAccess 客户端启动后,将尝试使用其计算机帐户登录 AD DS 域并创建基础结构隧道。由于 DirectAccess 客户端没有健康证书,因此尝试将失败。[Internet 流量]
  2. 当 NAP 代理启动后,DirectAccess 客户端解析 HRA URL 的 FQDN,然后将其当前的健康状态信息发送给 Internet 上的 HRA。[Internet 流量]
  3. HRA 将 DirectAccess 客户端的健康状态信息发送给 NAP 健康策略服务器。[Intranet 流量]
  4. NAP 健康策略服务器评估 DirectAccess 客户端的健康状态信息,确定该客户端是否合规,并将结果发送给 HRA。[Intranet 流量]
  5. HRA 将健康评估结果发送给 DirectAccess 客户端。[Internet 流量]
  6. 假设健康状态合规,HRA 将从 NAP CA 获取健康证书,并发送给 DirectAccess 客户端。[Internet 流量]
  7. 当 DirectAccess 客户端计算机下次尝试使用其计算机帐户登录 AD DS 域或解析 Intranet FQDN 时,它会首先使用健康证书创建基础结构隧道。[基础结构隧道]
  8. 当 DirectAccess 客户端需要访问 Intranet 上的资源时,它将首先使用健康证书创建 Intranet 隧道。[Intranet 隧道]

如果 DirectAccess 客户端不合规:

  1. HRA 将健康评估结果发送给 DirectAccess 客户端,其中包括健康更正指令;但 HRA 不会获得健康证书。[Internet 流量]
  2. 根据已安装的健康评估组件,DirectAccess 客户端可能需要访问更新服务器以更正其健康状态。如果是这样,DirectAccess 客户端将向合适的更新服务器发送更新请求。[Internet 流量]
  3. 更新服务器向 DirectAccess 客户端提供所需的设置或更新,以便符合系统健康要求。[Internet 流量]
  4. DirectAccess 客户端将更新后的健康状态信息发送给 HRA。[Internet 流量]
  5. HRA 将更新后的健康状态信息发送给 NAP 健康策略服务器。假设已进行了所有必需的更新,NAP 健康策略服务器将确定 DirectAccess 客户端是合规的,并将结果发送给 HRA。[Intranet 流量]
  6. HRA 从 NAP CA 获得健康证书。[Intranet 流量]
  7. HRA 将健康证书发送给 DirectAccess 客户端。[Internet 流量]
  8. 当 DirectAccess 客户端计算机下次尝试使用其计算机帐户登录 AD DS 域或解析 Intranet FQDN 时,它会首先使用健康证书创建基础结构隧道。[基础结构隧道]
  9. 当 DirectAccess 客户端需要访问 Intranet 上的资源时,它将使用健康证书创建 Intranet 隧道。[Intranet 隧道]

Joseph Davies是 Microsoft 的 Windows 网络写作团队的首席技术撰稿人。他自行撰写或与他人合著了 Microsoft Press 出版的大量书籍,包括《Windows Server 2008 Networking and Network Access Protection (NAP)》、《Understanding IPv6, Second Edition》和《Windows Server 2008 TCP/IP Protocols and Services》。

相关内容: