Citrix网关

RDP代理

RDP代理功能是作为Citrix网关的一部分提供的。在典型的部署中,RDP客户机在远程用户的机器上运行。Citrix Gateway设备部署在DMZ中,RDP服务器场部署在内部公司网络中。

远程用户;

  1. 连接到Citrix网关的公网IP地址
  2. 建立SSL VPN连接
  3. 进行身份验证
  4. 通过Citrix网关设备访问远程桌面

无客户端VPN和ICA Proxy方式均支持RDP-proxy特性。

注意:

Citrix网关不支持RDSH (Remote Desktop Session Host)、Remote App、RDS多用户、RDP会话。

以下RDP代理特性提供了通过Citrix网关访问远程桌面场的功能。

  • 通过无客户端VPN或ICA Proxy方式(不支持全隧道)保护RDP流量。

  • 通过Citrix Gateway单点登录到RDP服务器。如果需要,还提供了禁用SSO的选项。

  • 强制(SmartAccess)功能,Citrix ADC管理员可以通过Citrix Gateway配置禁用某些RDP功能。

  • 单/无状态(双)网关解决方案,满足所有需求(VPN/ICA/RDP/Citrix端点管理)。

  • 兼容本地Windows MSTSC客户端的RDP,无需任何自定义客户端。

  • 在MACOSX、iOS和Android上使用现有的微软提供的RDP客户端。

部署示意图如下图所示:

RDP代理概述

通过无客户端VPN部署

在这种模式下,RDP链接通过网关的主页或门户网站作为书签发布添加VPN url配置或通过外部门户。用户可以单击这些链接来访问远程桌面。

通过ICA代理部署

在网关VIP上配置自定义首页wihome参数。该主页可以自定义为允许用户访问的远程桌面资源列表。这个自定义页面可以托管在Citrix ADC上,或者如果是外部的,它可以是现有Gateway门户页面中的iFrame。

在这两种模式下,用户单击预置的RDP链接或图标后,对应资源的HTTPS请求都会到达Citrix网关。网关为请求的连接生成RDP文件内容,并将其推送到客户端。调用本机RDP客户端,并连接到Gateway上的RDP侦听器。网关通过支持强制(SmartAccess)向RDP服务器进行SSO。网关根据Citrix ADC的配置,阻止客户端访问某些RDP特性,然后在RDP客户端和服务器之间代理RDP流量。

执行细节

Citrix ADC管理员可以通过配置Citrix网关配置部分RDP功能。Citrix Gateway为重要的RDP参数提供了“RDP强制”功能。Citrix ADC确保客户端不能启用被阻塞的参数。如果阻塞的参数被启用,RDP强制特性将取代启用客户端的参数,并且它们不会被执行。

重要的是:强制特性仅在启用单点登录时生效。

支持用于强制执行的RDP参数

支持以下重定向参数的强制执行。这些参数可以作为RDP客户端配置文件的一部分进行配置。

  • 剪贴板重定向

  • 打印机重定向

  • 磁盘驱动器重定向

  • COM端口重定向

  • PNP设备重定向

连接流

连接流程可分为两个步骤:

  • RDP资源枚举和RDP文件下载。
  • 启动RDP连接。

根据上述连接流程,有两种部署方案:

  • 无状态(双)网关解决方案——RDP资源枚举和RDP文件下载通过认证网关进行,而RDP连接启动通过RDP侦听器网关进行。

  • 单网关解决方案——RDP资源枚举、RDP文件下载和RDP连接启动都通过同一个网关进行。

无状态(双)网关兼容性

部署示意图如下图所示:

双网关兼容性

  • 用户连接到认证网关VIP并提供凭据。

  • 成功登录网关后,用户将被重定向到主页或外部门户,其中列举了用户可以访问的远程桌面资源。

  • 一旦用户选择了RDP资源,Authenticator Gateway VIP就会接收到该格式的请求https://vserver-vip/rdpproxy/rdptarget/listener用户单击的已发布资源。该请求包含用户选择的RDP服务器的IP地址和端口信息。

  • Authenticator Gateway处理/rdpproxy/请求。因为用户已经通过了身份验证,所以该请求带有一个有效的Gateway cookie。

  • RDPTargetRDPUser信息保存在STA服务器上,生成STA Ticket。存储在STA服务器上的信息使用配置的预共享密钥进行加密。认证网关使用网关虚拟服务器上配置的STA服务器之一。

  • 在/rdpproxy/请求中获得的' Listener '信息被放入.rdp文件作为“fulladdress,然后将STA票证(预先附带STA AuthID)放入.rdp文件作为“loadbalanceinfo。”

  • .rdp文件发送回客户端端点。

  • 本地RDP客户端启动并连接到RDPListener网关。它在初始数据包中发送STA票证。

    RDPListener网关验证STA票证并获得RDPTargetRDPUser信息。中提供的“AuthID”来检索要使用的STA服务器loadbalanceinfo

  • 创建网关会话用于存储授权/审计策略。如果该用户存在会话,则该会话将被重用。

  • RDPListener网关连接到RDPTarget并使用CREDSSP进行单点登录。

