Linux Virtual Delivery Agent 2109

重影会话

通过会话重影功能,域管理员可以在 Intranet 中查看用户的 ICA 会话。该功能使用 noVNC 连接到 ICA 会话,仅 RHEL 7.x 和 Ubuntu 16.04 支持该功能。

注意:

Citrix Director 的版本必须为 7.16 或更高版本,才能使用会话重影功能。

安装和配置

依赖项

会话重影需要两个新的依赖关系 python-websockifyx11vnc。在 Ubuntu 16.04 上安装 Linux VDA 时,会自动安装 python-websockifyx11vnc 依赖项。在 RHEL 7.x 上,必须在安装 Linux VDA 之后手动安装 python-websockifyx11vnc

在 RHEL 7.x 上运行以下命令以安装 python-websockifyx11vncx11vnc 版本 0.9.13 或更高版本)。

sudo yum install -y python-websockify x11vnc
<!--NeedCopy-->

要解决 python-websockifyx11vnc,请在 RHEL 7.x 上启用以下存储库:

  • 适用于 Enterprise Linux (EPEL) 的额外软件包

    python-websockifyx11vnc 都需要 EPEL 存储库。运行以下命令以启用 EPEL 存储库:

     sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-$(rpm -E '%{rhel}').noarch.rpm
     <!--NeedCopy-->
    
  • 可选 RPM

    要启用可选的 RPM 存储库以安装 x11vnc 的一些依赖项软件包,请运行以下任一命令:

    对于工作站:

     subscription-manager repos --enable=rhel-7-workstation-optional-rpms
     <!--NeedCopy-->
    

    对于服务器:

     subscription-manager repos --enable=rhel-7-server-optional-rpms
     <!--NeedCopy-->
    

端口

会话重影功能会自动选择 6001-6099 内的可用端口来建立从 Linux VDA 到 Citrix Director 的连接。因此,可以并行重影的 ICA 会话数不应超过 99 个。请确保有足够的端口可用来满足您的要求,尤其是多会话重影。

注册表

下表列出了相关注册表:

注册表 说明 默认值
EnableSessionShadowing 启用或禁用会话重影功能 1(启用)
ShadowingUseSSL 确定是否对 Linux VDA 和 Citrix Director 之间的连接加密 0(禁用)

可在 Linux VDA 上运行 ctxreg 命令来更改注册表值。例如,要禁用会话影子处理,请运行以下命令:

/opt/Citrix/VDA/bin/ctxreg update -k "HKLM\Software\Citrix\VirtualDesktopAgent" -v "EnableSessionShadowing" -d 0x00000000

SSL

Linux VDA 和 Citrix Director 之间的 noVNC 连接使用 WebSocket 协议。对于会话重影,由前面提及的“ShadowingUseSSL”注册表确定选择 ws://wss://。默认情况下,选择 ws://。但是,出于安全原因,我们建议您使用 wss://,并在每个 Citrix Director 客户端和每台 Linux VDA 服务器上安装证书。Citrix 拒绝承担使用 ws:// 进行 Linux VDA 会话重影的任何安全责任。

获取服务器证书和根 SSL 证书

证书必须由可信证书颁发机构 (CA) 签发。

对于要在其中配置 SSL 的每台 Linux VDA 服务器来说,都需要一份单独的服务器证书(包括密钥)。服务器证书标识特定的计算机,因此您必须知道每台服务器的完全限定的域名 (FQDN)。为了方便起见,您可以对整个域使用通配符证书。在这种情况下,您必须至少知道域名。

除了在每台服务器上安装一份服务器证书之外,还必须在与 Linux VDA 服务器通信的每个 Citrix Director 客户端上安装从同一 CA 获取的根证书。根证书可从颁发服务器证书的同一 CA 获得。您可以安装来自以下 CA 的服务器证书和客户端证书:与您的操作系统捆绑的 CA,企业 CA(组织授予您访问权限的 CA),或没有与您的操作系统捆绑的 CA。请咨询您组织的安全团队,了解他们需要使用哪种方法来获取证书。

重要

  • 服务器证书的公用名必须是 Linux VDA 服务器的确切 FQDN 或至少是正确的通配符加域字符。例如 vda1.basedomain.com 或 *.basedomain.com。
  • 哈希算法(包括 SHA1 和 MD5)对于数字证书中的签名而言太弱,某些浏览器不支持。因此,SHA-256 指定为最低标准。

在每个 Citrix Director 客户端上安装根证书

