ISA Server

使用 ISA Server 2006 增强 TS 网关的安全

Thomas W. Shinder 博士和 Yuri Diogenes

 

概览:

  • 两种搭配使用 TS 网关与 ISA Server 的方案
  • ISA Server 2006 配置
  • 测试和监视

目录

超越外围
第一个方案
配置 ISA Server 2006
测试和监视客户端访问
从 ISA Server 实施监视
第二个方案
客户端又将如何?
结束语

在 Exchange Server 2007 中成功实现了 Outlook Anywhere 之后,Windows Server 2008 又提供了以安全且可控制的方式从任意位置访问桌面的功能。

Windows Server® 2008 中的这一新终端服务器网关服务(TS 网关)提供了 Windows® 终端服务器服务的灵活性以及通过 HTTP 连接从任意位置连接终端服务器的能力。此项服务通过 HTTPS (SSL) 使用远程桌面协议 (RDP) 来增强安全性,同时提供了一个用于访问终端服务资源的客户端界面。

这一新型 TS 网关服务为那些需要从远程访问其计算机的用户提供了许多优势:

  • 在使用 RDP 连接内部资源之前无需建立虚拟专用网络 (VPN) 会话。
  • 通过使用网络访问保护 (NAP) 和 Windows 安全状况检查控制 RDP 连接增强了安全性。
  • 通过防火墙启用更安全的 Web 发布时,无需打开 TCP 端口 3389 入站。

您可以使用 Microsoft® Internet Security and Acceleration (ISA) Server 2006 来增强 TS 网关的安全性,同时允许从外部访问内部资源。您可以建立一个 SSL 到 SSL 桥接方案,其中 ISA Server 2006 仍使用 HTTPS 接收请求并将其传递给内部 TS 网关服务。桥接请求时,ISA 防火墙会解密 SSL 通信并执行应用程序层检查。

如果 HTTP 协议流通过了检查,那么通信将被重新加密并转发到终端服务代理。如果协议流未通过检查,则此连接将被丢弃。

超越外围

Microsoft 在安全性方面投入了大量的精力,将 Windows Server 2008 打造成了 Windows 最安全可靠的版本。同时,公司还关注用户将如何实现其产品以及用户是否依照最佳实践来保障其环境的安全。最佳实践需要有深层防御方法,能在多个访问点或层提供保护。我们在这里讨论的层包括策略、过程和识别、外围、内部网络和主机。

如果您允许外部用户通过 ISA Server 访问内部资源,您需要了解所涉及的各个产品的边界。ISA Server 2006 和 TS 网关将在“外围”层提供保护,但对于内部资源,您还需要准备一些策略,以根据需要允许或拒绝访问。Network Policy and Access Services (NPAS) 可使您实现这一点,它在策略、过程和识别层上发挥作用。对内部资源(驱动器、剪贴板、打印机等)的访问由处理内部网络层的终端服务资源授权策略定义。

在本文中,我们首先将说明如何通过 ISA Server 2006 发布终端服务网关。然后我们会将 ISA Server 2006 发布方案扩展到包含使用 NAP 的客户端运行状况强制措施。通过使用 NAP,我们可以创建客户端运行状况策略,以帮助我们控制主机层访问。

第一个方案

我们的目标是展示如何通过 ISA Server 2006 发布 TS 网关。图 1 汇总了此连接期间的计算机和数据流。在此方案中,我们将在 TS 网关本身实现网络策略服务器 (NPS) 角色;而在第二个方案中我们将改为使用中央 NPS 服务器。下面依次介绍了通信如何在 TS 网关发布解决方案的各组件之间工作:

fig01.gif

图 1 通过 ISA Server 2006 发布 TS 网关(单击图像可查看大图)

  1. 外部 RDP 用户启动连接。客户端首先必须解析 TS 网关的外部名称(在本例中为 tsg.contoso.com)。外部 DNS 解析此名称(指向 ISA Server 的外部 IP 地址)。
  2. 在 RDP 客户端与 ISA Server 的外部接口之间建立 SSL 隧道。ISA Server 在端口 TCP 443 有一条 Web 发布规则,它使用签发给 tsg.contoso.com 的证书。
  3. 在评估此规则并检查允许的流量后,ISA Server 将向内部 DNS 服务器(位于域控制器上)发送一条 DNS 查询,以解析在 Web 发布规则中指定的服务器名称。
  4. ISA Server 之后会打开通向 TS 网关的 SSL 隧道并向其传递身份验证请求。
  5. TS 网关服务器验证用户的凭据并检验是否授权该用户建立连接。
  6. 在确定用户有权建立连接之后,TS 网关服务会在 TCP 端口 443 接收请求并通过 TCP 端口 3389(默认情况下)将 RDP 数据包转发到应用程序(如 CRM 应用程序)所驻留的内部终端服务器。