重要的是:

  • 对于无状态的RDP代理,STA服务器验证RDP客户端发送的STA票证,以获得RDP代理的状态RDPTarget / RDPUser信息。除了VPN虚拟服务器外,还需要绑定STA服务器。

单网关兼容性

部署示意图如下图所示:

单网关兼容性

重要的是:

在单网关部署的情况下,不需要STA服务器。验证方网关对RDPTarget和Citrix身份验证、授权和审计会话cookie安全地发送loadbalanceinfo.rdp文件。当RDP客户端在初始数据包中发送此令牌时,验证器网关将对该令牌进行解码RDPTarget信息,查找会话,并连接到RDPTarget

支持单个监听器

  • RDP和SSL流量的单一侦听器。

  • 可以通过Citrix ADC设备上相同的2元组(即IP和端口)来处理RDP文件下载和RDP流量。

RDP代理的License要求

高级版,高级版

注意:

只有Gateway平台许可证或只有标准版的客户无法使用RDP代理功能。

可以使用以下命令开启RDP代理功能。

启用功能rdpProxy 

书签

通过Portal生成RDP链路。不需要为用户配置RDP链接或通过外部门户发布RDP链接,您可以通过提供以下选项,让用户生成自己的urltargerIP:端口。对于无状态RDP-proxy部署,管理员可以将FQDN: Port格式的RDP监听器信息作为RDP Client Profile的一部分。这是在rdpListener选择。该配置用于双网关模式下通过门户生成RDP链路。

书签

创建书签

  1. 在门户页面上创建书签以访问RDP资源:(实际url以rdp: / /)。

  2. 添加VPN url

    • URL格式如下:rdp: / / < TargetIP:端口>
    • 对于无状态RDP代理方式,URL必须是以下格式:rdp: / / < TargetIP: Port > / < ListenerIP:端口>

    • 网址以以下格式发布在门户网站上:https:// < VPN-VIP > / rdpproxy / < TargetIP:端口>https:// < VPN-VIP > / rdpproxy / < TargetIP: Port > / < ListenerIP:端口>
  3. 将书签绑定到用户、组、VPN虚拟服务器或VPN全局。

RDP代理需要启用的功能和模式

-启用ns feature SSL -启用ns feature SSLVPN -启用ns feature rdpproxy -启用模式usnip 

RDP代理高级配置步骤

以下高级步骤涉及无状态RDP代理配置。

  • 创建RDP服务器配置文件
  • 创建RDP客户端配置文件
  • 创建并绑定虚拟服务器
  • 创建书签
  • 创建或编辑会话配置文件或策略
  • 装订书签

配置客户端配置文件

在验证方网关上配置客户端配置文件。下面是一个配置示例:

