安全和网络配置
联邦身份验证服务(FAS)与Microsoft Active Directory和Microsoft认证机构紧密集成。必须确保系统得到适当的管理和保护,并像对域控制器或其他关键基础设施一样开发安全策略。
本文档概述了部署FAS时要考虑的安全问题。本文还概述了可能有助于保护基础设施的可用特性。
网络体系结构
下图显示了FAS部署中使用的主要组件和安全边界。
FAS服务器应该与证书颁发机构和域控制器一起被视为安全关键型基础设施的一部分。在联邦环境中,Citrix Gateway和Citrix StoreFront是受信任的执行用户身份验证的组件;其他Citrix虚拟应用程序和桌面组件不受FAS的影响。
防火墙和网络安全
Citrix Gateway、StoreFront和交付控制器组件之间的通信应该由TLS通过端口443进行保护。StoreFront服务器只执行传出连接,而Citrix Gateway应该只接受通过Internet使用HTTPS端口443的连接。
StoreFront服务器使用相互验证的Kerberos通过80端口与FAS服务器联系。身份验证使用FAS服务器的Kerberos HOST/fqdn标识和StoreFront服务器的Kerberos机器帐户标识。这将生成Citrix虚拟交付代理(VDA)登录用户所需的单一使用“凭据句柄”。
当HDX会话连接到VDA时,VDA也通过80端口与FAS服务器联系。身份验证使用FAS服务器的Kerberos HOST/fqdn标识和VDA的Kerberos机器标识。此外,VDA必须提供“凭据句柄”来访问证书和私钥。
Microsoft证书颁发机构接受使用Kerberos认证的DCOM进行的通信,该DCOM可以配置为使用固定的TCP端口。证书颁发机构还要求FAS服务器提供一个由受信任注册代理证书签名的CMC包。
服务器 | 防火墙端口 |
---|---|
联合身份验证服务 | 通过HTTP从StoreFront和vda获取Kerberos,通过DCOM获取Microsoft证书颁发机构 |
Citrix网关 | 从客户端机器发送HTTPS,从StoreFront服务器发送HTTPS,从HDX发送到VDA |
店面 | 从Citrix网关[in] HTTPS, [out] HTTPS到交付控制器,[out] Kerberos HTTP到FAS |
交付控制器 | 来自StoreFront服务器的[in] HTTPS,来自VDAs的[in/out] Kerberos over HTTP |
的共识 | [输入/输出]Kerberos通过HTTP从交付控制器,[输入]HDX从Citrix网关,[输出]Kerberos HTTP到FAS |
微软认证中心 | [在]DCOM &签署从FAS |
Citrix联邦认证服务与Citrix云的连接
控制台和FAS分别使用用户帐户和Network Service帐户访问以下地址。
- FAS管理控制台,在用户的帐户下
* .cloud.com
* .citrixworkspacesapi.net
- 如果在您的环境中使用第三方身份提供程序,则第三方身份提供程序所需的地址
- FAS服务,在Network service帐户下:
* .citrixworkspacesapi.net
如果您的环境包括代理服务器,请使用FAS管理控制台的地址配置用户代理。另外,确保使用netsh或类似工具配置了Network Service帐户的地址。
安全注意事项
FAS有一个注册授权证书,允许它代表您的域用户自主颁发证书。因此,开发和实现安全策略来保护FAS服务器并限制其权限非常重要。
委托招生代理
FAS作为注册代理颁发用户证书。Microsoft证书颁发机构允许您限制注册代理、证书模板和注册代理可以为其颁发证书的用户。
你可以使用这个对话框来确保:
- 的招生代理list中只包含FAS服务器。
- 的证书模板列表只包含FAS模板。
- 的权限列表中只包含允许使用FAS的用户。例如,防止FAS向管理组或受保护用户组中的用户颁发证书是一种很好的实践。
访问控制列表配置
正如在配置规则节中,您必须配置一个StoreFront服务器列表,这些服务器是受信任的,可以在颁发证书时向FAS断言用户身份。类似地,您可以限制向哪些用户颁发证书,以及他们可以向哪些VDA机器进行身份验证。这是您配置的任何标准Active Directory或证书颁发机构安全功能之外的功能。
防火墙设置
所有到FAS服务器的通信都通过端口80使用相互验证的Windows communication Foundation (WCF) Kerberos网络连接。
事件日志监控
FAS和VDA将信息写入Windows事件日志。这可以用于监视和审计信息。的事件日志部分列出了可能生成的事件日志条目。
硬件安全模块
所有私钥,包括由FAS颁发的用户证书的私钥,都被Network Service帐户存储为不可导出的私钥。如果安全策略需要,FAS支持使用加密硬件安全模块。
底层加密配置可在FederatedAuthenticationService.exe.config文件中获得。这些设置适用于首次创建私钥时。因此,可以对注册机构私钥(例如,4096位,TPM受保护)和运行时用户证书使用不同的设置。
参数 | 描述 |
---|---|
ProviderLegacyCsp | 当设置为true时,FAS使用Microsoft CryptoAPI (CAPI)。否则,FAS使用微软加密下一代API (CNG)。 |
ProviderName | 要使用的CAPI或CNG提供程序的名称。 |
ProviderType | 指Microsoft KeyContainerPermissionAccessEntry。ProviderType属性PROV_RSA_AES应该总是24,除非你使用的是带CAPI的HSM和HSM供应商另有规定。 |
KeyProtection | 控制私钥的“可导出”标志。如果硬件支持,还允许使用可信平台模块(Trusted Platform Module, TPM)密钥存储。 |
KeyLength | RSA私钥的密钥长度。支持的值为1024、2048和4096,默认值为2048。 |
政府的责任
环境管理可分为以下几类:
的名字 | 责任 |
---|---|
企业管理员 | 在林中安装和保护证书模板 |
域管理员 | 配置组策略设置 |
证书颁发机构管理员 | 配置证书颁发机构 |
FAS管理员 | 安装和配置FAS服务器 |
店面/ Citrix门户管理员 | 配置用户身份验证 |
Citrix虚拟桌面管理员 | 配置vda和控制器 |
每个管理员控制整个安全模型的不同方面,允许采用深入防御的方法来保护系统。
组策略设置
通过组策略配置的“索引号-> FQDN”查找表识别受信任的FAS机器。当与FAS服务器联系时,客户端验证FAS服务器主机\ < fqdn >
Kerberos身份。所有访问FAS服务器的服务器必须对相同的索引有相同的FQDN配置;否则,StoreFront和vda可能会联系不同的FAS服务器。
为了避免错误配置,Citrix建议对环境中的所有机器应用单一策略。修改FAS服务器列表时要小心,特别是删除或重新排序条目时。
这个GPO的控制应该仅限于安装和退役FAS服务器的FAS管理员(和/或域管理员)。注意避免在FAS服务器退役后不久重用机器FQDN名称。
证书模板
如果不想使用FAS附带的Citrix_SmartcardLogon证书模板,可以修改它的副本。支持以下修改。
重命名证书模板
如果你想重命名Citrix_SmartcardLogon以匹配你的组织模板命名标准,你必须:
- 创建证书模板的副本,并将其重命名以匹配组织模板命名标准。
- 使用FAS PowerShell命令来管理FAS,而不是管理用户界面。(管理用户界面仅用于与Citrix默认模板名称一起使用。)
- 使用Microsoft MMC证书模板管理单元或publish - fasmstemplate命令发布您的模板,然后
- 使用New-FasCertificateDefinition命令用模板的名称配置FAS。
修改通用属性
您可以修改证书模板中的“有效期”。
请勿修改更新周期。FAS忽略证书模板中的此设置。在证书的有效期内,FAS会自动更新证书。
修改请求处理属性
不要修改这些属性。FAS忽略证书模板中的这些设置。FAS总是取消选中允许私钥导出和过程用相同的密钥续签.
修改密码属性
不要修改这些属性。FAS忽略证书模板中的这些设置。
指私钥保护FAS提供的等效设置。
修改密钥认证属性
不要修改这些属性。FAS不支持密钥认证。
修改“已取代模板”属性
不要修改这些属性。FAS不支持取代模板。
修改扩展属性
您可以修改这些设置以匹配您的组织策略。
注意:不适当的扩展设置可能导致安全问题,或导致证书不可用。
修改安全属性
Citrix建议您将这些设置修改为Allow读而且招收只有FAS服务器的机器帐户的权限。FAS服务不需要其他权限。但是,与其他证书模板一样,您可能希望:
- 允许管理员对模板进行读写操作
- 允许通过认证的用户读取模板
修改主题名称属性
Citrix建议您不要修改这些属性。
的模板从这个Active Directory信息构建选中,导致证书颁发机构将用户的SID包含在证书扩展中。它提供了到用户Active Directory帐户的强映射。
修改服务器属性
尽管Citrix不建议这样做,但如果需要,您可以修改这些设置以匹配您的组织策略。
修改发布需求属性
不要修改这些设置。这些设置应该如下所示:
修改兼容性属性
您可以修改这些设置。设置必须至少为Windows Server 2003 ca(模式版本2)。但是,FAS只支持Windows Server 2008及更高版本的ca。此外,如上所述,FAS忽略通过选择可用的其他设置Windows Server 2008 ca(模式版本3)或Windows Server 2012 ca(模式版本4)。
证书颁发机构管理
证书颁发机构管理员负责配置证书颁发机构服务器及其使用的颁发证书私钥。
发布模板
为了让证书颁发机构根据企业管理员提供的模板颁发证书,证书颁发机构管理员必须选择发布该模板。
一种简单的安全实践是,在安装FAS服务器时,只发布注册机构证书模板,或者坚持完全脱机签发过程。在任何一种情况下,证书颁发机构管理员都应该对授权注册颁发机构证书请求保持完全控制,并拥有用于授权FAS服务器的策略。
防火墙设置
通常,证书颁发机构的管理员还可以控制证书颁发机构的网络防火墙设置,允许控制传入的连接。证书颁发机构管理员可以配置DCOM TCP和防火墙规则,使只有FAS服务器可以请求证书。
限制人数
默认情况下,注册机构证书的任何持有者都可以使用允许访问的任何证书模板向任何用户颁发证书。这应该仅限于一组使用“限制注册代理”证书颁发机构属性的非特权用户。
策略模块和审计
对于高级部署,可以使用自定义安全模块跟踪和否决证书的颁发。
FAS管理
FAS有几个安全特性。
通过ACL限制StoreFront、用户和vda
FAS安全模型的中心是Kerberos帐户可以访问功能的控制:
访问向量 | 描述 |
---|---|
店面(IdP) | 信任这些Kerberos帐户来声明用户已正确地通过身份验证。如果其中一个帐户被破坏,那么就可以为FAS配置允许的用户创建和使用证书。 |
vda(信赖) | 这些是允许访问证书和私钥的计算机。还需要IdP检索的凭据句柄,因此这个组中的被破坏的VDA帐户攻击系统的范围有限。 |
用户 | 这将控制IdP可以断言哪些用户。注意,与证书颁发机构中的“受限注册代理”配置选项有重叠。一般来说,建议在此列表中只包含非特权帐户。这可以防止受到损害的StoreFront帐户将特权升级到更高的管理级别。特别是,该ACL不应该允许域管理员帐户。 |
配置规则
如果多个独立的Citrix虚拟应用程序或Citrix虚拟桌面部署使用相同的FAS服务器基础设施,则规则非常有用。每个规则都有一组单独的配置选项;特别是,Kerberos访问控制列表(acl)可以独立配置。
配置证书颁发机构和模板
针对不同的访问权限,可以配置不同的证书模板和ca。根据环境的不同,高级配置可能会选择使用功能较弱或较强的证书。例如,标识为“外部”的用户可能拥有比“内部”用户更少特权的证书。
会话内证书和身份验证证书
FAS管理员可以控制用于身份验证的证书是否可在用户的会话中使用。例如,这可以用于在会话中只提供“签名”证书,而更强大的“登录”证书仅在登录时使用。
私钥保护和密钥长度
FAS管理员可以配置FAS将私钥存储在HSM或TPM上。Citrix建议至少通过将注册机构证书私钥存储在TPM中来保护它;该选项作为“脱机”证书请求流程的一部分提供。
类似地,用户证书私钥可以存储在TPM或HSM中。所有密钥都应该生成为“不可导出的”,长度至少为2048位。
事件日志
FAS服务器提供详细的配置和运行时事件日志,可用于审计和入侵检测。
管理访问和管理工具
FAS包括远程管理特性(相互身份验证的Kerberos)和工具。“本地管理员组”的成员对FAS配置具有完全控制。应该仔细维护这个列表。
Citrix Virtual Apps、Citrix Virtual desktop、VDA管理员
通常,使用FAS并不会改变交付控制器和VDA管理员的安全模型,因为FAS“凭据句柄”只是替换了“Active Directory密码”。控制器和VDA管理组应该只包含受信任的用户。应该维护审计和事件日志。
一般Windows服务器安全
所有的服务器都应该打满补丁,并有标准的防火墙和杀毒软件可用。安全关键的基础架构服务器应该保存在物理上安全的位置,注意磁盘加密和虚拟机维护选项。
审计和事件日志应该安全地存储在远程计算机上。
RDP访问权限应该仅限于授权的管理员。在可能的情况下,用户帐户应该要求智能卡登录,特别是对于证书颁发机构和域管理员帐户。