经产观察
IT资讯
IT产业动态
业界
网站运营
站长资讯
互联网
国际互联网新闻
国内互联网新闻
通信行业
通信设备
通信运营商
消费电子
数码
家电
通信设备

Windows Server远程桌面网关深入浅出

作者:habao 来源: 日期:2018-3-4 21:46:48 人气:

  随着信息技术的不断发展,使得在任何地方都可能进行IT资源部署,尤其是服务器资源的部署。而亲身在现场进行部署或者工作对于IT人员来讲并不现实,会耗费大量的人力物力。远程桌面服务可以实现远程访问,操控资源,从而提供了一种方便快捷的方式来进行服务器的远程管理。远程桌面网关服务作为实现远程桌面服务的核心技术,实现了接受远程访问要求,控制远程访问的工作。

  本文将从四部分对Windows Server远程桌面网关服务进行讨论,该服务是世纪互联蓝云运营的Microsoft Azure公有云平台实现的客户远程访问公有云资源的核心服务。本文首先对远程桌面服务和远程桌面网关服务进行介绍,其中介绍了包括实现服务所需要的角色和功能,远程桌面网关服务的基本原理,然后对远程桌面网关的核心协议进行讨论,接下来介绍了如何在Windows Server 2008 R2服务器上部署远程桌面网关服务,在本文最后的部分,探讨了两种在日常工作中与远程桌面网关服务相关的可能出现的问题,提供了相应的解决思和方法。

  远程桌面服务可以实现很多功能,其中包括帮助Windows Server服务器实现承载多个并行的客户端会话,可以单会话实现远程运行,远程使用Web应用程序等功能。

  为了实现上述功能,Windows Server远程桌面服务包含了六种关键角色,如表1-1所示,表1-1 远程服务角色及作用

  实现服务器去承载远程应用作为基于会话的桌面,用户可以使用远程桌面连接应用连接到会话主机去运行应用,存储文件,使用资源。

  实现一个服务器可以管理客户端访问授权,该授权可以允许每个设备或者用户连接基于远程桌面会话的服务器。

  远程桌面服务提供了一系列的解决方案来实现用户远程访问或是操作,为用户提供了便利。下面我们继续介绍本文的重点内容远程桌面网关。

  上一小节概要的介绍了远程桌面服务,以及该服务所包含的相应功能。本小节将会介绍本章的重点内容--远程桌面网关。

  远程桌面网关(Remote Desktop Gateway)在上小节中提到是作为一个角色来实现允许被授权的用户通过公有网络来访问位于私有网络中的资源,资源可以是远程服务器、或者运行远程应用的服务器,也可以是远程桌面的服务器或者个人电脑。远程桌面网关使用在安全超文本传输协议(HTTPS)上的远程桌面协议(RDP)来在公共网络中进行远程访问和在私有网络中的设备或者服务器之间建立一个安全加密的连接。

  用户通过互联网,也就是通过公共网络直接去尝试连接在防火墙后面的资源时,需要在防火墙上3389端口或者其他远程桌面的端口。如果是不方便相应端口,远程访问操作也就不能实现。

  最后一个问题是即便在防火墙上了3389端口也是不安全的,因为会对私有网络中存在并且了3389或相应远程桌面端口的服务器或者资源造成安全,因为任何人都可以尝试远程桌面端口来进行服务器端的密码破解。

  Windows Server远程桌面网关可以很好的解决上述三点问题,因为远程桌面网关包含了以下特性,

  · 提供了友好的方式,可以帮助管理人员随时远程桌面网关状态,健康度和事件,已达到更好管理的目的。

  当我们在中部署了远程桌面网关之后,客户端的连接远程桌面会话主机的方式发生了根本的变化,如图1-3所示,

  我们可以看到,在公网(Internet)的用户使用笔记本(Home Laptop)想访问公司内部的私有网络中(Corporate/Private Network)的服务器或台式机,首先需要先与远程桌面网关服务通过基于安全套字节层的远程桌面协议(RDP over SSL)建立一个安全的通信通道,然后再通过远程桌面网关的远程桌面端口连接到公司内部的资源的远程桌面3389端口,这样就建立起了一条从用户到远程终端的安全通信链。

  本章介绍了远程桌面与远程桌面网关的基本概念,其中包括了各个远程桌面的角色,以及每个角色可以实现的功能。另外通过分析用户远程访问时所面临的问题,引出了Windows Server远程桌面网关的优势,最后介绍了远程桌面网关部署后的访问方式。

  从第一章的介绍可知,一个用户想要从家里访问公司内部生产中的服务器是通过一条安全的通道来进行通信的,故如何建立这条安全通道是实现远程桌面网关服务的重点。而建立通道所需要的协议则是核心,本章主要研究远程桌面网关的核心协议。

  远程桌面网关使用远程桌面网关协议集实现用户远程访问,协议从远程桌面网关客户端到远程桌面网关服务器在中立区域建立一条隧道,远程桌面网关客户端会利用该隧道来在客户端和终端服务器之间建立一条通道,数据则通过这条通道在客户端和终端服务器之间进行传输。隧道和通道共同活跃的通信连接。

  客户端会建立一条主通道到终端服务器,还可以建立零到多个辅助通道,远程桌面网关协议使用RPC Over HTTP和HTTP两种协议来进行主通道的建立,该协议还使用UDP传输协议来建立侧通道。

  由2.1小节可知,远程桌面网关使用了RPC over HTTP、HTTP以及UDP协议进行通道建立来实现用户与终端服务器之间的通信。这一小节来介绍每个协议进行通道建立,数据传输,通道关闭等功能的具体步骤。

  远程桌面网关服务器协议使用RPC over HTTP来进行通道建立,数据传输,通道关闭。从远程桌面网关服务器到客户端执行RPC out pipe,从客户端到远程桌面网关执行RPC calls来实现通信。下面来研究每一步的过程。

  通道的建立分为从客户端到远程桌面网关服务器,再从远程桌面网关服务器到终端服务器两部分,这个过程包含了四个操作步骤,

  在建立连接过程中,客户端会根据网关服务器的所支持的协议版本、服务器证书利用TsProxyCreateTunnel方法建立一条隧道。接下来利用TsProxyAuthorizeTunnel方法对远程桌面网关客户端执行授权规则,其中包括健康检查,强制用户授权的隧道认证操作,之后如果客户端和网关服务器能够发送和接收管理消息,远程桌面网关客户端可以调用TsProxyMakeTunnelCall方法来请求消息。最后利用TsProxyCreateChannel方法在已经建立好的隧道中建立一个通道来实现接下来的数据传输工作。

  2.2.1.2 数据传输:数据传输过程将允许从客户端到终端服务器进行数据传输工作,在这个工作成,远程桌面网关服务器扮演者一个中间代理者的角色,如图2-2所示,

  远程桌面网关客户端会与远程桌面网关服务器建立一个连接,然后远程桌面服务器再跟终端服务器建立一条的连接,这样,从客户端到终端服务器的这条逻辑链称为一条通道,而这条通道只能建立在隧道之内,但一个隧道可以容纳多条通道同时通信。

  数据从终端服务器到客户端通过远程桌面网关服务器使用out pipe进行传输。远程桌面网关服务器协议使用RPC out pipes将数据从远程桌面网关服务器到客户端进行数据流化传输。数据流的工作是由TsProxySetupReceivePipe方法来实现的,一个通道一次只可以调用一次该方法。而数据从客户端通过远程桌面网关服务器传输至终端服务器时,会调用TsProxySendToServer方法来实现数据的传输,具体过程如图2-3所示,

  2.1.1.3 结束过程:结束过程是去终止通道和隧道的过程,其中包含了关闭通道,取消等待消息以及关闭隧道三个子过程,如图2-4所示,

  远程桌面网关客户端都可以发起结束过程,客户端使用TsProxyCloseChannel方法来启动这个过程,该过程会关闭在传输数据过程中所使用的RPC out pipe,而远程桌面网关服务器则发送一个RPC response protocol data unit(PDU)来结束通过TsProxySetupReceivePipe方法来建立的数据传输。如果远程桌面网关客户端还有对于远程桌面网关服务器的等待的管理消息的请求,客户端将调用TsProxyMakeTunnel方法来取消该请求。在结果过程的最后,当所有的通道关闭后,会调用TsProxyCloseTunnel方法来关闭隧道,整个过程结束。

  远程桌面网关超文本协议(RDGWHTTP)使用超文本协议(HTTP)来创建两条通信通道,分别负责接收来自远程桌面网关服务器和发送数据到远程桌面网关服务器,每一条通道被加密协议SSL所,这也是部署远程桌面网关服务器最常用的一种协议。RDGWHTTP使用HTTP协议来实现四个过程,分别为建立连接与认证、创建隧道和通道、数据传输以及关闭连接。

  OUT和IN通道是一条HTTP1.1连接,如果远程桌面网关服务器和远程桌面网关客户端支持WebSocket协议,那OUT通道和IN通道便可实现双向通信功能,如果不支持,则OUT通道负责远程桌面网关的数据发送,而IN通道则负责数据输入工作。通道建立完成后进行认证过程,如图2-5所示。

  远程桌面网关客户端与远程桌面网关服务器通过交换由HTTP请求和响应主体的消息来实现创建隧道和通道的过程,这个过程包含交换版本和能力协调信息,创建隧道,认证隧道,创建通道四部分操作,如图2-6所示。

  在数据和服务器消息交换过程中,远程桌面网关服务器和远程桌面网关客户端使用IN通道和OUT通道来进行数据的发送工作,另外会通过Keep-alive消息来实现检测服务器和客户端状态的功能。远程桌面网关服务器会不定时发送服务消息和重认证请求来确保客户端的有效性。

  在连接关闭过程中,远程桌面客户端和远程桌面服务器都可以关闭通道,如图2-7所示,客户端发起通道关闭,其中包括关闭通道和关闭隧道两步,

  远程桌面用户数据报协议被设计用来穿越防火墙在远程桌面网关客户端和终端服务器中间进行传输图形图像,音频视频数据的协议。该协议会在远程桌面网关客户端上创建一个隧道后在隧道内创建一条连接客户端和终端服务器的通道,而远程桌面网关服务器会以一个代理的形式,数据通过这条建立好的通道进行传输。数据在远程桌面网关服务器到和远程桌面网关客户端使用用户数据报文协议进行传输,远程桌面网关客户端会与远程桌面网关服务器进行数据包传输层安全性协议(DTLS)握手后建立一条安全通道,进行相应的连接建立、数据传输以及关闭过程。

  DTLS握手过程会首先在远程桌面网关客户端和远程桌面网关服务器之间建立起一条安全的通道。握手的过程由两个操作组成,首先远程桌面网关客户端会通过可靠的方式发送第一个数据包,这个数据包会不断地重复发送给服务器端直到收到服务器的相应,如果在相应的次数内客户端没有收到服务器端的相应,则会标识本次连接建立的过程失败。其他的DTLS握手过程都是通过不可靠的方式进行的,所有丢失的数据包都不会进行重传操作,客户端和服务器端负责丢失数据包重传的任务,过程如图2-8所示,

  连接建立的过程由三部分组成,首先远程桌面网关客户端发送相应次数的CONNET_PKT_Structure数据包到远程桌面网关服务器,直到收到从远程桌面网关服务器发送来的CONNET_PKT_RESP数据包。远程桌面网关服务器会使用在Connect_PKT_Structure数据包中的cookie来认证远程桌面网关客户端。当cookie校验成功,客户端会使用在cookie中指定的IP地址来建立一条UDP的连接。之后远程桌面网关服务器会存储连接建立的结果,并发送给客户端,流程如图2-9所示,

  本过程实现了数据通过远程桌面网关服务器在远程桌面网关客户端和终端服务器之前的传输。UDP会建立一条逻辑的隧道和一条客户端和终端服务器的端到端的连接后进行数据的传输工作

  本过程会终止UDP通道以及所有在客户端和网关服务器之间的连接。客户端和网关服务器都可以发送DISC_PKT_Structure数据包来实现该过程。过程如图2-10所示,

  本章具体介绍了要实现远程桌面网关服务所必须的三个关键协议:RDGWSP,RDGWHTTP和RDGWUDP,分析了每个协议在连接创建,数据传输,连接关闭等过程中的步骤与实现方式。

  传输层安全协议(TLS)通常被用来加密远程桌面网关客户端和远程桌面网关服务器之间所传说的数据,TLS作为一个标准的协议可以提供在公网或者内网安全的数据。为了使TLS可以正确的工作,用户需要在远程网关服务器上安装一个SSL兼容的X.509证书。

  如要从内部CA获取证书,那么内部的CA的证书必须被一个微软认证的公共CA所签名,否则由于证书是不可信任的,用户从家里或者别的非工作中有可能无法连接网关服务器。而使用自颁发证书,一般用来在测试中对网关服务器的工作进行评估时使用,因此不在生产中使用。从有资质的公共CA购买证书是大部分实现远程桌面网关服务的通用方法。

  RD CAP和RD RAP使管理员可以控制当远程用户通过远程桌面网关来连接内网中的资源时的权限。RD CAP允许管理员指定什么用户可以连接使用远程桌面网关服务器。管理员可以指定一个活动目录中的安全组或者指定用户必须满足的其他条件。当远程用户满足了RD CAP中设定的条件,该用户便可以连接使用远程桌面网关服务,但是还需要创建RD RAP来指定哪些用户可以访问哪些内网中的资源。管理员必须创建了RD CAP和RD RAP后,远程用户才可以通过远程桌面服务器访问内网资源。

  网络访问是操作系统中的一系列组件,这些组件可以私有网络访问。NAP提供了一个集成的方式来验证系统的健康状态,其中包含运行状况策略创建、强制和补救技术等。可以将远程桌面网关服务器和客户端配置为使用网络访问,这样便可以提高安全性。

  由于远程桌面网关对每个客户端会话使用两个连接,一个入站,一个出站。如果要在负载平衡器将每个连接分发到不同的远程桌面网关服务器时,来自两个连接的通信均将重定向到同一台远程桌面网关服务器。这时我们就需要使用服务器场。

  远程桌面网关服务是一个Windows Server中的一个角色,故部署方式相对不复杂。下面以在一台操作系统为Windows Server 2008 R2英文版的服务器上部署远程桌面网关服务为例介绍部署步骤。在部署之前,我们需要确定这台服务器已经加入了域。

  (1)服务器重启完毕后,打开服务器管理器,选择角色,添加角色,选中远程桌面服务(Remote Desktop Services),

  (2)点击下一步,选择远程桌面网关(Remote Desktop Gateway),点击下一步,点击“添加所需的服务”,再点击下一步。

  (3)在服务器认证证书步骤中,选择“稍后选择一个证书”(Choose a certificate….),点击下一步。在创建认证策略步骤中选择“稍后”(Later),然后点击下一步。

  (4)在网络策略和访问服务步骤中,选中网络策略服务器(Network Policy Server)后点击下一步。

  3.2.2.1 配置防火墙: 由于远程桌面网关服务器会与的客户端,或者其他设备通信,所以我们需要配置操作系统防火墙,以确保正常通信。需要确保将下列服务或者协议添加到防火墙的例外中,

  3.2.2.2 部署配置SSL证书:我们使用公共CA提供的证书作为远程桌面网关证书为例介绍部署SSL证书的步骤。

  (1)首先我们通过公共CA申请到一个SSL的证书后,从公共CA下载证书后,打开做证书请求的IIS服务器,点击完成证书申请并且导入证书。

  (3)当证书安装完毕后,打开远程桌面网关管理器,选中服务器后右键选择属性,选择从本地个人存储导入证书(Select an existing…),选择导入(Import Certificate)的证书,点击确定。

  (1)在远程桌面网关服务器上,打开远程桌面网关管理器,右键选择一台服务器,选择属性后,选择服务器场(Server Farm),点击添加(Add)将一台服务器添加到该服务器场中,如图3-

  (4)在需求界面中,选择智能卡(Smartcard),然后选择一个域中的安全组加入到用户组中(User Group Membership)中,点击下一步。

  (7)点击下一步,选择一个域中的安全组加入到用户组中(User group membership)中,点击下一步,

  (8)在网络资源步骤中,可以控制哪些资源是可以被之前添加了的组访问的,可以选择域中的组,这个组可以包含域中的服务器,也可以自己创建一个远程桌面网关控制的组,单独添加服务器,还可以选择允许访问任何的服务器。在这里,我们选择可以访问任何的资源(Allow users to connect to any network resource),点击下一步。

  (9)在允许的端口界面中,我们可以指定端口来访问终端资源,可以选择默认的3389端口(Allow connections only through TCP port 3389),还可以指定一些端口,比如999111,999222等,另外还允许选择任意端口,不过这种方法安全性和可管不高。

  本章介绍了远程桌面网关服务的重要组件和功能,以及介绍了如何在Windows Server 2008 R2操作系统上部署远程桌面网关服务。

  在我们使用部署好的远程桌面网关服务时, 会出现一些比较常见的问题,在这一章中,我们讨论一下在使用远程桌面网关服务的过程中可能会出现的问题,以及解决思。

  解决思: 面对大面积用户的报告,我们可以判定应该是远程桌面网关服务出现了问题。我们需要立刻检查远程桌面网关服务。

  调查步骤: 如果只有一台服务器作为远程桌面网关服务器提供服务,那么首先需要尝试登陆该服务器,如果服务器可以登录,那么可以利用图4-1中的命令查看远程桌面网关服务是否运行正常。

  如果有很多台服务器在负载均衡器后面作为远程桌面网关服务器提供服务,当其中一台服务器出现问题无法提供服务时,负载均衡器不会将请求发送给有问题的服务器,所以,服务器问题不会是用户无法访问的根本原因,除非所有在负载均衡器后面的服务器同时出问题,所以我们需要先利用端口检查程序来检查端口是否是出于的状态,一般来讲我们使用portqry命令来进行检查,具体命令如图4-2所示,

  如果TCP Port 443(https service): 是LISTENING状态,说明对外提供的网关服务是正常的。如果是FILTERED状态,则需要跟网络组一起调查是否问题与网络连接或者负载均衡器有关。

  解决思: 如果是个别用户报告他们无法使用,但是其他用户没有相同的反馈,那么说明问题不是出现在远程桌面网关服务,需要调查研究其他方面。

  这意味着,该用户没有通过CAP的认证,所以无法使用远程桌面网关服务来进行远程访问。出现这个问题有可能由于

  针对以上两点,需要跟用户合作共同排错,首先检查用户的PIN吗是否输入正确,检查用户的智能卡是否在有效期,其次检查用户是否在被允许使用远程桌面网关服务器的安全组内。

  本文首先介绍了远程桌面网关服务的相关概念;研究了远程桌面网关服务所使用的相关核心协议,每个协议具体的流程步骤;通过较为详细的图示案例,介绍了如何在Windows Server 2008 R2操作系统之上部署远程桌面网关服务;最后介绍了在日常工作中在使用远程桌面网关服务时常遇到的两种问题,并且讨论了解决思和调查步骤。通过了四章的介绍,相信读者已经对远程桌面网关服务的概念、原理、部署方式以及常见问题和解决方案有了一定的理解。在以后使用由世纪互联所运营的Microsoft Azure公有云平台进行远程资源访问时会更加地得心应手。

  

推荐文章