Citrix Gateway

无状态 RDP 代理

无状态 RDP 代理访问 RDP 主机。当用户在单独的 Citrix Gateway 身份验证器 RDPListener 上进行身份验证时,将通过 Citrix Gateway 上的授予访问权限。Citrix Gateway 所需的 RDPListener 信息安全地存储在 STA 服务器上。只要 Citrix Gateway 和应用程序枚举服务器可以访问 STA 服务器,就可以将 STA 服务器放置在任何地方。有关详细信息,请参阅 https://support.citrix.com/article/CTX101997

连接流程

RDP 代理流程中涉及两个连接。第一个连接是用户与 Citrix Gateway VIP 的 SSL VPN 连接,以及 RDP 资源的枚举。

第二个连接是与 Citrix Gateway 上的 RDP 侦听器(使用 RDPip 和 RDPort 配置)的本机 RDP 客户端连接,以及随后将 RDP 客户端安全地代理到服务器数据包。

连接流程图

  1. 用户连接到身份验证器网关 VIP 并提供凭据。

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

  3. 用户选择 RDP 资源后,身份验证器网关 VIP 将收到一个请求,格式表 https://AGVIP/rdpproxy/ip:port/rdptargetproxy 示用户单击的已发布资源。此请求包含有关用户选择的 RDP 服务器的 IP 和端口的信息。

  4. 身份验证器网关处理 /rdpproxy/ 请求。由于用户已经通过身份验证,因此此请求附带有有效的网关 cookie。

  5. RDPTargetRDPUser 信息存储在 STA 服务器上,然后生成 STA 票证。信息存储为 XML blob,可以选择使用配置的预共享密钥对其进行加密。如果加密,则 blob 将进行 base64 编码和存储。身份验证器网关使用在网关虚拟服务器上配置的 STA 服务器之一。

  6. XML blob 采用以下格式

    <Value name=”IPAddress”>ipaddr</Value>\n<Value name=”Port”>port</Value>n
    
    <Value name=”`Username`”>username</Value>\n<Value name=”Password”>pwd</Value>
    <!--NeedCopy-->
    
  7. 在 /rdpproxy/ 请求中 rdptargetproxy 获得的将作为 ‘fulladdress’ 放置,STA 票证(预先附有 STA AuthID)作为放 loadbalanceinfo 在 .rdp 文件中。

  8. .rdp 文件将被发送回客户端端点。

  9. 本机 RDP 客户端启动并连接到 RDPListener Gateway。它以最初的 x.224 数据包发送 STA 票证。

  10. RDPListener Gateway 验证 STA 票证并获取 RDPTargetRDPUser 信息。要使用的 STA 服务器是使用中存在的 “AuthID” 检索的 loadbalanceinfo

  11. 创建 Gateway 会话用于存储授权/审核策略。如果用户存在会话,则会重复使用该会话。

  12. 使用 CREDSSP RDPListener Gateway 连接到 RDPTarget 和单点登录。

必备条件

  • 用户已在 Citrix Gateway 身份验证器上进行身份验证。

  • 初始 /rdpproxy URL 和 RDP 客户端连接到另一个 RDPListener Citrix Gateway

  • 使用 STA 服务器的身份验证器网关可以安全地传递 RDPListener Gateway 信息。

使用 CLI 配置无状态 RDP 代理

  • 添加配 rdpServer 置文件。服务器配置文件在上配置 RDPListener Gateway

    注意:

    • 一旦在 VPN 虚拟服务器上配置了 RDP 服务器配置文件,就无法对其进行修改。此外,同一 ServerProfile 不能在另一台 VPN 虚拟服务器上重复使用。
    • 之前在 VPN 虚拟服务器上配置的 RdpIP 和 rdPort 是 RdpServerProfile 的一部分。将 rdp Profile 重命名为, rdp ClientProfile 并删除参数 clientSSL。因此,早期的配置不起作用。
     add rdpServer Profile [profilename] -rdpIP [IPV4 address of the RDP listener] -rdpPort [port for terminating RDP client connections] -psk [key to decrypt RDPTarget/RDPUser information, needed while using STA].
     <!--NeedCopy-->
    

    使用以下命令在 VPN 虚拟服务器上配置 RDP 服务器配置文件:

     add vpn vserver v1 SSL [publicIP] [portforterminatingvpnconnections] -rdpServerProfile [rdpServer Profile]
     <!--NeedCopy-->
    

    重要:

    • 对于无状态 RDP 代理,STA 服务器会验证 RDP 客户端发送的 STA 票证以获取 RDPTarget/RDPUser 信息。除了 VPN 虚拟服务器之外,还必须绑定 STA 服务器。例如;
         add vpn url url4 RDP2 "rdp://1.1.1.0/1.1.1.2:443" ---> here RDP is 1.1.1.0 and 1.1.1.2 is the virtual server
     <!--NeedCopy-->
    

rdp 配置文件 命令被重命名为 rdpClient 配置文件 并具有新参数。添加了多显示器支持命令。此外,还添加了用于配置自定义参数的选项,这些参数作为 RDP 客户端配置文件的一部分不受支持。clientSSL 参数已被删除,因为连接始终是安全的。客户端配置文件是在身份验证器网关上配置的。

add rdpClient profile <name> -rdpHost <optional FQDN that will be put in the RDP file as ‘fulladdress’> [-rdpUrlOverride ( ENABLE | DISABLE )] [-redirectClipboard ( ENABLE | DISABLE )] [-redirectDrives ( ENABLE | DISABLE )]

        [-redirectPrinters ( ENABLE | DISABLE )] [-keyboardHook <keyboardHook>] [-audioCaptureMode ( ENABLE | DISABLE )] [-videoPlaybackMode ( ENABLE | DISABLE )]

        [-rdpCookieValidity <positive_integer>][-multiMonitorSupport ( ENABLE | DISABLE )] [-rdpCustomParams <string>]
<!--NeedCopy-->

—rdphost 配置用于单个网关部署中。

  • 将 RDP 配置文件与 VPN 虚拟服务器关联。

您可以通过配置会话操作 + 会话策略或设置全局 VPN 参数来关联 RDP 配置文件。

示例:

add vpn sessionaction <actname> -rdpClientprofile <rdpprofilename>

add vpn sessionpolicy <polname> NS_TRUE <actname>

bind vpn vserver <vservername> -policy <polname> -priority <prioritynumber>
<!--NeedCopy-->

set vpn parameter –rdpClientprofile <name>
<!--NeedCopy-->

使用 GUI 配置无状态 RDP 代理

无状态 RDP 代理配置涉及以下高级步骤。有关详细步骤,请参阅 RDP 代理配置

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

重要提示:

对于无状态 RDP 代理,除了 VPN 虚拟服务器之外,还必须绑定 STA 服务器。

连接计数器

添加了一个新的连接计数器 ns_rdp_tot_curr_active_conn,它保留了正在使用的活动连接数的记录。它可以被视为 Citrix ADC 外壳上 nsconmsg 命令的一部分。计划稍后添加查看这些计数器的 CLI 命令。

升级说明

之前在 VPN 虚拟服务器上配置的 RdpIP 和 rdPort 是 RdpServerProfile 的一部分。将 rdp Profile 重命名为, rdp ClientProfile 并删除参数 clientSSL。因此,早期的配置不起作用。

无状态 RDP 代理