StoreFront

确保您的 StoreFront 部署安全

本文重点介绍在部署和配置 StoreFront 时可能影响系统安全的方面。

最终用户身份验证

通常,最终用户必须直接向 StoreFront 进行身份验证,或者向 StoreFront 前面的 Citrix Gateway 进行身份验证。有关可用身份验证方法的更多信息,请参阅身份验证

与最终用户的通信

Citrix 建议使用 HTTPS 保护用户设备与 StoreFront 之间的通信。这可确保客户端与 StoreFront 之间发送的密码和其他数据经过加密。此外,纯 HTTP 连接可能会受到各种攻击的威胁,例如中间人攻击,尤其是在从公共 Wi-Fi 热点等不安全位置建立连接时。在没有适当的 IIS 配置的情况下,StoreFront 使用 HTTP 进行通信。

根据您的配置,用户可以通过网关或负载均衡器访问 StoreFront。您可以在网关或负载均衡器处终止 HTTPS 连接。但是,在这种情况下,Citrix 仍然建议您使用 HTTPS 保护网关或负载均衡器与 StoreFront 之间的连接。

要启用 HTTPS,请禁用 HTTP 并启用 HSTS,请参阅使用 HTTPS 保护店面

在您的 NetScaler Gateway 或负载均衡器虚拟服务器上,您可以配置启用哪些 TLS 版本。建议您禁用早于 1.2 的旧版 TLS。

在 StoreFront 服务器上,Windows 和 IIS 决定允许哪些 TLS 版本用于传入连接。建议您禁用早于 1.2 的旧版 TLS。在 Windows Server 2025 上,TLS 1.0 和 1.1 默认禁用。在 Windows Server 2022 上,您可以配置 IIS 以禁用客户端连接的 TLS 1.0 和 1.1,请参阅使用 HTTPS 保护 StoreFront。在所有 Windows 服务器版本上,您可以使用组策略或 Windows 注册表设置禁用 TLS 1.0 和 1.1,请参阅Microsoft 文档

旧版 Citrix Receiver 无法使用 TLS 1.2 连接,有关更多详细信息,请参阅CTX232266

与交付控制器进行通信

Citrix 建议使用 HTTPS 协议保护 StoreFront 与您的 Citrix 虚拟应用和桌面交付控制器之间的数据传输。有关更多信息,请参阅在交付控制器上启用 HTTPS。要配置 StoreFront 以使用 HTTPS,请参阅添加 Citrix 虚拟应用和桌面站点添加 Citrix Gateway 设备。如果证书遭到泄露,您可以使用证书吊销列表 (CRL) 检查。StoreFront 使用 TLS 1.2 或更高版本与交付控制器通信。

建议您配置交付控制器和 StoreFront,以确保只有受信任的 StoreFront 服务器才能与交付控制器通信,请参阅管理安全密钥

与云连接器之间的通信

Citrix 建议使用 HTTPS 协议来保护 StoreFront 与您的 Cloud Connectors 之间的数据传输。请参阅 HTTPS 配置。要配置 StoreFront,请参阅 为 Citrix 桌面即服务添加站点添加 Citrix Gateway 设备。如果证书遭到泄露,您可以使用 证书吊销列表 (CRL) 检查。StoreFront 使用 TLS 1.2 或更高版本与 Cloud Connectors 进行通信。

建议您配置 DaaS 和 StoreFront,以确保只有受信任的 StoreFront 服务器才能与 Cloud Connectors 通信。有关详细信息,请参阅 管理安全密钥

与联合身份验证服务之间的通信

有关 StoreFront 与联合身份验证服务 (FAS) 服务器之间通信的信息,请参阅 联合身份验证服务 - 安全和网络配置

远程访问

Citrix 不建议将 StoreFront 服务器直接暴露在 Internet 上。Citrix 建议使用 Citrix Gateway 为远程用户提供身份验证和访问。

微软互联网信息服务 (IIS) 强化

您可以使用受限的 IIS 配置来配置 StoreFront。请注意,这不是默认的 IIS 配置。

文件名扩展名

您可以使用请求筛选来配置允许的文件扩展名列表,并禁止未列出的文件名扩展名。请参阅 IIS 文档