会话重影与 IIS 使用相同的基于注册表的证书存储,因此您可以使用 IIS 或 Microsoft 管理控制台 (MMC) 证书管理单元安装根证书。收到 CA 的证书后,可在 IIS 中重新启动 Web 服务器证书向导,然后此向导将安装该证书。另外,您可以在使用 MMC 并将证书作为独立的管理单元添加的计算机上,查看并导入证书。默认情况下,Internet Explorer 和 Google Chrome 会导入安装在操作系统上的证书。对于 Mozilla Firefox,必须在证书管理器的 Authorities(颁发机构)选项卡上导入您的根 SSL 证书。

在每台 Linux VDA 服务器上安装服务器证书及其密钥

将服务器证书命名为“shadowingcert.*”,并将密钥文件命名为“shadowingkey.*”(* 可以指示格式,例如 shadowingcert.csr 和 shadowingkey.key)。将服务器证书和密钥文件放在路径 /etc/xdl/shadowingssl 下,并使用受限权限适当地对其进行保护。如果名称或路径不正确,Linux VDA 将无法找到特定的证书或密钥文件,从而导致与 Citrix Director 的连接失败。

使用情况

在 Citrix Director 中,找到目标会话,然后单击会话详细信息视图中的重影以向 Linux VDA 发送重影请求。

会话详细信息视图中的重影选项卡的示意图

连接初始化后,ICA 会话客户端(不是 Citrix Director 客户端)上会显示一条确认消息,要求用户允许对会话进行重影。

是否允许管理员重影会话的示意图

如果用户单击,则 Citrix Director 端将显示一个窗口,指示正在重影 ICA 会话。

有关用法的详细信息,请参阅 Citrix Director 文档

限制

  • 会话重影仅适用于 Intranet。它不适用于外部网络,即使通过 Citrix Gateway 连接也是如此。Citrix 拒绝承担在外部网络中进行 Linux VDA 会话重影的任何责任。
  • 启用了会话重影后,域管理员只能查看 ICA 会话,但无权对其写入或控制。
  • 管理员在 Citrix Director 中单击重影后,系统会显示一条确认消息,要求用户允许对会话进行重影。只有在会话用户允许后才能对会话进行重影。
  • 前面提及的确认消息有超时限制,即 20 秒。超时后,重影请求将失败。
  • 在一个 Citrix Director 窗口中,一个 ICA 会话只能由一位管理员重影。如果某个 ICA 会话已由管理员 A 重影,此时,管理员 B 发送重影请求,则会在用户设备上重新出现要求用户允许的确认消息。如果用户同意,则管理员 A 的重影连接将停止,并为管理员 B 创建一个新的重影连接。如果同一位管理员发送另一个针对同一 ICA 会话的重影请求,也是同样情况。
  • 要使用会话重影,请安装 Citrix Director 7.16 或更高版本。
  • Citrix Director 客户端使用 FQDN 而不是 IP 地址来连接到目标 Linux VDA 服务器。因此,Citrix Director 客户端必须能够解析 Linux VDA 服务器的 FQDN。

故障排除

如果会话重影失败,请在 Citrix Director 客户端和 Linux VDA 上执行调试。

在 Citrix Director 客户端上

通过浏览器的开发人员工具,在控制台选项卡上检查输出日志。或者在网络选项卡上检查 ShadowLinuxSession API 的响应。如果出现了要求用户允许的确认消息,但无法建立连接,请手动 ping Linux VDA 的 FQDN 以验证 Citrix Director 是否可以解析 FQDN。如果 wss:// 连接出现问题,请检查您的证书。

在 Linux VDA 上

确认在出现重影请求时,是否显示要求用户允许的确认消息。如果没有,请检查 vda.log 和 hdx.log 文件以获取相关线索。要获取 vda.log 文件,请执行以下操作:

  1. 找到 /etc/xdl/ctx-vda.conf 文件。取消注释以下行以启用 vda.log 配置:

    Log4jConfig=”/etc/xdl/log4j.xml”

  2. 打开 /etc/xdl/log4j.xml,找到 com.citrix.dmc 部分,并将“info”更改为“trace”,如下所示:

     <!-- Broker Agent Plugin - Director VDA plugin Logger -->
    
      <logger name="com.citrix.dmc">
    
        <level value="trace"/>
    
      </logger>
    <!--NeedCopy-->
    
  3. 运行 service ctxvda restart 命令以重新启动 ctxvda 服务。

如果在建立连接期间出现错误:

  1. 检查是否有任何防火墙限制阻止会话重影打开端口。
  2. 在使用 SSL 的情况下,确认证书和密钥文件是否正确命名,并放在正确的路径下。
  3. 确认 6001-6099 之间是否有足够的端口用于新的重影请求。
重影会话