保护 StoreFront 部署的安全
本文重点介绍在部署和配置 StoreFront 时可能会影响系统安全的几方面内容。
配置 Microsoft Internet Information Services (IIS)
可以配置具有受限 IIS 配置的 StoreFront。请注意,这不是默认 IIS 配置。
文件扩展名
可以不允许使用未列出的文件扩展名。
StoreFront 要求在请求筛选中使用以下文件扩展名:
- .(空扩展名)
- .appcache
- .aspx
- “cr”,
- .css
- .dtd
- .gif
- .htm
- .html
- ica
- .ico
- .jpg
- .js
- .png
- .svg
- .txt
- .xml
如果为 Citrix Receiver for Web 启用了 Citrix Workspace 应用程序的下载或升级,StoreFront 还要求使用以下文件扩展名:
- .dmg
- .exe
如果启用了适用于 HTML5 的 Citrix Workspace 应用程序,StoreFront 还要求使用以下文件扩展名:
- .eot
- .ttf
- .woff
MIME 类型
可以删除与以下文件类型对应的 MIME 类型:
- .exe
- .dll
- .com
- .bat
- .csh
请求筛选
StoreFront 要求在请求筛选中使用以下 HTTP 谓词。可以不允许使用未列出的谓词。
- GET
- POST
- HEAD
其他 Microsoft IIS 设置
StoreFront 不需要以下各项:
- ISAPI 过滤器
- ISAPI 扩展
- CGI 程序
- FastCGI 程序
重要:
- 请勿配置 IIS 授权规则。StoreFront 直接支持身份验证,并且不使用或不支持 IIS 身份验证。
- 请勿在 StoreFront 站点的“SSL Settings”(SSL 设置)中选择 Client certificates: Require(客户端证书: 必需)。StoreFront 安装配置具有此设置的 StoreFront 站点的恰当页面。
- StoreFront 需要 cookie。必须选择“使用 cookie”设置。请勿选择“无 cookie/使用 URI”设置。
- StoreFront 要求完全信任。请勿将全局 .NET 信任级别设置为“高”或更低。
- StoreFront 不支持为每个站点使用独立的应用程序池。请勿修改这些站点设置。但是,可以设置应用程序池空闲超时以及应用程序池使用的虚拟内存量。
配置用户权限
注意:
Microsoft IIS 作为 StoreFront 安装的一部分启用。Microsoft IIS 向内置组 IIS_IUSRS 授予登录权限作为批处理作业登录以及权限身份验证后模拟客户端。这是正常的 Microsoft IIS 安装行为。请不要更改这些用户权限。请参阅 Microsoft 文档了解详细信息。
安装 StoreFront 时,将向其应用程序池授予登录权限作为服务登录以及权限为进程调整内存配额、生成安全审核和替换一个进程级令牌。这是创建应用程序池时的常规安装行为。应用程序池为 Citrix 配置 Api、Citrix Delivery Services 资源、Citrix Delivery Services 身份验证和 Citrix Receiver for Web。
您不需要更改这些用户权限。这些权限不会被 StoreFront 使用,并且自动禁用。
StoreFront 安装将创建以下 Windows 服务:
- Citrix Configuration Replication (NT SERVICE\CitrixConfigurationReplication)
- Citrix Cluster Join (NT SERVICE\CitrixClusterService)
- Citrix Peer Resolution (NT SERVICE\Citrix Peer Resolution Service)
- Citrix Credential Wallet (NT SERVICE\CitrixCredentialWallet)
- Citrix Subscriptions Store (NT SERVICE\CitrixSubscriptionsStore)
- Citrix Default Domain Services (NT SERVICE\CitrixDefaultDomainService)
如果为 XenApp 6.5 配置了 StoreFront Kerberos 约束委派,这将创建 Citrix StoreFront 协议转换服务 (NT SERVICE\SYSTEM)。此服务需要一项的权限通常不会被授予 Windows 服务。
配置服务设置
在上文“配置用户权限”部分中列出的 StoreFront Windows 服务配置为以 NETWORK SERVICE 身份登录;请勿更改此配置。Citrix StoreFront 协议转换服务以 SYSTEM 身份登录;请勿更改此配置。
配置组成员身份
配置 StoreFront 服务器组时,以下服务将添加到管理员安全组:
- Citrix Configuration Replication (NT SERVICE\CitrixConfigurationReplication)
- Citrix Cluster Join (NT SERVICE\CitrixClusterService)。此服务仅在组中的服务器上可见,并且仅在加入操作过程中运行。
StoreFront 需要这些组成员身份才能正确运行,以便执行以下操作:
- 创建、导出、导入和删除证书以及设置对证书的访问权限
- 读取和写入 Windows 注册表
- 添加和删除全局程序集缓存 (GAC) 中的 Microsoft .NET Framework 程序集
- 访问文件夹 **Program Files\Citrix\**<StoreFrontLocation>
- 添加、修改和删除 IIS 应用程序池标识和 IIS Web 应用程序
- 添加、修改和删除本地安全组和防火墙规则
- 添加和删除 Windows 服务以及 PowerShell 管理单元
- 注册 Microsoft Windows Communication Framework (WCF) 端点
在 StoreFront 的更新中,此操作列表如有更改,恕不另行通知。
StoreFront 安装还将创建以下本地安全组:
- CitrixClusterMembers
- CitrixCWServiceReadUsers
- CitrixCWServiceWriteUsers
- CitrixDelegatedAuthenticatorUsers
- CitrixDelegatedDirectoryClaimFactoryUsers
- CitrixPNRSUsers
- CitrixStoreFrontPTServiceUsers
- CitrixSubscriptionServerUsers
- CitrixSubscriptionsStoreServiceUsers
- CitrixSubscriptionsSyncUsers
StoreFront 负责维护这些安全组的成员身份。这些安全组用于 StoreFront 内部的访问控制,不适用于文件和文件夹等 Windows 资源。请勿修改这些组成员身份。
StoreFront 中的证书
服务器证书
在 StoreFront 中,服务器证书用于计算机标识和传输层安全性 (TLS) 传输安全性。如果决定启用 ICA 文件签名服务,StoreFront 还可以使用证书对 ICA 文件进行数字签名。
要为第一次在设备上安装 Citrix Workspace 应用程序的用户启用基于电子邮件的帐户发现,您必须在 StoreFront 服务器上安装有效的服务器证书。指向根证书的完整链也必须有效。为获得最佳用户体验,请安装具有 discoverReceiver.domain 的“使用者”或“使用者备用名称”条目的证书,其中 domain 为包含您的用户的电子邮件帐户的 Microsoft Active Directory 域。虽然您可以为包含用户的电子邮件帐户的域使用通配符证书,但是必须首先确保贵公司的安全策略允许部署此类证书。也可以使用用户电子邮件帐户所属域的其他证书,但是当 Citrix Workspace 应用程序第一次连接到 StoreFront 服务器时,用户将看到一个证书警告对话框。基于电子邮件的帐户发现不能与任何其他证书身份验证一起使用。有关详细信息,请参阅配置基于电子邮件的帐户发现。
如果您的用户通过将应用商店 URL 直接输入 Citrix Workspace 应用程序来配置其帐户,并且不使用基于电子邮件的帐户发现,那么 StoreFront 服务器上的证书只需对于该服务器有效,并且具有指向根证书的有效链。
令牌管理证书
身份验证服务和应用商店都需要使用证书进行令牌管理。StoreFront 会在创建身份验证服务或应用商店时生成一个自签名的证书。不应将 StoreFront 生成的自签名证书用于任何其他用途。
Citrix 交付服务证书
StoreFront 在自定义 Windows 证书存储(Citrix 交付服务)中存储了多个证书。 Citrix Configuration Replication Service、Citrix Credential Wallet 服务和 Citrix Subscriptions Store 服务都使用这些证书。群集中的每个 StoreFront 服务器都具有这些证书的副本。 这些服务不依赖 TLS 进行安全通信,并且这些证书不用作 TLS 服务器证书。 这些证书是在创建 StoreFront 应用商店或安装 StoreFront 时创建的。 请勿修改此 Windows 证书存储的内容。
代码签名证书
StoreFront 在 <InstallDirectory>\Scripts 下的文件夹中存储了多个 PowerShell 脚本 (.ps1)。默认 StoreFront 安装不使用这些脚本。这些脚本简化了不经常执行的特定任务的配置步骤。这些脚本已签名,允许 StoreFront 支持 PowerShell 执行策略。我们建议使用 AllSigned 策略。(限制策略不受支持,因为这会阻止执行 PowerShell 脚本。)StoreFront 不会更改 PowerShell 执行策略。
虽然 StoreFront 不安装“受信任的发布者”存储中的代码签名证书,但是,Windows 仍然能够自动在此处添加代码签名证书。通过始终运行选项执行 PowerShell 脚本时会出现此问题。(如果选择永不运行选项,证书将被添加到“不信任的证书”存储中,并且 StoreFront PowerShell 脚本将不执行。)将代码签名证书添加到“受信任的发布者”存储中后,Windows 不再检查其是否过期。可以在完成 StoreFront 任务后从“受信任的发布者”存储中删除此证书。
StoreFront 通信
在生产环境中,Citrix 建议使用 Internet 协议安全性 (IPsec) 或 HTTPS 协议来确保在 StoreFront 与您服务器之间传输的数据的安全。IPsec 是 Internet 协议的一组标准扩展,可提供经过身份验证和加密的通信,并且可以实现数据完整性和重播保护功能。由于 IPsec 是一个网络层协议集,因此无需任何修改即可将其用于更高级别的协议。HTTPS 使用安全套接字层 (SSL) 和传输层安全性 (TLS) 协议来提供强大的数据加密。
可使用 SSL Relay 来确保 StoreFront 和 Citrix Virtual Apps 服务器之间数据通信的安全。SSL Relay 是执行主机身份验证和数据加密的默认 Citrix Virtual Apps 组件。
Citrix 建议您在托管 StoreFront 的 Web 服务器中禁用 TLS 1.0 和 1.1 支持。您应该通过组策略对象执行此操作,这些对象会在 StoreFront 服务器上创建必需的注册表设置以禁用 TLS 1.0 和 TLS 1.1 等旧协议。另请参阅 Microsoft TLS/SSL 设置参考主题。
Citrix 建议使用 Citrix Gateway 和 HTTPS 来确保 StoreFront 与用户设备之间的通信安全。要使用 HTTPS,StoreFront 要求将托管身份验证服务和相关联的应用商店的 Microsoft Internet Information Services (IIS) 实例配置为支持 HTTPS。如果没有合适的 IIS 配置,StoreFront 将使用 HTTP 进行通信。Citrix 强烈建议不要在生产环境中启用指向 StoreFront 的不安全的用户连接。
StoreFront 安全分离
如果您在与 StoreFront 相同的 Web 域(域名和端口均相同)中部署任何 Web 应用程序,则这些 Web 应用程序中存在的任何安全风险可能会潜在地降低 StoreFront 部署的安全性。如果环境中需要更大程度的安全隔离,Citrix 建议您在单独的 Web 域中部署 StoreFront。
通过 StoreFront 交付 SaaS 和 Web 应用程序
可以通过 StoreFront 应用商店将 SaaS 和 Web 应用程序安全地交付给用户。借助 Citrix Cloud 和适用于 StoreFront 的访问控制同步实用程序,可以为这些应用程序采用增强的安全性和 Web 筛选策略,以保护您的用户和网络免受恶意软件和数据泄露的影响。用户像往常一样访问其 StoreFront 应用商店,以启动您在 Citrix Cloud 中配置的 SaaS 和 Web 应用程序。有关详细信息,请参阅 StoreFront 中适用于 SaaS 和 Web 应用程序的访问控制。
ICA 文件签名服务
StoreFront 提供了使用服务器上的指定证书对 ICA 文件进行数字签名的选项,以便支持此功能的 Citrix Workspace 应用程序版本能够验证文件是否来自受信任的来源。可以使用 StoreFront 服务器上运行的操作系统所支持的任何哈希算法(包括 SHA-1 和 SHA-256)对 ICA 文件进行签名。有关详细信息,请参阅启用 ICA 文件签名服务。
用户更改密码
可以允许使用 Active Directory 域凭据登录的 Receiver for Web 站点用户随时或仅当到期时更改自己的密码。但是,这会将敏感的安全功能暴露给那些可访问使用该身份验证服务的任何应用商店的用户。如果贵组织的安全策略将用户密码更改功能保留为仅供内部使用,请确保用户无法从企业网络外部访问任何应用商店。创建身份验证服务时,默认配置会阻止 Receiver for Web 站点用户更改自己的密码,即使密码已到期也是如此。有关详细信息,请参阅优化用户体验。
将 StoreFront 服务器基本 URL 从 HTTP 更改为 HTTPS
要使用 HTTPS 来确保 StoreFront 与用户设备之间通信的安全,必须先将 Microsoft Internet Information Services (IIS) 配置为支持 HTTPS。如果在未首先安装和配置 SSL 证书的情况下安装和配置 Citrix StoreFront,StoreFront 将使用 HTTP 进行通信。
如果稍后安装和配置 SSL 证书,请使用以下过程来确保 StoreFront 及其服务使用 HTTPS 连接。
示例:
将基本 URL 更改为 HTTPS 之前:
将基本 URL 更改为 HTTPS 之后:
-
在 StoreFront 服务器上将 Microsoft Internet Information Services (IIS) 配置为 HTTPS
- 使用 Internet Information Services (IIS) 管理器控制台,导入由 Microsoft Active Directory 域证书颁发机构签名的 SSL 服务器证书。
- 通过 HTTPS (443) 向默认 Web 站点添加 IIS 绑定。
有关详细说明,请参阅 CTX200292。
- 在 Citrix StoreFront 管理控制台中,在左侧窗格中选择服务器组。
- 在“操作”窗格中,选择更改基本 URL。
- 键入基本 URL 并单击确定。
自定义设置
为增强安全性,请勿写入从服务器加载内容或脚本且不受您控制的自定义设置。请将内容或脚本复制到从中创建自定义设置的 Citrix Receiver for Web 站点自定义文件夹。如果为 HTTPS 连接配置了 StoreFront,请确保指向自定义内容或脚本的所有链接也使用 HTTPS。
其他安全信息
注意:
此信息可能会随时更改,恕不另行通知。
出于监管原因,您的组织可能希望对 StoreFront 执行安全扫描。上述配置选项有助于消除安全扫描报告中的某些发现。
如果安全扫描程序和 StoreFront 之间存在网关,特定发现可能会与网关有关,而非与 StoreFront 本身有关。安全扫描报告通常不会区分这些发现(例如,TLS 配置)。因此,安全扫描报告中的技术说明可能会引起误解。
解释安全扫描报告时,请注意以下事项:
-
StoreFront 中的 HTML 页面可能不包括点击劫持保护(通过内容安全策略或 X-Frame-Options 响应头)。但是,这些 HTML 页面仅包含静态内容,因此点击劫持攻击不相关。
-
Microsoft IIS 的版本和 ASP.NET 的使用在 HTTP 标头中可见。但是,此信息在 StoreFront 本身的存在中显而易见,因为它依赖于这些技术。
-
启动应用程序和桌面时,StoreFront 使用令牌来防止跨站点请求伪造 (CSRF)。此令牌在响应中作为 cookie 发送,而不被标记为“Secure”或“HttpOnly”。稍后在请求中发送时,令牌将包含在 URL 的查询字符串中。但是,StoreFront 不依赖于此机制来验证 HTTP 请求。
-
StoreFront 使用开源组件 jQuery。使用的一个版本是 jQuery 1.3.2。根据 jQuery 开源项目,在 jQuery 1.12.0 中进行了更改,以减轻特定形式的跨域请求的潜在漏洞。这种更改不是对 jQuery 本身漏洞的缓解;它是对应用程序逻辑潜在误用的缓解。NetScaler 和 StoreFront 共享的 Receiver for Web 功能中的相关 Citrix 应用程序逻辑不使用这种特定形式的跨域请求,不受此漏洞的影响,并且未从此缓解中受益。
出于兼容性原因,此缓解后来在 jQuery 1.12.3 中已删除。由于 Citrix 应用程序逻辑没有从此缓解中受益,因此,此删除在使用 jQuery 1.12.4 的 NetScaler 和 StoreFront 各版本中不会产生重大影响。