快速发布Remote APP程序
2018-11-08
RDS服务的组成角色
RDS最核心的角色是RD虚拟化主机和RD会话主机。对于前者来说,主要实现虚拟桌面服务,对于后者来说,主要实现应用程序虚拟化。当提供了后台核心服务后,就需要使用RD连接代理来管理用户访问进程。例如,当使用多台服务器部署了会话主机池,在其中提供了多个虚拟程序,当客户端访问目标虚拟程序时,会随机连接到某台会话主机上。当该客户端因为某些原因异常中断访问,再次进行连接时,RD连接代理可以自动帮助恢复之前失去的连接。RD Web访问角色为用户提供了访问接口,RD网关可以将RDS服务发布到Internet上,RD授权负责授权管理。打开服务器管理器,在左侧选择“远程桌面服务→概述”项,可以清晰地看到RDS服务的组成角色(如图 1)。
图1 RDS服务的组成角色
执行标准部署操作
这里就先以在公网上发布Remote APP为例进行说明,在企业内网中存在名为Rserer1的服务器,作为RD会话主机, IP为192.168.1.10。 名 为Rserver2的服务器为连接代理, IP为192.168.1.20。名 为Rserver3的 服 务器 作 为RD Web主 机, IP为192.168.1.30。 名 为“Rdgate”的主机作为RD网关服务器, IP为192.168.1.31。这些主机都加入到域环境,DC的 IP为192.168.1.2,并安装了CA角色。
在域中任意主机(例如“Rserver1”)上 打开 服务器管理器,在“所有服务器”项的右键菜单上点击“添加服务器”,在“Active Directory”面板中的“名称”栏中输入“rserver”,找到并导 入 Rserver2、Rserver3、rdgate主机添加进来。之后点击菜单“管理→添加角色和功能”项,可以针对该服务器组进行操作。
在向导界面中选择“远程桌面服务安装”,点击下一步,选择“标准部署→基于会话的桌面部署”,在下一步窗口中按照提示,依次设置Rserver2主机作为连接代理服务器,Rserver3主机为RD Web访问服务器,Rserver1主机为RD会话主机。选择“需要时自动重新启动目标服务器”项,点击部署按钮,执行具体的部署操作。
创建和管理RemoteAPP程序
在服务器管理器左侧选择“远程桌面服务→概述”项,点击“创建会话集合”,在向导界面中输入集合的名称(例如“APP_Pool”),之后选择名为Rserver1的会话主机,在下一步窗口中设置用户组,即哪些用户可以访问该集合,默认为所有的域账户。之后设置用户配置文件路径和容量,点击创建按钮,创建该集合。有了集合之后,就可以向其中添加应用程序。在左侧选择“集合→APP_Pool”,在“RemoteApp程序”列表右侧点击“任务→发布RemoteApp程序”项,选择单个或者多个目标程序,将其发布出去。
当用户访问“https://rserver3.xxx.com/reweb”网址,因为没有配置证书,所以会显示“此网站的安装证书存在问题”的警告,点击“继续浏览此网站”项,输入合适的域账户名和密码,在“RemoteApp和桌面”栏中双击目标程序,点击“连接”,就可以运行该程序。对于域中的主机来说,即使不进行任何配置,因为受到域架构的信任,可以实现SSO单点身份验证功能,即输入域账户名和密码,就可以顺利访问RD会话主机。但是,工作组中的客户端不受域架构信任,访问RD会话主机时,需要在RDWeb主机上进行身份验证,还要到RD代理主机上进行身份验证。
提交多域名证书申请
为了针对RD连接代理实现SSO单一登录功能,同时为了实现安全访问RDS服务,就需要使用证书加以应对。为了提高证书的使用效率,可以将RD Web、RD代理服务、RD网关等主机的多个域名绑定到单张证书上,实现多域名证书功能。在域中任意主机(例如Rserver1)上运行“gpupdate /force”命令,使其信任CA证书颁发机构。运行“mmc”程序,在控制台中点击“文件→添加/删除管理单元”项,选择“证书”,点击“添加”,选择“计算机账户”将其导入。
在控制台左侧选择“证书→高级操作→创建自定义请求→Active Directory注册策略→下一步”按钮,在自定义请求窗口中的“模板”列表中选择“Web服务器”,在下一步窗口中选择“Web服务器”,在详细信息栏中点击“属性”,在打开窗口中的“使用者”面板中的“使用者名称”列表中选择“公用名”项,在“值”栏中输入合适的名称,例如“app.xxx.com”。点击“添加”将其添加到列表中。在“类型”列表中选择“DNS”项,在“值”栏中分别输入并添加以上域名,例如rserver1.xxx.com,rserver3.xxx.com,rdgate.xxx.com等。在“常规”面板中输入名称,在“私钥”面板中的“密钥选项”栏中选择“使私钥可以导出”和“允许私钥存档”项:点击确定按钮保存配置。在下一步窗口中点击浏览按钮,导出后缀为“.req”的请求文件。
下载多域名证书
点击完成按钮,返回控制台。使用记事本打开上述请求文件,复制内容,在浏览器中访问“https://192.168.1.2/certsrv”,在弹出页面中点击“申请证书→高级证书申请”链接,点击“使用base64编码的CMC或PKCS#10文件提交一个证书,或使用base64编码的PKCS#7续订证书申请”链接,在“保存的申请”栏中粘贴申请文件内容,在“证书模板”列表中选择所需的模板,例如Web服务器。点击“提交”按钮,在证书已颁发页面中点击“下载证书”链接,将后缀为“.cer”的证书文件下载到本地。
在控制台左侧的“证书→个人”项的右键菜单上点击“所有任务→导入”,选择上述证书文件,点击完成将证书导入,该步骤其实就是让公钥和私钥建立关联。选择“证书→个人”,在右侧选择导入的证书,在右键菜单上点击“所有任务→导出”项,在向导界面中选择“是,导出私钥”项,在安全窗口中选择“密码”项,输入密码后,将其导出为独立的PFX文件,例如“zhengshu.pfx”。这样,就取得了包含多域名的证书。在Rserver3等主机上执 行“gupdate /force”命令,使其信任根证书颁发机构。如果从公网CA颁发机构获取的证书,无需执行该操作。
导入多域名证书
在Rserver1上打开服务器管理器,在左侧选择“远程桌面服务→集合”,在右上角点击“任务→编辑部署属性”项,在部署属性窗口左侧点击“证书”项,在管理证书窗口中的“角色服务”列表中选择“RD Web访问”项,点击“选择现有的证书→浏览”,选择上述“zhengshu.pfx”文件,输入对应的密码,选择“允许向目标计算机上受信任的根证书颁发机构证书存储中添加证书”项,将该证书导入到本地。点击“确定”保存配置,返回上一级窗口点击应用按钮,可以看到RD Web访问的状态显示为“成功”,表示证书配置完成。按照同样的方法,分别选择“RD连接代理-启用单一登录”和“RD连接代理-正在发布”角色,分别配置证书。
当在客户端访问“https://rserver3.xxx.com/reweb” 网 址 的 话,就会发现关于证书的警告消失了。对于工作组客户端来说,需要访问“http://192.168.1.2/certsrv”网址,依次点击“下载CA证书、证书链或CRL”和“下载CA证书”链接,下载后缀为“.cer”的证书。在该证书文件的右键菜单上点击“安装”项,在向导界面中选择“将所有的证书放入下列存储”项,点击浏览按钮选择“受信任的根证书颁发机构”项。点击下一步完成证书的安装操作。之后就可以顺利访问RD Web服务器。当工作组中的客户端访问时,因为具有了SSO认证功能,可以避免多次身份验证的繁琐。
发布RDS服务,从公网上访问虚拟程序
如果希望将RDS服务发布到Internet上,必须依靠RD网关的支持。在上述概述窗口中选择“RD网关”,在选择服务器窗口中选择“rdgate”服务器,将其添加进来。点击下一步,在“SSL证书名称”栏中输入FQDN名称,例如“rdgate.xxx.ocm”。点击“添加”即可在名为RDgate的主机上安装RD网关角色。之后在上述部署属性窗口左侧选择“证书”,在右侧的“角色服务”列表中选择“RD网关”,点击“选择已有的证书”按钮,按照上述方法配置证书。
RD网关实际上充当反向代理的作用,当外网用户通过防火墙访问内网中的RD Web主机时,RD Web主机返回操作页面给客户端,客户端再通过内网中的RD网关访问所需资源。RD网关的重要作用还在于可以屏蔽内网中的服务器,让RD会话主机之类的服务器无需面对公网用户,大大提高了内网的安全性。因为客户端和RD Web以及RD网关之间都是通过TCP 443端口建立连接,因此需要在防火墙提供两个IP,分别映射到RD Web主机和RD网关上。
配置简单的防火墙
这里为了便于说明,使用一台Windows Server 2008服务器扮演防火墙角色,安装路由和远程访问服务,配置两块网卡,分别连接内网和外网,在外网连接上绑定两个IP,例如100.61.199.1和100.61.199.2,分 别 对应Rserver3.xxx.com和Rdgate.xxx.com域名。这两个域名需要在公网上注册,即客户端可以从Internet上进行解析。
在路由和远程访问窗口左侧选择本机名,在右键菜单上点击“配置并启用路由和远程访问”项,在向导界面中选择“网络地址转换”项,点击下一步,选择“使用此公共端口连接到Internet”项,在列表中选择外部链接,点击完成启动路由和远程访问服务。在左侧选择“IPv4→NAT”,在右侧选择外部连接接口,在属性窗口的“地址池”面板中点击“添加”,输入IP范围为从100.61.199.1到100.61.199.2。
在“服务和端口”面板中点击“添加”按钮,在打开窗口中输入服务的描述信息,选择“在此地址池项”项,输 入“100.61.199.1”,传输端口设置为443,专用地址为192.168.1.30,即RD Web主机的地址,传输端口为443,点击确定就可以将“100.61.199.1”映射到RD Web主机上。同理,再添加一个服务,将“100.61.199.2”映射到RD网关主机上。
执行访问测试操作
为了便于测试,可以在客户端上打开“C:WindowsSystem32Driversetc”目录,编 辑 其 中 的“hosts”文 件,在 其 中 添 加“100.61.199.1 rserver3.xxx.com”,“100.61.199.2 rdgate.xxx.com” 两 行,来进行最简单的域名解析。这样,当外网用户访问“https://rserver3.xxx.com/reweb”网址,就可以访问内网中的RD Web服务器来使用RemoteApp程序。
实际上,当使用远程桌面时,可以通过RD网关转接,例如在客户端运行“mstsc.exe”程 序,在远程桌面连接窗口底部点击“显示选项”项,在“常规”面板中的“计算机”栏中输入RD会话主机名,例如“rserver1.xxx.com”,在“高级”面板中点击“设置”按钮,在“连接设置”栏中选择“使用这些RD网关服务器设置”项,输入RD网关服务器名,例如Rdgate.xxx.com。在“登录方法”列表中选择“询问密码(NTLM)”项,点击确定按钮,就可以通过RD网关连接到目标服务器上。这样,就避免了将TCP 3389暴露在公网上,提高了安全性。