Citrix Virtual Apps and Desktops

安全注意事项和最佳实践

注意:

您的组织可能需要满足特定的安全标准以符合法规要求。本文档不涵盖此主题,因为此类安全标准会随时间变化。有关安全标准和 Citrix 产品的最新信息,请查阅 Citrix 信任中心

防火墙

使用外围防火墙保护环境中的所有计算机,包括在适当情况下保护安全区域边界。

环境中的所有计算机都必须受到个人防火墙的保护。安装核心组件和 VDA 时,如果检测到 Windows 防火墙服务(即使防火墙未启用),您可以选择自动打开组件和功能通信所需的端口。您也可以选择手动配置这些防火墙端口。如果您使用其他防火墙,则必须手动配置。有关所需端口的详细信息,请参阅 技术白皮书:Citrix 技术使用的通信端口

如果您要将传统环境迁移到此版本,可能需要重新定位现有外围防火墙或添加新的外围防火墙。例如,假设数据中心中有一个位于传统客户端和数据库服务器之间的外围防火墙。使用此版本时,必须将该外围防火墙放置在虚拟桌面和用户设备位于一侧,而数据中心中的数据库服务器和 Delivery Controller 位于另一侧的位置。因此,请考虑在数据中心内创建一个安全区域以包含数据库服务器和 Controller。此外,还应考虑在用户设备和虚拟桌面之间提供保护。

注意:

