安全注意事项和最佳实践
注意:
您的组织可能需要满足特定的安全标准以符合法规要求。本文档不涵盖此主题,因为此类安全标准会随时间变化。有关安全标准和 Citrix 产品的最新信息,请查阅 Citrix Trust Center。
防火墙
使用外围防火墙保护环境中的所有计算机,包括在适当情况下保护安全区域边界。
环境中的所有计算机都必须受到个人防火墙的保护。安装核心组件和 VDA 时,如果检测到 Windows 防火墙服务(即使防火墙未启用),您可以选择自动打开组件和功能通信所需的端口。您也可以选择手动配置这些防火墙端口。如果您使用不同的防火墙,则必须手动配置它。有关所需端口的更多信息,请参阅 技术白皮书:Citrix 技术使用的通信端口。
如果您要将传统环境迁移到此版本,可能需要重新定位现有外围防火墙或添加新的外围防火墙。例如,假设数据中心中传统客户端和数据库服务器之间存在外围防火墙。使用此版本时,必须将该外围防火墙放置在虚拟桌面和用户设备位于一侧,而数据中心中的数据库服务器和 Delivery Controller 位于另一侧的位置。因此,请考虑在数据中心内创建一个安全区域以包含数据库服务器和 Controller。此外,还应考虑在用户设备和虚拟桌面之间提供保护。
注意:
TCP 端口 1494 和 2598 用于 ICA 和 CGP,因此很可能在防火墙上打开,以便数据中心外部的用户可以访问它们。Citrix 建议您不要将这些端口用于其他任何用途,以避免无意中将管理界面暴露于攻击的风险。端口 1494 和 2598 已在 Internet 号码分配机构 (http://www.iana.org/) 正式注册。
保护与 交付控制器™ 的通信
使用 HTTPS 加密通信
StoreFront 和 NetScaler Gateway 通过 HTTP 或 HTTPS 与在 交付控制器 上运行的 XML 服务通信。根据配置,VDA 可能会使用 WebSocket 与 交付控制器 通信。Director 通过 HTTP 或 HTTPS 使用 OData 与监视数据通信。建议您启用 HTTPS 并禁用 HTTP。这要求您 在 交付控制器 上启用 TLS。
-
要配置 StoreFront 以使用 HTTPS 连接,请参阅 为 Citrix 虚拟应用和桌面添加资源源 和 添加 Citrix 网关设备。
-
要配置 NetScaler 网关以使用 HTTPS 连接到交付控制器,请参阅 在 NetScaler 网关上配置安全票证颁发机构。
安全密钥
您可以使用 安全密钥 来确保只有授权的 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 软件开发工具包 检查、启用或禁用 XML 信任设置。
- 要检查 XML 信任设置的当前值,请运行
Get-BrokerSite并检查TrustRequestsSentToTheXMLServicePort的值。 - 要启用或禁用 XML 信任,请运行
Set-BrokerSite并使用参数TrustRequestsSentToTheXmlServicePort。
VDA 与交付控制器之间的通信
VDA 与控制器之间进行通信有两种机制。
-
Windows Communication Foundation
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 以及消息级安全加密。
-
Web 套接字
这是 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 协议实现网络层面的加密。
基本加密
当使用基本加密时,数据流量会按照以下图示进行加密。

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

有关详细信息,请参阅 安全策略设置
注意 1:
当使用适用于 HTML5 的 Workspace 应用程序时,不支持 SecureICA。
注意 2:
Citrix SecureICA 是 ICA/HDX 协议的一部分,但它不是像传输层安全 (TLS) 那样的符合标准的网络安全协议。
VDA 传输层安全/数据报传输层安全
当使用 VDA TLS/DTLS 加密时,流量会按以下图示进行加密。

要配置 VDA TLS/DTLS,请参阅 虚拟投递代理上的 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 服务:
- 思杰活动目录身份服务 (NT SERVICE\CitrixADIdentityService):管理用于虚拟机的微软活动目录计算机帐户。
- Citrix Analytics (NT SERVICE\CitrixAnalytics):如果站点管理员已批准此收集,则收集站点配置使用信息供 Citrix 使用。然后将此信息提交给 Citrix,以帮助改进产品。
- Citrix 应用程序库 (NT SERVICE\CitrixAppLibrary):支持应用磁盘的管理和预配、应用DNA 集成以及应用虚拟化的管理。
- 思杰代理服务 (NT SERVICE\CitrixBrokerService):选择可供用户使用的虚拟桌面或应用程序。
- Citrix 配置日志记录服务 (NT SERVICE\CitrixConfigurationLogging):记录管理员对站点所做的所有配置更改和其他状态更改。
- Citrix Configuration Service (NT SERVICE\CitrixConfigurationService): Site-wide repository for shared configuration.
- Citrix Delegated Administration Service (NT SERVICE\CitrixDelegatedAdmin): Manages the permissions granted to administrators.
- Citrix 环境测试服务 (NT SERVICE\CitrixEnvTest):管理其他交付控制器服务的自检。
- Citrix 主机服务 (NT SERVICE\CitrixHostService):存储有关在 Citrix Virtual Apps 或 Citrix Virtual Desktops 部署中使用的虚拟机管理程序基础结构的信息,并提供控制台用于枚举虚拟机管理程序池中资源的功能。
- Citrix Machine Creation Services (NT SERVICE\CitrixMachineCreationService): Orchestrates the creation of desktop VMs.
- Citrix 监控服务 (NT SERVICE\CitrixMonitor):收集 Citrix 虚拟应用或 Citrix 虚拟桌面的指标,存储历史信息,并为故障排除和报告工具提供查询界面。
- 思杰店面服务 (NT SERVICE\ CitrixStorefront):支持店面的管理。(它不是店面组件本身的一部分。)
- 思杰店面特权管理服务 (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 服务。此服务目前未使用。如果已启用,请将其禁用。
- Citrix Remote Broker Provider (NT SERVICE\XaXdCloudProxy)
Delivery Controller 安装还会创建以下 Windows 服务。这些服务目前未使用,但必须启用。请勿禁用它们。
- Citrix Orchestration Service (NT SERVICE\CitrixOrchestration)
- Citrix Trust Service (NT SERVICE\CitrixTrust)
除了 Citrix StoreFront™ 特权管理服务之外,这些服务都被授予“作为服务登录”的登录权限以及“调整进程内存配额”、“生成安全审核”和“替换进程级别令牌”的特权。您无需更改这些用户权限。Delivery Controller 不使用这些特权,并且它们会自动禁用。
除了 Citrix StoreFront 特权管理服务和 Citrix 遥测服务之外,前面列出的 Delivery Controller Windows 服务都配置为以 NETWORK SERVICE 身份登录。请勿更改这些服务设置。
Citrix 配置同步服务需要 NETWORK SERVICE 帐户属于 Delivery Controller 上的本地管理员组。这使得本地主机缓存能够正常工作。
Citrix StoreFront 特权管理服务配置为以本地系统 (NT AUTHORITY\SYSTEM) 身份登录。这是 Delivery Controller StoreFront 操作所必需的,这些操作通常不适用于服务(包括创建 Microsoft IIS 站点)。请勿更改其服务设置。
Citrix Telemetry Service 配置为以其自身的服务特定身份登录。
您可以禁用思杰遥测服务。除了此服务以及已禁用的服务之外,请勿禁用任何其他交付控制器 Windows 服务。
管理登录权限
VDA 的计算机帐户必须具有登录权限“从网络访问此计算机”。请参阅 (/zh-cn/advanced-concepts/implementation-guides/ad-ou-controller-discovery.html)。
客户端访问
客户端访问通常通过部署 (/zh-cn/storefront) 来提供。有关保护 StoreFront 的更多信息,请参阅 (/zh-cn/storefront/current-release/install-standard/secure)。
为允许远程用户安全连接到 StoreFront 和 VDA,请部署 NetScaler® 网关。
Citrix 建议客户端使用 Citrix Workspace 应用程序连接到 StoreFront。有关更多信息,请参阅适用于每个操作系统的 Citrix Workspace 应用程序的 (/zh-cn/citrix-workspace-app.html) 中的安全部分。或者,用户可以使用 Web 浏览器访问 StoreFront。
考虑为用户提供瘦客户端,其中用户运行 Citrix Workspace™ 应用程序以外的应用程序的能力有限。如果设备由您的组织管理,您应该制定策略以确保部署操作系统安全更新和防病毒软件。然而,在许多情况下,用户需要能够从组织控制之外的非托管设备进行连接。请考虑使用以下功能:
- 端点分析 扫描端点以获取安全信息,例如操作系统和防病毒软件,并拒绝不符合您的安全要求的客户端的访问。
- (/zh-cn/citrix-workspace-app/app-protection.html) 阻止键盘记录器和屏幕捕获。
混合版本部署环境
混合版本环境(例如 VDA 版本与 Delivery Controller 版本不同)在某些升级过程中是不可避免的。请遵循最佳实践,并尽量缩短不同版本的 Citrix 组件共存的时间。在混合版本环境中,安全策略(例如)可能无法统一执行。
注意:
这与其他软件产品类似。使用早期版本的 Active Directory 只能部分地与更高版本的 Windows 强制执行组策略。
以下场景描述了在特定混合版本 Citrix 环境中可能出现的安全问题。当使用 Citrix Receiver 1.7 连接到运行 XenApp 和 XenDesktop 7.6 Feature Pack 2 中 VDA 的虚拟桌面时,策略设置 允许桌面和客户端之间传输文件 在站点中已启用,但无法由运行 XenApp 和 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 无法保证可以解决因不正确使用注册表编辑器而导致的问题。请自行承担使用注册表编辑器的风险。在编辑注册表之前,请务必备份注册表。
要将自动分配限制为单个用户:
在站点的每个控制器上,设置以下注册表项:
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
重新启动物理办公电脑。