Linux Virtual Delivery Agent 2109

影子会话

会话影子功能允许域管理员在内网中查看用户的 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 上启用以下存储库:

  • 适用于企业版 Linux 的额外软件包 (EPEL)

    EPEL 存储库是 python-websockifyx11vnc 都需要的。运行以下命令以启用 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 协议。对于会话影子功能,选择 ws:// 还是 wss:// 由前面提到的“ShadowingUseSSL”注册表决定。默认情况下,选择 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 安装服务器和客户端证书。请咨询您组织的安全团队,了解他们获取证书所需的方法。

重要提示:

  • 服务器证书的公用名必须是 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,您必须在证书管理器 (Certificate Manager) 的颁发机构 (Authorities) 选项卡上导入您的根 SSL 证书。

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

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

用法

在 Citrix Director 中,找到目标会话,然后在会话详细信息 (Session Details) 视图中单击影子 (Shadow) 以向 Linux VDA 发送影子请求。

会话详细信息视图中影子选项卡的图像

连接初始化后,ICA 会话客户端(而非 Citrix Director 客户端)上会显示一条确认消息,请求用户允许影子会话。

是否允许管理员影子此会话的图像

如果用户单击 (Yes),Citrix Director 端会显示一个窗口,指示 ICA 会话正在进行影子操作。

有关用法的更多信息,请参阅 Citrix Director 文档

限制

  • 会话影子功能仅设计用于内网。即使通过 Citrix Gateway 连接,它也无法用于外部网络。Citrix 不对在外部网络中使用 Linux VDA 会话影子功能承担任何责任。
  • 启用会话影子功能后,域管理员只能查看 ICA 会话,但无权写入或控制它。
  • 管理员从 Citrix Director 中单击影子 (Shadow) 后,会显示一条确认消息,请求用户允许影子会话。只有当会话用户授予权限后,才能进行会话影子操作。
  • 前面提到的确认消息有 20 秒的超时限制。当时间用完时,影子请求将失败。
  • 一个 ICA 会话只能由一个管理员在一个 Citrix Director 窗口中进行影子操作。如果 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.loghdx.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 之间是否有足够的端口可用于新的影射请求。
影子会话