自此,RDP 客户端通过 ISA Server 发送给 TS 网关服务的任何数据包都将被转发到内部终端服务器,反之亦然。

请注意,RDP over HTTPS 就是 RDP/RPC/HTTPS。RDP 客户端将 RDP 通信封装在 RPC 标头中,该标头随后将与使用 SSL(或传输级安全性 TLS)保护的 HTTP 标头封装在一起。RPC over HTTPS 解决方案所需的所有组件都必须存在。这是因为当您安装 TS 网关角色服务时,它会自动安装 RPC over HTTP 代理。要了解更多该协议工作原理的信息,我们建议您阅读 ISA Server 团队博客的一篇文章 "Testing RPC over HTTP through ISA Server 2006 Part 1; Protocols, Authentication and Processing"(地址是 blogs.technet.com/isablog)。

这一实现需要安装有终端服务网关的 Windows Server 2008,而且此功能要依赖 RPC over HTTP 代理。要令 RDP over RPC over HTTP 代理发挥功能,必须安装并运行 Internet 信息服务 (IIS) 7.0。您还需要 Network Policy and Access Services,但是,如果您喜欢,也可以配置 TS 网关以使用 NPS 服务器(以前的 Internet 身份验证服务 (IAS))集中存储、管理以及验证终端服务连接授权策略 (Terminal Services Connection Authorization Policies, TS CAP)。最后,您必须为 TS 网关服务器获取一个 SSL 证书(如果您还没有)。请特别注意,ISA Server 2006 必须信任发放该证书的证书颁发机构 (CA)。因此,请务必要将该证书导入受信任的根证书颁发机构存储区。

仅当您配置的 TS 网关授权策略要求用户是 Active Directory 安全组的成员才能连接 TS 网关服务器时,才需要 Active Directory® 域服务。对于此特定设置,我们将在运行 Windows Server 2003 SP2 的计算机上使用 Active Directory。

安装完终端服务网关服务后,将会出现图 2 中所示的屏幕,其中显示已安装的组件。若要连接 TS 网关,客户端必须运行以下一项内容:Windows Vista®;带 SP2 和 RDP 6.0(或更新版本)的 Windows XP;Windows Server 2008;带 SP1(或更新版本)和 RDP 6.0(或更新版本)的 Windows Server 2003。有关 TS 网关配置的详细信息,请参阅《Windows Server 2008 TS Gateway Server Step-By-Step Setup Guide》(go.microsoft.com/fwlink/?LinkId=122251)。现在让我们看一看如何配置 ISA Server 2006。

fig02.gif

图 2 TS 网关安装汇总(单击图像可查看大图)

配置 ISA Server 2006

第一步创建一个 Web 侦听器,它将处理来自外部 RDP 客户端的请求。我们的 Web 侦听器具有下列参数:

  • 身份验证:基本
  • 身份验证检验:Windows (Active Directory)
  • 连接:在端口 443 上启用 SSL (HTTPS) 连接
  • 证书:向 tsg.contoso.com 签发的证书
  • 网络:外部