StoreFront 需要以下文件名扩展名:

  • . (空白扩展名)
  • 应用程序缓存文件
  • ASPX 页面文件
  • .cr
  • CSS 样式表文件
  • DTD 文件
  • GIF 图像文件
  • .htm 文件
  • .html
  • ICA® 文件
  • ICO 图标文件
  • JPG 图像文件
  • .js
  • PNG 图像文件
  • SVG 文件
  • 文本文件
  • XML 文件

如果为商店网站启用了 Citrix Workspace 应用程序的下载或升级,StoreFront 还需要以下文件扩展名:

  • DMG 磁盘映像文件
  • .exe 文件

如果启用了 Citrix Workspace 应用程序(适用于 HTML5),StoreFront 还需要以下文件扩展名:

  • .eot
  • .ttf 扩展名
  • .woff 扩展名
  • .wasm

谓词

您可以使用请求筛选来配置允许的谓词列表,并禁止使用未列出的谓词。请参阅 IIS documentation

  • GET
  • 提交
  • 首部

URL 地址中包含的非 ASCII 字符

如果您确保应用商店名称和网站名称仅使用 ASCII 字符,则 StoreFront URL 不会包含 ASCII 字符。您可以使用请求筛选来禁止使用非 ASCII 字符。请参阅 IIS documentation

MIME 类型设置

您可以删除与以下文件扩展名对应的操作系统 shell MIME 类型:

  • 可执行文件
  • 动态链接库
  • COM 文件
  • 批处理文件
  • C Shell 脚本文件扩展名

请参阅 IIS 文档

请从配置中移除 X-Powered-By 标头

默认情况下,IIS 在服务器级别包含一个标头 X-Powered-By,其值为 ASP.NET。StoreFront 会从所有 StoreFront 网站中删除此标头。您也可以在服务器级别删除此标头,这适用于服务器上的所有网站,请参阅 IIS 自定义标头文档

删除包含 IIS 版本的 Server 标头

默认情况下,IIS 通过添加 Server 标头来报告 IIS 版本。您可以将 IIS 配置为删除此标头。请参阅 IIS 请求筛选文档

将 StoreFront 网站移动到单独的分区

您可以将 StoreFront 网站托管在与系统文件分开的单独分区上。在 IIS 中,您必须在创建 StoreFront 部署之前,将 Default Web Site 移动到相应分区,或者在该分区上创建单独的站点。

IIS 功能

有关 StoreFront 安装和使用的 IIS 功能列表,请参阅 (/zh-cn/storefront/current-release/get-started/system-requirements.html) 中的系统要求。您可以删除其他 IIS 功能。

尽管 StoreFront 不直接使用 ISAPI 筛选器,但 ASP.NET 需要此功能,因此无法卸载。

处理程序映射

StoreFront 需要以下处理程序映射。您可以删除其他处理程序映射。

  • 无扩展名URL处理程序-集成-4.0
  • 页面处理程序工厂-集成-4.0
  • 静态文件

请参阅 IIS 处理程序文档

ISAPI 筛选器功能

StoreFront 不需要任何 ISAPI 筛选器。您可以删除所有 ISAPI 筛选器。但是,ASP.NET 需要 ISAPI Windows 功能。请参阅 IIS ISAPI 筛选器文档

.NET 授权规则

默认情况下,IIS 服务器将“.NET 授权规则”设置为“允许所有用户”。默认情况下,StoreFront 使用的网站会继承此配置。

如果您在服务器级别删除或更改 .NET 授权规则,则必须覆盖 StoreFront 使用的网站上的规则,以添加“所有用户”的允许规则并删除任何其他规则。

零售模式

您可以启用零售模式,请参阅 IIS 文档

应用程序池

StoreFront 创建以下应用程序池:

  • 思杰配置应用程序接口
  • Citrix 交付服务身份验证
  • Citrix 交付服务资源
  • 和 思杰接收器™ 适用于网页

请勿更改每个 IIS 应用程序使用的应用程序池或每个池的标识。如果您使用多个站点,则无法将每个站点配置为使用单独的应用程序池。