TCP 端口 1494 和 2598 用于 ICA 和 CGP,因此很可能在防火墙上打开,以便数据中心外部的用户可以访问它们。Citrix 建议您不要将这些端口用于其他任何用途,以避免无意中将管理界面暴露给攻击的可能性。端口 1494 和 2598 已在 Internet 编号分配机构 (http://www.iana.org/) 正式注册。

与 Delivery Controller™ 的安全通信

使用 HTTPS 加密通信

StoreFront 和 NetScaler Gateway 通过 HTTP 或 HTTPS 与在 Delivery Controller 上运行的 XML 服务通信。根据配置,VDA 可能会使用 WebSocket 与 Delivery Controller 通信。Director 通过 HTTP 或 HTTPS 使用 OData 与监视数据通信。建议您启用 HTTPS 并禁用 HTTP。这要求您在 Delivery Controller 上启用 TLS

安全密钥

您可以使用安全密钥来确保只有授权的 StoreFront 和 NetScaler 服务器能够通过云连接器连接到 DaaS。如果您已启用 XML 信任,这一点尤其重要。

XML 信任

默认情况下,当 StoreFront 连接到 Delivery Controller 以执行枚举和启动等操作时,StoreFront 必须传递用户的 Active Directory 凭据,以便 DaaS 可以对用户进行身份验证并检查用户的组成员身份。但是,当使用其他身份验证方法(例如域直通、智能卡或 SAML)时,StoreFront 不具有 Active Directory 密码。在这种情况下,您必须启用“XML 信任”。启用 XML 信任后,Citrix Virtual Apps and Desktops 允许 StoreFront 代表用户执行操作,例如枚举和启动应用程序,而无需验证用户的密码。在启用 XML 信任之前,请使用安全密钥或其他机制(例如防火墙或 IPsec)来确保只有受信任的 StoreFront 服务器能够连接到 Delivery Controller。

使用 Citrix Virtual Apps and Desktops PowerShell SDK 检查、启用或禁用 XML 信任设置。

  • 要检查 XML 信任设置的当前值,请运行 Get-BrokerSite 并检查 TrustRequestsSentToTheXMLServicePort 的值。
  • 要启用或禁用 XML 信任,请运行 Set-BrokerSite 并使用参数 TrustRequestsSentToTheXmlServicePort

VDA 与 Delivery Controller 之间的通信

VDA 与 Controller 之间有两种通信机制。

  • Windows Communication Foundation

    Windows Communication Foundation (WCF) 消息级保护可确保 Delivery Controller 与 VDA 之间的通信安全。这消除了使用 TLS 进行额外传输级保护的需要。VDA 与 Delivery Controller 之间通信的默认端口是 80。但是,您可以自定义该端口。有关信息,请参阅自定义 VDA

    有关 WCF 中消息安全的信息,请参阅 Microsoft 文档 WCF 中的消息安全性

    WCF 配置使用 Kerberos 在 Controller 和 VDA 之间进行相互身份验证。加密使用具有 256 位密钥的 CBC 模式下的 AES。消息完整性使用 SHA-1。

根据 Microsoft 的说法,WCF 使用的安全协议符合 OASIS(结构化信息标准促进组织)的标准,包括 WS-SecurityPolicy 1.2。此外,Microsoft 还指出 WCF 支持 Security Policy 1.2 中列出的所有算法套件。

Controller 和 VDA 之间的通信使用 basic256 算法套件,其算法如前所述。

WCF 配置使用基于 HTTP 协议的 SOAP 以及消息级安全加密。

  • WebSockets

这是 WCF 的现代替代方案。它提供了一个优势,即 VDA 到 Delivery Controller 的通信仅使用 TLS 端口 443。它目前仅适用于 MCS 预配的计算机。有关详细信息,请参阅 VDA 和 Delivery Controller 之间的 WebSocket 通信

Delivery Controller 和许可证服务器之间的安全通信

Delivery Controller 通过 HTTPS 与许可证服务器通信。默认情况下,它使用自签名证书,但建议您将其替换为企业或公共证书颁发机构颁发的证书。有关详细信息,请参阅手动安装 Citrix Licensing Manager 和 Web Services for Licensing 使用的证书

Web 浏览器与 Web Studio 和 Director 之间的安全通信

Web Studio 和 Director 可以安装在与 Delivery Controller 相同的计算机上,也可以安装在单独的计算机上。用户使用 Web 浏览器连接到 Web Studio 和 Director。默认情况下,Web Studio 使用自签名证书启用 HTTPS,而独立安装的 Director 不配置 HTTPS。建议您使用适当的证书在 Web Studio 和 Director 上启用 TLS

保护 ICA® 通信

Citrix Virtual Apps and Desktops™ 提供了多种选项来保护客户端与 VDA 之间的 ICA 流量。以下是可用选项:

  • 基本加密: 默认设置。
  • SecureICA: 允许使用 RC5 (128 位) 加密来加密会话数据。
  • VDA TLS/DTLS: 允许使用 TLS/DTLS 进行网络级加密。

基本加密

使用基本加密时,流量加密如下图所示。

使用基本加密时的流量加密

SecureICA

使用 SecureICA 时,流量加密如下图所示。

使用 SecureICA 时的流量加密

有关详细信息,请参阅安全策略设置

注意 1:

当使用 Workspace app for HTML5 时,不支持 SecureICA。

注意 2:

Citrix SecureICA 是 ICA/HDX 协议的一部分,但它不是像传输层安全性 (TLS) 那样的符合标准的网络安全协议。

VDA TLS/DTLS

使用 VDA TLS/DTLS 加密时,流量加密如下图所示。

使用 TLS/DTLS 时的流量加密

要配置 VDA TLS/DTLS,请参阅 VDA 上的 TLS 设置

虚拟通道

使用虚拟通道允许列表来控制您的环境中允许哪些非 Citrix 虚拟通道。

与打印服务器的安全通信

您可以为 Virtual Delivery Agent (VDA) 和 Universal Print Server 之间基于 TCP 的连接启用 TLS。有关详细信息,请参阅Universal Print Server 上的传输层安全性 (TLS)

与站点数据库的安全通信

有关启用与站点数据库的 TLS 的信息,请参阅 CTX137556

VDA 计算机安全性

一般建议

确保您的 VDA 及时更新最新的操作系统安全更新和防病毒软件。

应用程序安全性

为防止非管理员用户执行恶意操作,Citrix® 建议您配置 Windows AppLocker 规则,用于 VDA 主机上的安装程序、应用程序、可执行文件和脚本。

8.3 文件名

您可以在 VDA 上禁用 8.3 文件名。请参阅 Microsoft fsutil 文档

数据存储注意事项

您的桌面环境可能包含各种类型的桌面,例如池化桌面和专用桌面。用户绝不能将数据存储在用户之间共享的桌面(例如池化桌面)上。如果用户将数据存储在专用桌面上,则如果该桌面以后可供其他用户使用,则必须删除该数据。

用户帐户管理

应用 Windows 帐户管理最佳实践。在 Machine Creation Services 或 Provisioning Services 复制模板或映像之前,不要在模板或映像上创建帐户。不要使用存储的特权域帐户安排任务。不要手动创建共享的 Active Directory 计算机帐户。这些做法将有助于防止计算机攻击获取本地持久帐户密码,然后使用这些密码登录到属于其他人的 MCS/PVS 共享映像。

仅授予用户所需的权限。Microsoft Windows 权限继续以常规方式应用于桌面:通过用户权限分配配置权限,并通过组策略配置组成员身份。此版本的一个优点是,可以向用户授予桌面的管理权限,而无需同时授予对存储桌面的计算机的物理控制权。

规划桌面权限时请注意以下事项:

  • 默认情况下,当非特权用户连接到桌面时,他们会看到运行该桌面的系统时区,而不是其自己的用户设备时区。有关如何允许用户在使用桌面时查看其本地时间的信息,请参阅“管理交付组”一文。
  • 作为桌面管理员的用户对该桌面拥有完全控制权。如果桌面是池化桌面而不是专用桌面,则必须信任该用户,以确保其对该桌面的所有其他用户(包括未来用户)负责。该桌面的所有用户都需要了解这种情况对其数据安全造成的潜在永久风险。此注意事项不适用于仅有一个用户的专用桌面;该用户不应是任何其他桌面的管理员。
  • 作为桌面管理员的用户通常可以在该桌面上安装软件,包括潜在的恶意软件。用户还可能监视或控制连接到桌面的任何网络上的流量。

管理登录权限

用户帐户和计算机帐户都需要登录权限。与 Microsoft Windows 权限一样,登录权限继续以常规方式应用于桌面:通过用户权限分配配置登录权限,并通过组策略配置组成员身份。

Windows 登录权限包括:本地登录、通过远程桌面服务登录、通过网络登录(从网络访问此计算机)、作为批处理作业登录和作为服务登录。

对于计算机帐户,仅授予计算机所需的登录权限。Delivery Controller 的计算机帐户需要“从网络访问此计算机”登录权限。

对于用户帐户,仅授予用户所需的登录权限。

根据 Microsoft 的说法,默认情况下,“远程桌面用户”组被授予“允许通过远程桌面服务登录”的登录权限(域控制器除外)。

您组织的安全性策略可能明确规定应从该登录权限中移除此组。请考虑以下方法:

  • 适用于多会话操作系统的 Virtual Delivery Agent (VDA) 使用 Microsoft 远程桌面服务。您可以将“远程桌面用户”组配置为受限组,并通过 Active Directory 组策略控制该组的成员资格。有关详细信息,请参阅 Microsoft 文档。
  • 对于 Citrix Virtual Apps™ and Desktops 的其他组件,包括适用于单会话操作系统的 VDA,“远程桌面用户”组不是必需的。因此,对于这些组件,“远程桌面用户”组不需要“允许通过远程桌面服务登录”的登录权限;您可以将其移除。此外:
    • 如果您通过远程桌面服务管理这些计算机,请确保所有此类管理员都已是 Administrators 组的成员。
    • 如果您不通过远程桌面服务管理这些计算机,请考虑在这些计算机上禁用远程桌面服务本身。

尽管可以将用户和组添加到“拒绝通过远程桌面服务登录”的登录权限,但通常不建议使用拒绝登录权限。有关详细信息,请参阅 Microsoft 文档。

Delivery Controller 安全性

Delivery Controller 上的 Windows 服务

Delivery Controller 安装会创建以下 Windows 服务:

  • Citrix AD Identity Service (NT SERVICE\CitrixADIdentityService):管理 VM 的 Microsoft Active Directory 计算机帐户。
  • Citrix Analytics (NT SERVICE\CitrixAnalytics):如果站点管理员已批准此收集,则收集站点配置使用信息供 Citrix 使用。然后,它将此信息提交给 Citrix,以帮助改进产品。
  • Citrix App Library (NT SERVICE\CitrixAppLibrary):支持 AppDisks 的管理和预配、AppDNA 集成以及 App-V 的管理。
  • Citrix Broker Service (NT SERVICE\CitrixBrokerService):选择用户可用的虚拟桌面或应用程序。
  • Citrix Configuration Logging Service (NT SERVICE\CitrixConfigurationLogging):记录管理员对站点进行的所有配置更改和其他状态更改。
  • Citrix Configuration Service (NT SERVICE\CitrixConfigurationService):用于共享配置的站点范围存储库。
  • Citrix Delegated Administration Service (NT SERVICE\CitrixDelegatedAdmin):管理授予管理员的权限。
  • Citrix Environment Test Service (NT SERVICE\CitrixEnvTest):管理其他 Delivery Controller 服务的自检。
  • Citrix Host Service (NT SERVICE\CitrixHostService):存储有关 Citrix Virtual Apps 或 Citrix Virtual Desktops 部署中使用的虚拟机管理程序基础结构的信息,并提供控制台用于枚举虚拟机管理程序池中资源的功能。
  • Citrix Machine Creation Services (NT SERVICE\CitrixMachineCreationService):协调桌面 VM 的创建。
  • Citrix Monitor Service (NT SERVICE\CitrixMonitor):收集 Citrix Virtual Apps 或 Citrix Virtual Desktops 的指标,存储历史信息,并为故障排除和报告工具提供查询接口。
  • Citrix StoreFront Service (NT SERVICE\ CitrixStorefront):支持 StoreFront 的管理。(它不属于 StoreFront 组件本身。)
  • Citrix StoreFront Privileged Administration Service (NT SERVICE\CitrixPrivilegedService):支持 StoreFront 的特权管理操作。(它不属于 StoreFront 组件本身。)
  • Citrix Config Synchronizer Service (NT SERVICE\CitrixConfigSyncService):将配置数据从主站点数据库传播到本地主机缓存。
  • Citrix High Availability Service (NT SERVICE\CitrixHighAvailabilityService):在主站点数据库不可用时,选择用户可用的虚拟桌面或应用程序。

Delivery Controller 安装还会创建以下 Windows 服务。这些服务在与其他 Citrix 组件一起安装时也会创建:

  • Citrix Diagnostic Facility COM Server (NT SERVICE\CdfSvc):支持收集诊断信息供 Citrix 支持使用。
  • Citrix Telemetry Service (NT SERVICE\CitrixTelemetryService):收集诊断信息供 Citrix 分析,以便管理员可以查看分析结果和建议,以帮助诊断站点问题。

Delivery Controller 安装还会创建以下 Windows 服务。此服务目前未使用。如果已启用,请将其禁用。

  • Citrix Remote Broker Provider (NT SERVICE\XaXdCloudProxy)

Delivery Controller 安装还会创建以下 Windows 服务。这些服务目前未使用,但必须启用。请勿禁用它们。

  • Citrix Orchestration Service (NT SERVICE\CitrixOrchestration)
  • Citrix Trust Service (NT SERVICE\CitrixTrust)

除 Citrix StoreFront™ Privileged Administration Service 外,这些服务被授予“作为服务登录”的登录权限以及“调整进程的内存配额”、“生成安全审核”和“替换进程级令牌”的特权。您无需更改这些用户权限。Delivery Controller 不使用这些特权,并且它们会自动禁用。

除 Citrix StoreFront Privileged Administration service 和 Citrix Telemetry Service 外,前面列出的 Delivery Controller Windows 服务均配置为以 NETWORK SERVICE 身份登录。请勿更改这些服务设置。

Citrix Config Synchronizer Service 需要 NETWORK SERVICE 帐户属于 Delivery Controller 上的本地管理员组。这允许本地主机缓存正常工作。

Citrix StoreFront Privileged Administration service 配置为以 Local System (NT AUTHORITY\SYSTEM) 身份登录。这是 Delivery Controller StoreFront 操作所必需的,这些操作通常不适用于服务(包括创建 Microsoft IIS 站点)。请勿更改其服务设置。

Citrix Telemetry Service 配置为以其自己的服务特定身份登录。

您可以禁用 Citrix Telemetry Service。除了此服务以及已禁用的服务之外,请勿禁用任何其他 Delivery Controller Windows 服务。

管理登录权限

VDA 的计算机帐户必须具有“从网络访问此计算机”的登录权限。请参阅基于 Active Directory OU 的 Controller 发现

客户端访问

客户端访问通常通过部署 Citrix StoreFront 提供。有关保护 StoreFront 的更多信息,请参阅 StoreFront 文档

为了让远程用户安全连接到 StoreFront 和 VDA,请部署 NetScaler® Gateway。

Citrix 建议客户端使用 Citrix Workspace 应用程序连接到 StoreFront。有关更多信息,请参阅适用于各个操作系统的 Citrix Workspace 应用程序文档的安全部分。或者,用户可以使用 Web 浏览器访问 StoreFront。

考虑为用户提供瘦客户端,在这些瘦客户端上,用户运行 Citrix Workspace™ 应用程序以外的应用程序的能力有限。如果设备由您的组织管理,您应该制定策略以确保部署操作系统安全更新和防病毒软件。但是,在许多情况下,用户需要能够从组织控制范围之外的非托管设备进行连接。考虑使用以下功能:

  • 端点分析 用于扫描端点以获取操作系统和防病毒等安全信息,并拒绝不符合您的安全要求的客户端的访问。
  • 应用程序保护 阻止键盘记录器和屏幕捕获。

混合版本环境

混合版本环境(例如 VDA 版本与 Delivery Controller 版本不同)在某些升级过程中是不可避免的。请遵循最佳实践,并尽量缩短不同版本的 Citrix 组件共存的时间。在混合版本环境中,安全策略(例如)可能无法统一实施。

注意:

这在其他软件产品中很常见。使用早期版本的 Active Directory 只能部分地通过更高版本的 Windows 实施组策略。

以下场景描述了在特定混合版本 Citrix 环境中可能发生的安全问题。当使用 Citrix Receiver 1.7 连接到在 XenApp and XenDesktop 7.6 Feature Pack 2 中运行 VDA 的虚拟桌面时,策略设置 允许桌面和客户端之间传输文件 在站点中已启用,但无法由运行 XenApp and XenDesktop 7.1 的 Delivery Controller 禁用。它无法识别此策略设置,因为该设置是在产品的更高版本中发布的。此策略设置允许用户将文件上传和下载到其虚拟桌面,这是一个安全问题。要解决此问题,请将 Delivery Controller(或 Studio 的独立实例)升级到 7.6 Feature Pack 2 版本,然后使用组策略禁用该策略设置。或者,在所有受影响的虚拟桌面上使用本地策略。

远程电脑访问安全注意事项

远程电脑访问 实施以下安全功能:

  • 支持智能卡使用。
  • 当远程会话连接时,办公室电脑的显示器显示为空白。
  • 远程电脑访问将所有键盘和鼠标输入重定向到远程会话,但 CTRL+ALT+DEL 以及支持 USB 的智能卡和生物识别设备除外。
  • SmoothRoaming 仅支持单个用户。
  • 当用户有连接到办公室电脑的远程会话时,只有该用户可以恢复对办公室电脑的本地访问。要恢复本地访问,用户在本地电脑上按 Ctrl-Alt-Del,然后使用远程会话所用的相同凭据登录。如果您的系统具有适当的第三方凭据提供程序集成,用户还可以通过插入智能卡或利用生物识别技术来恢复本地访问。可以通过通过组策略对象 (GPO) 启用快速用户切换或编辑注册表来覆盖此默认行为。

注意:

Citrix 建议您不要将 VDA 管理员权限分配给普通会话用户。

自动分配

默认情况下,远程电脑访问支持将多个用户自动分配给 VDA。在 XenDesktop 5.6 Feature Pack 1 中,管理员可以使用 RemotePCAccess.ps1 PowerShell 脚本覆盖此行为。此版本使用注册表项来允许或禁止多个自动远程电脑分配。此设置适用于整个站点。

注意:

不正确地编辑注册表可能会导致严重问题,可能需要您重新安装操作系统。Citrix 无法保证能够解决因不正确使用注册表编辑器而导致的问题。请自行承担使用注册表编辑器的风险。在编辑注册表之前,请务必备份注册表。

要将自动分配限制为单个用户:

在站点中的每个 Controller 上,设置以下注册表项:

HKEY\_LOCAL\_MACHINE\Software\Citrix|DesktopServer
Name: AllowMultipleRemotePCAssignments
Type: REG_DWORD
Data: 0 = 禁用多用户分配, 1 = (默认) 启用多用户分配。

如果存在任何现有用户分配,请使用 SDK 命令将其删除,以便 VDA 随后有资格进行单个自动分配。

  • 从 VDA 中删除所有已分配的用户:$machine.AssociatedUserNames | %{ Remove-BrokerUser-Name $_ -Machine $machine
  • 从交付组中删除 VDA:$machine | Remove-BrokerMachine -DesktopGroup $desktopGroup

重新启动物理办公室电脑。