接下来创建 Web 发布规则。从 ISA Server 2006 角度看,RDP 客户端将使用 Outlook® Anywhere 所采用的协议,因此选择 Exchange Server 2007 向导。只需执行下列步骤即可:

  1. 右键单击“Firewall Policy”(防火墙策略),选择“New”(新建),然后单击“Exchange Web Client Access publishing rule”(Exchange Web 客户端访问发布规则)。
  2. 在“Welcome to the New Web Publishing Rule Wizard”(欢迎新建 Web 发布规则向导)页面中,键入规则的名称并单击“Next”(下一步)。
  3. 在“Select Rule Action”(选择规则操作)页面中,选择“Allow”(允许)选项并单击“Next”(下一步)。
  4. 在“New Exchange publishing rule”(新建 Exchange 发布规则)页面中,选择 Exchange 版本(在我们的示例中为 Exchange Server 2007)。选择 Outlook Anywhere (RPC/HTTP) 并单击“Next”(下一步)。(注意:请不要选择“Publish additional folders on the Exchange Server for Outlook 2007 client”(在 Exchange Server for Outlook 2007 客户端上发布其他文件夹)选项。)
  5. 在“Publishing Type”(发布类型)页面中,选择相应选项以发布单个网站或负载平衡器,然后单击“Next”(下一步)。
  6. 在“Server Connection Security”(服务器连接安全)页面中,选择“Use SSL”(使用 SSL)连接发布的 Web 服务器或服务器场,然后单击“Next”(下一步)。
  7. 在“Internal Publishing Details”(内部发布详细信息)页面中的内部站点名称框中,键入 TS 网关服务器的名称。选中“Use a computer name or IP address to connect to the published server”(使用计算机名称或 IP 地址连接发布的服务器)复选框,然后在“Computer name”(计算机名称)或“IP address”(IP 地址)框中键入服务器名称。如果您不知道 TS 网关服务器的名称,请单击“Browse”(浏览)导航到其位置。请注意,您在本页中使用的名称必须与 TS 网关网站绑定的网站证书上的常规名称或对象名称匹配。
  8. 在“Public Name Details”(公共名称详细信息)页面中,从下拉列表的“Accept”(接受)请求中选择该域名(在下方键入),然后在“Public name”(公共名称)框中,键入与向此 URL 颁发的证书的名称匹配的公共名称,在本例中,名称为 tsg.contoso.com。然后单击“Next”(下一步)。
  9. 在“Select Web Listener”(选择 Web 侦听器)页面中,单击下拉列表并选择先前创建的 Web 侦听器,然后单击“Next”(下一步)。
  10. 在“Authentication Delegation”(身份验证委派)页面中,选择“No delegation”(无委派)选项(但客户端可以直接进行身份验证),然后单击“Next”(下一步)。
  11. 在“User Set”(用户集)页面中,检验是否已选中默认选项“All Users”(所有用户),单击“Next”(下一步),然后单击“Finish”(完成)并加以应用。