在“回收”设置下,您可以设置应用程序池空闲超时和虚拟内存限制。请注意,当“Citrix Receiver for Web”应用程序池回收时,会导致通过 Web 浏览器登录的用户注销,因此默认设置为每天 02:00 回收,以最大程度地减少中断。如果您更改任何回收设置,可能会导致用户在一天中的其他时间注销。

默认 IIS 登录页面

您可以从 c:\inetpub\wwwroot 删除文件 iisstart.htmwelcome.png

必需的设置

  • 请勿更改 IIS 身份验证设置。StoreFront 管理身份验证并使用适当的身份验证设置配置 StoreFront 站点的目录。
  • 对于 StoreFront 服务器,在 SSL 设置下,请勿选择 客户端证书: 要求。StoreFront 安装会使用此设置配置 StoreFront 站点的相应页面。
  • StoreFront 需要 Cookie 来实现会话状态和其他功能。在某些目录中,在 会话状态Cookie 设置下,模式必须设置为 使用 Cookie
  • StoreFront 要求将 .NET 信任级别设置为 完全信任。请勿将 .NET 信任级别设置为任何其他值。

服务

StoreFront installation creates the following Windows services:

  • Citrix Configuration Replication (NT SERVICE\CitrixConfigurationReplication)
  • Citrix Cluster Join (NT SERVICE\CitrixClusterService)
  • 思杰对等解析 (NT SERVICE\思杰对等解析服务)
  • 思杰凭据钱包 (NT SERVICE\思杰凭据钱包)
  • Citrix 订阅存储 (NT 服务\Citrix订阅存储)
  • Citrix 默认域服务 (NT 服务\Citrix默认域服务)

这些帐户以 Network Service 身份登录。请勿更改此配置。

If you configure StoreFront Kerberos constrained delegation for XenApp 6.5, this in addition creates the Citrix StoreFront Protocol Transition service (NT SERVICE\CitrixStoreFrontProtocolTransition). This service runs as NT AUTHORITY\SYSTEM. Do not change this configuration.

用户权限分配

修改默认的用户权限分配可能会导致 StoreFront 出现问题。具体而言:

  • Microsoft IIS 作为 StoreFront 安装的一部分启用。Microsoft IIS 授予内置组 IIS_IUSRS 登录权限作为批处理作业登录以及权限验证后模拟客户端。这是正常的 Microsoft IIS 安装行为。请勿更改这些用户权限。有关详细信息,请参阅 Microsoft 文档。

  • 安装 StoreFront 时,它会创建 应用程序池,IIS 会向其授予用户权限作为服务登录调整进程的内存配额生成安全审核替换进程级别令牌

  • 要创建或更改部署,管理员必须拥有权限还原文件和目录

  • 要使服务器加入服务器组,Administrators 组必须拥有权限还原文件和目录从网络访问此计算机管理审核和安全日志

  • 要使用用户名和密码身份验证(直接或通过网关)登录的用户,必须拥有权限允许本地登录,除非您已配置 StoreFront 通过交付控制器验证密码。

这不是一个全面的列表,可能还需要其他用户访问权限。

配置组成员身份

配置 StoreFront 服务器组时,以下服务将添加到 Administrators 安全组中:

  • Citrix Configuration Replication (NT SERVICE\CitrixConfigurationReplication)
  • Citrix 群集加入 (NT SERVICE\CitrixClusterService)。此服务仅在属于某个组的服务器上可见,并且仅在加入过程中运行。

这些组成员身份是 StoreFront 正常运行所必需的,以便:

  • 创建、导出、导入和删除证书,并设置其访问权限
  • 读取和写入 Windows 注册表
  • 在全局程序集缓存 (GAC) 中添加和删除 Microsoft .NET Framework 程序集
  • Access the folder Program Files\Citrix\<StoreFrontLocation>
  • 添加、修改和删除 IIS 应用程序池标识和 IIS Web 应用程序
  • 添加、修改和删除本地安全组和防火墙规则
  • 添加和删除 Windows 服务和 PowerShell 管理单元
  • 注册 微软 视窗 通信框架 (WCF) 端点

在 StoreFront 更新中,此操作列表可能会在不另行通知的情况下更改。

