Linux Virtual Delivery Agent 2112

影子会话

会话影子功能允许域管理员在内网中查看用户的 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)

    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 协议。对于会话影子功能,选择 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 中,找到目标会话,然后在会话详细信息视图中单击影子以向 Linux VDA 发送影子请求。

Image of the shadow tab in the session details view

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

Image of whether to allow an administrator to shadow this session

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

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

限制

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