如果您双击规则并转到“Path”(路径)选项卡,您将会看到我们拥有的唯一路径是 /rpc/*。这是由于我们使用的是 Exchange Server 2007 Outlook Anywhere 向导。

测试和监视客户端访问

如前所述,您需要 RDP 6.0 或更新版本的客户端来连接 TS 网关。要配置 RDP 客户端应用程序,请将其启动并在“Computer”(计算机)字段中键入要连接的终端服务器的名称。依次单击“Options”(选项)按钮、“Advanced”(高级)选项卡和“Settings”(设置),然后键入 TS 网关服务器的外部名称,如图 3 所示。在我们的示例中,它是 Web 侦听器所绑定的证书上的名称,我们的 Web 发布规则使用该侦听器接受传入请求。请注意,在本例中使用的是 Windows NT® LAN Manager 身份验证。完成后,依次单击“OK”(确定)和“Connect”(连接)。您将得到一个身份验证提示。键入有权访问终端服务器的用户的凭据,并单击“OK”(确定)。

fig03.gif

图 3 配置 RDP 客户端(单击图像可查看大图)

请注意,RDP 6.0 客户端(用于 Windows XP 和 Windows Server 2003)将显示图 3 中所示的屏幕。系统将给您进行两次身份验证提示,第一次身份验证是针对 TS 网关计算机,第二次身份验证是针对要访问的终端服务器。这是很重要的一点,因为您可能认为这是由于 ISA Server 配置所致,实际上 ISA Server 根本不处理身份验证,因为 Web 发布规则适用于“所有用户”,这就允许通过 ISA 防火墙进行匿名连接。

Windows Server 2008 附带的 RDP 客户端有“Use my TS Gateway credentials for the remote computer”(将我的 TS 网关凭据用于远程计算机)选项,如图 4 所示。选中此选项后,您不必两次键入凭据,并且用户体验更好。在应用 SP1 之后,还可以在 Windows Vista 上使用此单一登录选项。

fig04.gif

图 4 Windows Server 2008 RDP 客户端(单击图像可查看大图)

您可以使用“Monitoring”(监视)选项通过 TS 网关管理器监视连接。未经授权的用户尝试连接服务器时,TS 网关服务还能提供详细信息。在图 5 中,事件查看器显示了无权通过 TS 网关执行连接的用户的连接尝试。

fig05.gif

图 5 登录 TS 网关服务的事件(单击图像可查看大图)

由于在 Web 发布规则中启用了“Requests appear to come from the ISA Server computer”(请求显示为来自 ISA Server 计算机)选项,因此对于此事件,会记录 ISA Server 2006 的内部 IP 地址。如果您要注册原始客户端 IP 地址,您将需要更改 ISA Server 2006 Web 发布规则并在“To”(目标)选项卡上选择“Requests appear to come from the original client”(请求显示为来自原始客户端)选项。

从 ISA Server 实施监视

使用 ISA Server 2006 可支持性更新包的新功能可以密切关注并了解内部网络的每个连接。图 6 显示了一个突出显示的连接,而且在 Request:行,RPC_IN_DATA 谓词指示 RPC over HTTP 代理的 URL。

fig06.gif

图 6 使用可支持性更新的 ISA Server 2006 日志记录(单击图像可查看大图)

如果您继续查看日志记录,应看到其他 RPC over HTTP 谓词 (RPC_OUT_DATA)。有必要了解使用了哪些 HTTP 方法,哪些是 RDP/HTTP 的 RPC_IN_DATA 和 RPC_OUT_DATA,因为如果您配置了 HTTP 筛选来阻止这些方法,那么将在 ISA Server 上阻止流量。如果您希望锁定您的环境,则可以将 RDP/HTTP Web 发布规则配置为仅允许这两种方法。若要获取通常用于发布的 HTTP 方法的详细信息,请阅读文章 "HTTP Filtering in ISA Server 2004"(technet.microsoft.com/library/cc302627)。

第二个方案

在此方案中,TS 网关将使用位于另一台服务器上的 NPS 中央策略。我们将强制对从远程通过 TS 网关连接的客户端实施 NAP 策略。此处使用的组件与方案 1 中使用的组件相同,仅添加了 NPS 服务器。但是,由于 NAP 强制执行,因此将在客户端使用更多的组件,如图 7 所示。

fig07.gif

图 7 方案 2 拓扑的主要组件(单击图像可查看大图)

下面介绍各个组件。在 Windows Vista 客户端上,系统运行状况代理 (SHA) 由负责监视并报告客户端运行状况的客户端组件组成。虽然 Windows Vista 附带了 Windows SHA,但也有其他一些供应商创建了自己的 SHA。

客户端上的 NAP 代理负责在客户端尝试访问网络时建立与 NAP 强制服务器的通信。NAP 代理会向该服务器发送客户端的“运行状况声明”(SoH)。

在 TS 网关上,TS 资源授权策略 (TS RAP) 组件允许您确定哪些计算机可用于接受传入的 RDP 请求。TS RAP 还会确定允许哪些用户与特定服务器建立 RDP 连接。

中央 NPS 负责控制用于规范内部计算机访问的条件、约束和设置。中央 NPS 上的系统运行状况验证器 (SHV) 负责评估客户端提交的 SoH 是否符合管理员设置的策略。

现在让我们将 TS 网关更改为指向 NPS 中央服务器。打开“TS Gateway Manager Console”(TS 网关管理器控制台),右键单击服务器的名称,并选择“Properties”(属性)选项。在服务器的属性窗口中,单击“TS CAP Store”(TS CAP 存储区)选项卡并选择“Central NPS server”(中央 NPS 服务器)。接下来,键入 NPS 服务器的名称或 IP 地址,然后单击“Add”(添加)按钮。您将会看到一个“Shared Secret”(共享密钥)弹出窗口。键入密钥并单击“OK”(确定),然后再次单击“OK”(确定)关闭窗口。您必须要记住这一密钥,因为它将用于 NPS 服务器。

假设 NPS 已安装在另一台服务器上,以下是您需要执行的步骤:

  1. 打开网络策略服务器控制台,并在左窗格中单击“NPS (Local)”(NPS(本地))。
  2. 在右窗格中单击“Configure NAP”(配置 NAP)。将显示“Select Network Connection Method for Use with NAP”(选择要与 NAP 配合使用的网络连接方法)页面。
  3. 在“Network Connection Method”(网络连接方法)下方,从下拉框中选择“Terminal Services Gateway (TS Gateway)”(终端服务网关(TS 网关)),然后单击“Next”(下一步)。
  4. 在“Specify NAP Enforcement Servers Running TS Gateway”(指定运行 TS 网关的 NAP 强制服务器)页面上,单击“Add”(添加)按钮。
  5. 在“New TS Gateway”(新建 TS 网关)窗口中,键入 TS 网关服务器的友好名称以及 IP 地址。然后在此窗口底部键入共享密钥(使用 TS 网关服务器配置中的密码)。然后,单击“OK”(确定)。
  6. 在“Configure Client Device Redirection and Authentication Methods”(配置客户端设备重定向和身份验证方法)页面中,可以指定将要重新定向的设备以及允许的身份验证方法(密码或智能卡)。对于本示例,保留默认选项并单击“Next”(下一步)。
  7. 在“Configure User Groups and Machine Groups”(配置用户组和计算机组)页面中,添加可以建立此连接的用户组。对于本示例,单击“User Groups(Required)”(用户组:(必需))下方的“Add Users”(添加用户)按钮并选择“Domain Admins”(域管理员)。依次单击“OK”(确定)和“Next”(下一步)。
  8. 在“Define NAP Health Policy”(定义 NAP 运行状况策略)页面中,您将会看到默认 SHV 已被选中。另请注意,在此页面底部,拒绝了对未兼容计算机的访问。保持选中默认选项并单击“Next”(下一步)。
  9. 在“Completing NAP Enforcement Policy and RADIUS Client Configuration”(完成 NAP 强制策略和 RADIUS 客户端配置)页面中,查看先前选择的选项。还可以单击“Configuration Details”(配置详细信息)超级链接,这将打开一个 HTML 页面,其中汇总了您的选择。完成后,单击“Finish”(完成)。

此向导可对众多重要策略(连接请求策略、网络策略和运行状况策略)的设置进行配置,因而显著减少了配置此方案 NAP 所需的工作。

客户端又将如何?

至此已对服务器进行了完全设置和配置,那么对客户端又必须做些什么呢?

要利用 NAP 强制策略,需要使用 Windows Server 2008 或 Windows Vista 作为客户端。对于 Windows XP,您需要安装 SP3(其包含 NAP 客户端)。

除了操作系统要求之外,还需要在客户端启用一些相关服务和设置。其中包括以下内容:

  • 将 TS 网关服务器名称添加到客户端上的“受信任服务器”列表中。
  • 启动 NAP 代理服务并将服务启动类型设置为“Automatic”(自动)。
  • 启用 TS 网关隔离强制客户端。

为了简化此解决方案的部署,Microsoft 已经创建了终端服务 NAP 客户端配置命令 (Tsgqecclientconfig.cmd),可以从 go.microsoft.com/fwlink/?LinkId=122267 下载这一命令。运行此命令后,客户端将被配置为 TS 网关的 NAP 强制客户端。请注意,此命令必须使用提升的权限运行。

在整篇文章中,我们的主要目标不仅是介绍和说明 Windows Server 2008 上提供的新 TS 网关功能以及展示如何通过 ISA Server 2006 对其进行安全地发布,而且还要让您对两种产品的结合可为您公司带来的安全优势有全面的了解。

在当今世界,几乎所有成功的企业都要求能从任何位置进行连接。但是,这种连接性不能以牺牲用户的体验为代价。而且更为重要的是,所有这些操作都必须以安全可靠的方式完成。

Thomas W. Shinder 博士是 MCSE 和 ISA Server 方面的 MVP。自 1996 以来他曾担任过技术培训师、撰稿人和顾问。Shinder 博士编写了六本 ISA 防火墙方面的书籍。他还是 ISAserver.org(Internet 上 ISA 防火墙管理员和爱好者的最大社区)的创意先锋和始做俑者。

Yuri Diogenes 拥有 MCSE+S、MCTS、MCITP、Security+、Network+ 和 CCNP 认证,是 Microsoft ISA Server/IAG 团队的安全支持工程师。他为 Microsoft TechNet Library 和 ISA Server 团队博客撰写了多篇文章。从 1993 年起,Yuri 便在 Microsoft 从事技术工作。在加入 Microsoft 之前,他曾担任过 Microsoft 培训师、支持分析师和顾问。