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. RDPListener Gateway 使用 CREDSSP 连接到 RDPTarget 和单点登录。

必备条件

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

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

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

使用 CLI 配置无状态 RDP 代理

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

    注意:

    • 一旦在 VPN 虚拟服务器上配置了 RDP 服务器配置文件,就无法对其进行修改。此外,同一 ServerProfile 不能在另一台 VPN 虚拟服务器上重复使用。
     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-->
    

    示例

     add vpn vserver v1 SSL 1.1.1.1 443 -rdpServerProfile rdp_server_prof  
     <!--NeedCopy-->
    

    重要提示:

    • 同一 STA 服务器必须同时绑定到 RDP 身份验证器网关和侦听器网关。

    • 对于无状态 RDP 代理,STA 服务器会验证 RDP 客户端发送的 STA 票证,以获取 RDP 目标服务器和 RDP 用户的信息。除了 VPN 虚拟服务器之外,还必须绑定 STA 服务器。在以下示例中,RDP 目标服务器为 1.1.1.0,RDP 侦听器网关虚拟服务器为 1.1.1.2。

         add vpn url url4 RDP2 "rdp://1.1.1.0/1.1.1.2:443"
     <!--NeedCopy-->
    

使用以下命令在身份验证器网关上配置客户端配置文件:

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 配置用于单个网关部署中。只有 psk 是必填参数,必须与 RDP 侦听器网关的 RDP 服务器配置文件中添加的 psk 相同。

  • 将 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 shell 上 nsconmsg 命令的一部分。计划稍后添加查看这些计数器的 CLI 命令。

升级说明

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

无状态 RDP 代理