安全注意事项和最佳实践

注意:

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

防火墙

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

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

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

注意:

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

与 交付控制器™ 的安全通信

使用 HTTPS 加密通信

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

安全密钥

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

XML 信任

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

使用 Citrix 虚拟应用和桌面 PowerShell SDK 来检查、启用或禁用 XML 信任设置。

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

VDA 与交付控制器之间的通信

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

  • Windows 通信基础框架

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

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

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

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

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

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

  • 网络套接字

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

保护 Delivery Controller 和许可证服务器之间的通信

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

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 协议进行网络级加密。

基本加密

当使用基本加密时,数据流量会按照以下图示进行加密。

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

安全ICA

使用 SecureICA 时,流量会按以下图示进行加密。

使用 SecureICA 时的流量加密

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

注意 1:

SecureICA 在使用 HTML5 版 工作区应用程序 时不受支持。

注意 2:

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

虚拟投递代理 TLS/DTLS 配置

使用 VDA TLS/DTLS 加密时,流量会按以下图示进行加密。

使用 TLS/DTLS 时的流量加密

要配置 VDA 的传输层安全协议 (TLS) 和数据报传输层安全协议 (DTLS),请参阅VDA 上的 TLS 设置

虚拟通道

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

与打印服务器的安全通信

您可以为虚拟投递代理 (VDA) 和通用打印服务器之间的基于 TCP 的连接启用 TLS。有关详细信息,请参阅通用打印服务器上的传输层安全性 (TLS)

与站点数据库的安全通信

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

VDA 计算机安全性

一般性指导原则

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

应用程序安全性

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

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 的说法,默认情况下,Remote Desktop Users 组被授予“允许通过远程桌面服务登录”的登录权限(域控制器除外)。

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

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

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

交付控制器安全性

交付控制器上的 Windows 服务

交付控制器安装会创建以下 Windows 服务:

  • Citrix 活动目录身份服务 (NT SERVICE\CitrixADIdentityService):管理用于虚拟机的微软活动目录计算机帐户。
  • Citrix Analytics (NT SERVICE\CitrixAnalytics):如果站点管理员已批准此收集,则收集供 Citrix 使用的站点配置使用情况信息。然后将此信息提交给 Citrix,以帮助改进产品。
  • Citrix 应用库 (NT SERVICE\CitrixAppLibrary):支持 应用磁盘 的管理和预配、应用DNA 集成以及 应用虚拟化 的管理。
  • Citrix 代理服务 (NT SERVICE\CitrixBrokerService):负责选择可供用户使用的虚拟桌面或应用程序。
  • Citrix 配置日志记录服务 (NT SERVICE\CitrixConfigurationLogging):记录管理员对站点所做的所有配置更改和其他状态更改。
  • 思杰配置服务 (NT 服务\CitrixConfigurationService):用于全站点共享配置的存储库。
  • Citrix 委派管理服务 (NT SERVICE\CitrixDelegatedAdmin):负责管理和分配授予系统管理员的各项权限。
  • Citrix 环境测试服务 (NT SERVICE\CitrixEnvTest):管理其他交付控制器服务的自检。
  • Citrix 主机服务 (NT SERVICE\CitrixHostService):存储有关 Citrix Virtual Apps 或 Citrix Virtual Desktops 部署中使用的虚拟机管理程序基础结构的信息,并提供控制台用于枚举虚拟机管理程序池中资源的功能。
  • 思杰机器创建服务 (NT 服务\CitrixMachineCreationService):协调桌面虚拟机的创建。
  • 思杰监控服务 (NT SERVICE\CitrixMonitor):收集 思杰虚拟应用 或 思杰虚拟桌面 的指标,存储历史信息,并为故障排除和报告工具提供查询界面。
  • Citrix StoreFront Service (NT SERVICE\ CitrixStorefront): Supports management of StoreFront. (It is not part of the StoreFront component itself.)
  • 思杰店面特权管理服务 (NT SERVICE\CitrixPrivilegedService):支持店面的特权管理操作。(它不属于店面组件本身。)
  • Citrix 配置同步服务 (NT SERVICE\CitrixConfigSyncService):将配置数据从主站点数据库传播到本地主机缓存。
  • Citrix 高可用性服务 (NT SERVICE\CitrixHighAvailabilityService):在主站点数据库不可用时,选择可供用户使用的虚拟桌面或应用程序。

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

  • Citrix 诊断工具 COM 服务器 (NT SERVICE\CdfSvc):支持收集诊断信息供 Citrix 支持人员使用。
  • Citrix 遥测服务 (NT SERVICE\CitrixTelemetryService):收集诊断信息供 Citrix 分析,以便管理员可以查看分析结果和建议,从而帮助诊断站点问题。

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

  • 思杰远程代理提供程序(此服务的 Windows 系统内部名称为 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 特权管理服务和 Citrix 遥测服务外,前面列出的交付控制器 Windows 服务都配置为以 NETWORK SERVICE 身份登录。请勿更改这些服务设置。

Citrix 配置同步服务需要 NETWORK SERVICE 帐户属于 Delivery Controller 上的本地管理员组。这使得本地主机缓存能够正常工作。

Citrix StoreFront 特权管理服务配置为以本地系统 (NT AUTHORITY\SYSTEM) 身份登录。这是 Delivery Controller StoreFront 操作所必需的,这些操作通常不适用于服务(包括创建 Microsoft IIS 站点)。请勿更改其服务设置。

Citrix 遥测服务配置为以其自身的服务专用身份登录。

您可以禁用 Citrix 遥测服务。除了此服务和已禁用的服务之外,请勿禁用任何其他这些 Delivery Controller Windows 服务。

管理登录权限

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

客户端访问

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

为了允许远程用户安全连接到 StoreFront 和 VDA,请部署 NetScaler® 网关。

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 版本,然后使用组策略禁用此策略设置。或者,在所有受影响的虚拟桌面上使用本地策略。

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

远程电脑访问(/zh-cn/citrix-virtual-apps-desktops/2411/install-configure/remote-pc-access.html)实现了以下安全功能:

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

注意:

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

自动分配功能

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

注意:

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

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

在站点的每个控制器上,设置以下注册表项:

HKEY\_LOCAL\_MACHINE\Software\Citrix|DesktopServer
Name: AllowMultipleRemotePCAssignments
Type: REG_DWORD
Data: 0 = Disable multiple user assignment, 1 = (Default) Enable multiple user assignment.

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

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

重新启动物理办公电脑。