StoreFront 安装还会创建以下本地安全组:

  • Citrix 集群成员
  • Citrix CW服务读取用户
  • Citrix CW服务写入用户
  • Citrix 委派身份验证器用户
  • Citrix 委派目录声明工厂用户
  • 思杰PNRS复制器
  • 思杰撇恩艾尔斯用户
  • CitrixStoreFrontAdministrators
  • Citrix 订阅服务器用户
  • Citrix 订阅存储服务用户
  • Citrix 订阅同步用户

StoreFront 维护这些安全组的成员身份。它们用于 StoreFront 中的访问控制,不应用于文件和文件夹等 Windows 资源。请勿修改这些组成员身份。

NT 局域网管理器

如果您使用本地 ESENT 数据库启用了收藏夹,则 StoreFront 在服务器组中同步收藏夹时可能会使用 NTLM。如果禁用 NTLM,则收藏夹可能无法同步。作为替代方案,您可以使用 SQL Server 数据库

如果用户使用 域直通身份验证 进行身份验证,则 IIS 默认情况下会尽可能使用 Kerberos,否则会回退到 NTLM。如果 StoreFront 前面有负载均衡器,则它总是回退到 NTLM。

您可以将服务器配置为仅使用 NTLMv2 并拒绝 NTLMv1,请参阅 Microsoft 文档。在 Windows Server 2025 及更高版本中,NTLMv1 已被移除,因此始终使用 NTLMv2。

StoreFront 部署中的数字证书

服务器证书

服务器证书用于 StoreFront 中的机器识别和传输层安全 (TLS) 传输安全。如果您决定启用 ICA 文件签名,StoreFront 还可以使用证书对 ICA 文件进行数字签名。

有关详细信息,请参阅 最终用户与 StoreFront 之间的通信ICA 文件签名

用于令牌管理的证书

身份验证服务和存储都需要用于令牌管理的证书。当创建身份验证服务或存储时,StoreFront 会生成一个自签名证书。StoreFront 生成的自签名证书不应用于任何其他目的。

Citrix 交付服务证书

StoreFront 在自定义的 Windows 证书存储(Citrix Delivery Services)中保存了许多证书。Citrix Configuration Replication 服务、Citrix Credential Wallet 服务和 Citrix Subscriptions Store 服务使用这些证书。群集中的每个 StoreFront 服务器都有一份这些证书的副本。这些服务不依赖 TLS 进行安全通信,并且这些证书不作为 TLS 服务器证书使用。这些证书在创建 StoreFront 存储或安装 StoreFront 时创建。请勿修改此 Windows 证书存储的内容。

用于代码签名的数字证书

StoreFront 在 <InstallDirectory>\Scripts 文件夹中包含许多 PowerShell 脚本 (.ps1)。默认的 StoreFront 安装不使用这些脚本。它们简化了特定且不频繁任务的配置步骤。这些脚本已签名,允许 StoreFront 支持 PowerShell 执行策略。我们建议使用 AllSigned 策略。(不支持 Restricted 策略,因为它会阻止 PowerShell 脚本执行。)StoreFront 不会更改 PowerShell 执行策略。

尽管 StoreFront 不会在“受信任的发布者”存储中安装代码签名证书,但 Windows 可以自动将代码签名证书添加到其中。当 PowerShell 脚本以“始终运行”选项执行时,就会发生这种情况。(如果您选择“从不运行”选项,则证书会添加到“不受信任的证书”存储中,并且 StoreFront PowerShell 脚本将无法执行。)一旦代码签名证书已添加到“受信任的发布者”存储中,Windows 将不再检查其有效期。在 StoreFront 任务完成后,您可以从“受信任的发布者”存储中删除此证书。

StoreFront 部署中的安全隔离

如果您在与 StoreFront 相同的 Web 域(域名和端口)中,在 StoreFront 服务器上部署任何 Web 应用程序,则这些 Web 应用程序中的任何安全风险都可能降低 StoreFront 部署的安全性。如果需要更高程度的安全隔离,Citrix 建议您将 StoreFront 部署在单独的 Web 域中。

ICA 下载