添加rdpClient概要文件<名称> [-addUserNameInRdpFile(是的|不)][-audioCaptureMode(启用|禁用)][-keyboardHook < keyboardHook >] [-multiMonitorSupport(启用|禁用)][相移键控<字符串>][-rdpCookieValidity < positive_integer >] [-rdpCustomParams <字符串>][-rdpFileName <字符串>][-rdpHost <可选的FQDN将RDP文件中的“fulladdress >] [-rdpUrlOverride(启用|禁用)][-redirectClipboard(启用|禁用)][-redirectComPorts(启用|禁用)[-redirectDrives (ENABLE | DISABLE)] [-redirectPnpDevices (ENABLE | DISABLE)] [-redirectPrinters (ENABLE | DISABLE)] [-videoPlaybackMode (ENABLE | DISABLE)] 

关联RDP客户端配置文件和VPN虚拟服务器。

这可以通过配置sessionAction+sessionPolicy或设置全局VPN参数来实现。

例子:

add vpn sessionaction  -rdpClientprofile  add vpn sessionpolicy  NS_TRUE  bind vpn vserver  -policy  -priority  

设置vpn参数-rdpClientprofile  

配置服务器配置文件

在侦听器网关上配置服务器配置文件。

添加rdpServer配置文件 -rdpIP < RDP监听器的IPV4地址> -rdpPort <终止RDP客户端连接的端口> -psk <解密RDPTarget/RDPUser信息的密钥,使用STA时需要> ' 

rdpServer配置文件必须在VPN虚拟服务器上配置。

添加vpn vserver v1 SSL   -rdpServerProfile  ' 

示例配置

通过命令行配置RDP代理

下面是一个使用命令行配置RDP代理的示例。

  • 为目标信息的用户添加VPN URL。

    添加aaa用户Administrator -password freebsd123$%^ add vpn url rdp RdpLink rdp://rdpserverinfo添加dns address rdpserverinfo 10.102.147.132绑定aaa用户Administrator -urlName rdp 
  • 配置VPN连接的RDP客户端和服务器配置文件。

    add rdp clientprofile p1 -psk citrix -redirectClipboard ENABLE添加rdpserverprofile p1 -rdpIP 10.102.147.134 -psk citrix添加vpn vserver mygateway SSL 10.102.147.134 443 -rdpserverprofile p1设置vpn参数-clientlessVpnMode ON -defaultAuthorizationAction允许-rdpClientProfileName p1添加SSL certKey gatewaykey -cert rdp_rootcert。ssl vserver mygateway -certkeyName gatewaykey 
  • ADD SNIP用于从Citrix ADC连接到目标。

    add ns ip 10.102.147.135 255.255.255.0 -type SNIP 

使用GUI配置RDP代理

  1. 导航到Citrix网关>策略,右键单击RDP,并按使功能

  2. 在导航窗格中单击RDP。在右侧选择客户端配置文件选项卡并单击添加

  3. 为客户端概要文件输入一个名称并进行配置。

    为配置文件添加名称

  4. 在RDP Host字段中,输入解析到RDP代理侦听器的FQDN,该FQDN通常与Citrix Gateway设备的FDQN相同。

  5. 预共享密钥,输入密码,单击好吧

    预共享密钥密码

  6. 输入服务器概要文件名称。

  7. 输入要绑定此配置文件的网关虚拟服务器的IP地址。

  8. 输入您为RDP客户端配置文件配置的相同的预共享密钥。点击创建

    重新输入预共享密钥密码

  9. 如果要在左侧的Clientless Access门户页面上添加RDP书签,请展开Citrix网关,扩大资源,并按书签

  10. 在右侧单击添加

  11. 给Bookmark起一个名字。

  12. URL输入rdp://MyRDPServer使用IP或DNS

  13. 选择使用Citrix网关作为反向代理并点击创建

  14. 根据需要创建书签。

    添加多个书签

  15. 创建或编辑会话配置文件。导航到Citrix网关>策略>会话

  16. 在“安全性”选项卡上设置默认授权动作允许。或者您可以使用授权策略来控制访问。

    设置默认认证动作

  17. 在Remote Desktop选项卡上,选择前面创建的RDP客户端配置文件。

    选择RDP客户端配置文件

  18. 如果你想使用书签,在客户体验选项卡,设置Clientless访问

    将无客户端访问设置为On

  19. 发布应用程序选项卡,确保“ICA Proxy”是

    “ICA Proxy”设置为“OFF”

  20. 修改或创建网关虚拟服务器。

  21. 基本设置部分中,点击更多的

    设置基本设置

  22. 使用RDP服务器配置文件列表选择前面创建的RDP服务器配置文件。

    使用RDP服务器配置文件

  23. 向下滚动。确保ICA只未被选中。

    “ICA only”设置为“off”

  24. 绑定证书

  25. 绑定认证策略。

  26. 绑定配置了RDP客户端配置文件的会话策略/配置文件。

    绑定会话策略

  27. 您可以将书签绑定到Citrix Gateway虚拟服务器或身份验证、授权和审计组。如果需要绑定Citrix网关虚拟服务器,请在右侧的“高级设置”区域单击发布应用程序

    点击已发布的应用程序

  28. 在左边,在发布应用程序部分中,点击没有网址

    No URL

  29. 绑定你的书签。

    绑定的书签

  30. 由于没有为此Citrix Gateway虚拟服务器指定ICA Only,因此请确保正确配置了Citrix Gateway Universal许可证。在左边,展开Citrix网关并点击全局设置

    设置全局设置

  31. 在右侧单击更改身份验证AAA设置

    更改身份验证设置

  32. 改变最大用户数到你的许可限度。

    设置最大用户数

  33. 如果您希望使用DNS连接到RDP服务器,请确保在设备上配置了DNS服务器(流量管理> DNS >名称服务器

    配置DNS服务器

  34. 如果您希望使用短名称而不是fqdn,请添加DNS后缀(流量管理> DNS > DNS后缀)

    使用的fqdn

  35. 连接到您的网关并登录。

    连接到网关

  36. 如果你配置了书签,点击书签

    单击书签

  37. 您可以将地址栏更改为/ rdpproxy MyRDPServer。可以输入IP地址(例如rdpproxy/192.168.1.50)或DNS名称(/rdpproxy/myserver)。

    更改地址栏

  38. 打开下载的.rdp文件

    下载RDP文件

  39. 可通过执行查看当前连接的用户Citrix网关策略> RDP。右边是连接选项卡。

    单击连接选项卡

禁用SSO的选项

通过配置Citrix ADC流量策略,可以禁用RDP代理的SSO(单点登录)功能,以便始终提示用户输入凭据。当禁用SSO时,RDP强制(SmartAccess)不起作用。

例子:

add vpn trafficaction  HTTP -SSO OFF 

流量策略可以根据需要进行配置,举例如下:

  • 禁用所有流量的单点登录。

    add vpn trafficpolicy  "url包含rdpproxy"  
  • 禁用基于源/目的IP/FQDN的单点登录

    add vpn trafficPolicy  "HTTP.REQ.URL.CONTAINS(\"rdpproxy\") && CLIENT.IP.SRC.EQ()" bind vpnvserver rdp -policy  -priority 10