ICA 文件包含连接到 VDA 的信息,并且通常无需进一步身份验证即可单点登录到这些 VDA。因此,请确保 ICA 文件受到保护。对于混合启动,根据配置,ICA 文件可能会下载到用户设备。建议您禁用 ICA 下载。有关详细信息,请参阅 启动首选项

ICA 文件签名

StoreFront 提供了使用服务器上指定的证书对 ICA 文件进行数字签名的选项,以便支持此功能的 Citrix Workspace 应用程序版本可以验证文件是否来自受信任的源。ICA 文件可以使用 StoreFront 服务器上运行的操作系统支持的任何哈希算法进行签名,包括 SHA-1 和 SHA-256。有关详细信息,请参阅 启用 ICA 文件签名

应用程序保护

您可以使用 应用程序保护 来防止屏幕捕获和屏幕记录器。对于混合启动,应用程序保护默认处于禁用状态。要启用它,请参阅 应用程序保护

用户更改密码

您可以允许通过 Web 浏览器使用 Active Directory 域凭据登录的用户随时或仅在其密码过期时更改密码。但是,这会将敏感的安全功能暴露给任何可以访问使用身份验证服务的任何应用商店的人。如果您的组织有安全策略规定用户密码更改功能仅供内部使用,请确保任何应用商店都无法从公司网络外部访问。创建身份验证服务时,默认配置会阻止用户更改密码,即使密码已过期。有关详细信息,请参阅 允许用户更改密码

自定义设置

为了加强安全性,内容安全策略会阻止来自其他服务器的脚本。编写自定义项时,请将脚本放在网站 custom 文件夹中。如果 StoreFront 配置为 HTTPS 连接,请确保指向自定义内容或脚本的任何链接也使用 HTTPS。

安全标头

通过 Web 浏览器查看应用商店网站时,StoreFront 会返回以下与安全相关的标头,这些标头对 Web 浏览器施加了限制。

标头名称 详细描述
content-security-policy frame-ancestors 'none' 这可以防止其他网站在框架内嵌入 StoreFront 网站,从而避免点击劫持攻击。此外,HTML 页面包含一个 meta 标签,其中包含一个 content-security-policy,用于限制脚本源,以减轻 XSS 攻击。
X-Content-Type-Options nosniff 这可以避免 MIME 类型嗅探。
X-Frame-Options deny 这可以防止其他网站在框架内嵌入 StoreFront 网站,从而避免点击劫持攻击。它已被 content-security-policy 废弃为 frame-ancestors 'none',但仍被一些不支持 content-security-policy 的旧版浏览器理解。

会话

StoreFront 使用多种 Cookie。网站运行中使用的一些 Cookie 如下:

会话 详细说明
ASP.NET_SessionId 跟踪用户会话,包括身份验证状态。已设置 HttpOnly
CtxsAuthId 为防止会话固定攻击,StoreFront 还会使用此 Cookie 跟踪用户是否已通过身份验证。它已设置 HttpOnly
CsrfToken 用于通过标准 Cookie-to-header token 模式防止跨站点请求伪造。服务器在 Cookie 中设置一个令牌。客户端从 Cookie 中读取令牌,并在后续请求中将令牌包含在查询字符串或标头中。此 Cookie 必须未设置 HttpOnly,以便客户端 JavaScript 可以读取它。
CtxsDeviceId 标识设备。已设置 HttpOnly

StoreFront 设置了许多其他 Cookie 来跟踪用户状态,其中一些需要由 JavaScript 读取,因此未设置 HttpOnly。这些 Cookie 不包含任何与身份验证或其他机密信息相关的信息。

如果客户端通过 HTTPS 连接,则在创建或更新 Cookie 时会设置 secure 属性。

关于安全性的更多信息

注意:

此信息可能随时更改,恕不另行通知。

您的组织可能出于法规原因希望对 StoreFront 执行安全扫描。上述配置选项有助于消除安全扫描报告中的一些发现。

如果安全扫描程序和 StoreFront 之间存在网关,则特定发现可能与网关而非 StoreFront 本身相关。安全扫描报告通常不会区分这些发现(例如,TLS 配置)。因此,安全扫描报告中的技术描述可能会产生误导。