Citrix ADC MPX、VPX 和 SDX 安全性最佳实践简介

Citrix ADC MPX 设备是加速网站、提供 L4-L7 流量管理、提供集成的 Citrix Web 应用防火墙和卸载服务器的应用程序交付 Controller。Citrix ADC VPX 实例是具有 Citrix ADC MPX 设备的所有功能、在标准服务器上运行并为包括 Citrix XenDesktop 和 XenApp 在内的 Web 应用程序提供更高的可用性的虚拟设备。Citrix ADC SDX 设备提供高级虚拟化,实现 VPX 的所有灵活性和 MPX 的性能。使用 MPX、VPX 和 SDX,组织可以部署灵活或真实的多租户解决方案,通过将大容量共享网络服务与处理器密集型、应用程序特定服务分离,优化 Web 应用程序交付基础结构。Citrix ADC 设备还提供了与 Citrix OpenCloud Access 入的无缝集成,可以利用云的强大功能扩展数据中心。

要在整个部署生命周期内维护安全性,Citrix 建议您查看以下注意事项:

  • 物理安全
  • 设备安全
  • 网络安全性
  • 行政和管理

不同的部署可能需要不同的安全注意事项。本文档提供了一般安全指南,帮助您根据您的特定安全要求决定适当的安全部署。

重要:

从软件版本 12.1 开始,NetScaler 将更名为 Citrix ADC。有关详细信息,请参阅 https://www.citrix.com/about/citrix-product-guide/

部署准则

部署 Citrix ADC 时,请考虑以下物理和设备安全最佳实践:

物理安全最佳做法

在安全位置部署 Citrix ADC 设备

Citrix ADC 设备必须部署在具有足够物理访问控制的安全位置,以防止设备遭受未经授权的访问。至少,服务器室的访问应该通过锁,电子读卡器或其他类似的物理方法进行控制。

其他措施可包括使用电子监视系统,例如闭路电视,不断监测房间的活动。如果发生未经授权的入侵,该系统的输出应通知安全人员。在闭路电视台的情况下,录制的录像可供审核用途。

安全访问设备前面板和控制台端口

Citrix ADC 设备或 VPX 托管服务器应部署在可以使用合适的密钥或其他物理方法锁定的机架或笼子中。这会阻止访问 Citrix ADC 设备的物理端口,或者在 VPX 部署的情况下,访问虚拟化主机控制台。

电源保护

Citrix ADC 设备(或托管服务器)应使用合适的不间断电源 (UPS) 来保护。如果出现停电,则可确保设备继续运行,或允许对物理或虚拟 Citrix ADC 进行控制关闭。使用 UPS 还有助于防止电源尖峰。

加密密钥保护

如果部署中的加密密钥需要额外的保护,请考虑使用 FIPS 140-2 级兼容的设备。FIPS 平台使用硬件安全模块来保护设备中的关键加密密钥免受未经授权的访问。

Citrix ADC 设备安全最佳实践

执行设备软件更新

Citrix 强烈建议客户在部署之前确保其设备已使用最新固件版本进行更新。在远程执行时,Citrix 建议客户使用安全协议(如 SFTP 或 HTTPS)来升级设备。

还建议客户查看与其 Citrix 产品相关的安全公告。有关新安全公告和更新安全公告的信息,请参阅 Citrix 安全公告网页 (https://support.citrix.com/securitybulletins),并考虑注册新公告和更新公告的警报。

保护承载 Citrix ADC VPX 设备的服务器的操作系统

Citrix ADC VPX 设备可以在标准虚拟化服务器上运行虚拟设备,也可以作为 Citrix ADC SDX 上的虚拟设备运行。

除了应用正常的物理安全程序外,还应通过基于角色的访问控制和强大的密码管理来保护对虚拟化主机的访问。此外,当服务器可用时,应使用最新的操作系统安全修补程序进行更新,并在服务器上部署最新的防病毒软件(如果适用于虚拟化类型)。使用 Citrix ADC SDX 平台托管 Citrix ADC VPX 的客户应确保其使用的是 Citrix ADC SDX 的最新固件版本。

重置 Citrix ADC 熄灯管理 (LOM)

Citrix 建议在配置 LOM 以用于生产部署之前,先对 LOM 执行出厂重置以还原默认设置。

  1. 在 Citrix ADC 外壳提示符处,运行以下命令:

    >ipmitool raw 0x30 0x41 0x1
    

    注意:运行上述命令会将 LOM 重置为出厂默认设置并删除所有 SSL 证书。有关如何重新配置 LOM 端口的说明,请参阅 [照亮 Citrix ADC MPX 设备的管理端口](/en-us/netscaler-hardware-platforms/mpx/netscaler-mpx-lights-out-management-port-lom.html

  2. 在 LOM GUI 中,导航到配置 > SSL 证书,然后添加新证书和私钥。

    此外,Citrix 强烈建议执行以下用户配置。使用 LOM GUI:

    • 导航到 配置 > 用 > 修改用户 并更改 nsroot 超级用户帐户的密码。
    • 导航到配置>“用 > 修改用户,然后为用户创建策略或将现有策略绑定到用户。
    • 导航到配置 > IP 访问控制 > 添加 并配置 IP 访问控制”,以允许访问已知的 IP 地址范围。
    • 导航到配置>“用 > 修改用户,创建替代超级用户帐户并将策略绑定到此帐户。

    有关 LOM 配置的更多详细信息,请参阅LOM 配置

持久性数据的维护和删除

如果 Citrix ADC 在 RMA 下被重新部署到另一个环境、停用或返回到 Citrix,则应确保从设备中正确删除持久性数据。

有关此过程的详细信息,请参阅以下常见问题:https://www.citrix.com/support/programs/faqs.html

配置指南

网络安全

将 Citrix ADC 设备部署到生产环境时,Citrix 强烈建议进行以下关键配置更改:

  • Citrix ADC 管理员接口 (NSIP) 不应暴露在 Internet 中。
  • 应替换 Citrix ADC 默认 SSL 证书。
  • 访问 GUI 并禁用默认 HTTP 接口时应使用 HTTPS(通过 TLS 的 HTTP)。

下一节除了建议的进一步更改外,还提供了有关这些关键考虑因素的更多信息。

关键网络安全注意事项

不要将 NSIP 公开到 Internet 上:

Citrix 强烈建议 Citrix ADC 管理 IP (NSIP) 不要暴露在公共 Internet 中,并将其部署在适当的状态数据包检查 (SPI) 防火墙后面。

替换 Citrix ADC 默认 TLS 证书:

在 Citrix ADC 设备的初始配置期间,将创建默认 TLS 证书。这些不适用于生产部署,应予以替换。

Citrix 建议客户将 Citrix ADC 设备配置为使用来自信誉良好的证书颁发机构 (CA) 的证书或企业 CA 的相应证书。

绑定到面向公众的虚拟服务器时,来自信誉良好的 CA 的有效 TLS 证书可简化面向 Internet 的 Web 应用程序的用户体验;用户 Web 浏览器在启动与 Web 服务器的安全通信时不需要用户交互。若要将默认 Citrix ADC 证书替换为受信任的 CA 证书,请参阅知识中心文章 CTX122521:”如何将 Citrix ADC 设备的默认证书替换为与设备的主机名匹配的受信任 CA 证书。”

或者,也可以创建和使用自定义 TLS 证书和私钥。虽然这可以提供等效级别的传输层安全性,但它需要将 TLS 证书分发给用户,并且在启动到 Web 服务器的连接时需要用户交互。有关如何创建自定义证书的详细信息,请参阅知识中心文章 CTX121617:如何在 Citrix ADC 设备上创建和安装自签名证书

有关 TLS 证书管理和配置的更多信息,请参阅本指南的“Citrix ADC TLS 建议”部分。

禁用对管理员界面的 HTTP 访问:

要保护到 Citrix ADC 管理接口和 GUI 的流量,应将 Citrix ADC 设备配置为使用 HTTPS。这可以通过以下步骤完成:

  • 创建 2048 位或更高版本的 RSA 私钥和公钥对,并使用 HTTPS 和 SSH 的密钥访问 Citrix ADC IP 地址,从而替换出厂配置的 512 位 RSA 私钥和公钥对。

  • 将设备配置为仅使用强密码套件,并更改“DEFAULT”密码套件集以在设备上反映这一点。建议您使用 NIST 特别出版物 800-52(修订版 1)第 3.3 节中的批准 TLS 密码套件列表作为指导。此文档可以在 NIST 网站上找到,地址如下:https://www.nist.gov/publications/guidelines-selection-configuration-and-use-transport-layer-security-tls-implementations?pub_id=915295

  • 将设备配置为使用 SSH 公钥身份验证访问管理员界面。请勿使用 Citrix ADC 默认密钥。创建并使用您自己的 2048 位 RSA 私钥和公钥对。有关详细信息,请参阅知识中心文章 CTX109011:如何通过公钥身份验证保护对 Citrix ADC 设备的 SSH 访问

  • 将 Citrix ADC 配置为使用这些新证书后,可以使用以下命令禁用对 GUI 管理接口的 HTTP 访问:

set ns ip <NSIP> -gui SECUREONLY

有关如何配置对管理 GUI 的安全访问的详细信息,请参阅知识中心文章 CTX111531:如何使用设备的SIP/MIP 地址启用对 Citrix ADC GUI 的安全访问

其他网络安全注意事项

部署 Citrix ADC 设备时,还应考虑以下与网络相关的其他安全注意事项:

禁用 SSH 端口转发:

Citrix ADC 设备不需要 SSH 端口转发。如果您不想使用此功能,Citrix 建议您使用以下步骤将其禁用:

  1. 通过添加以下行编辑 /etc/sshd_config 文件。

    允许转发否

  2. 保存文件并将其复制到 /nsconfig 中,以便在测试过程中重新启动时保持更改。

使用kill -SIGHUP <sshdpid> 命令终止进程,或重新启动系统。

配置具有高可用性的 Citrix ADC 设备:

在需要持续操作的部署中,可以在高可用性设置中部署 Citrix ADC 设备。如果其中一台设备停止工作或需要脱机升级,则此类设置将提供持续操作。

有关如何配置高可用性设置的信息,请参阅 Citrix Docs如何在 Citrix ADC 上设置高可用性对 上的“高可用性”>“配置高可用性”主题。

在不需要高可用性的部署中,应禁用此功能。

设置对等设备之间的安全通信:

如果您已在高可用性、群集或 GSLB 设置中配置 Citrix ADC 设备,请确保设备之间的通信安全。

为了保护设备之间的通信,Citrix 建议您更改内部用户帐户或 RPC 节点密码。RPC 节点是用于系统间配置和会话信息通信的内部系统实体。

禁用内部用户帐户时,Citrix ADC 设备功能还可以使用基于 SSH 密钥的身份验证进行内部通信。在这种情况下,密钥名称必须设置为“ns_comm_key”。有关详细信息,请参阅 使用 SSH 密钥且无密码访问 Citrix ADC 设备

更改默认密码:

为了增强安全性,Citrix 建议您更改 nsroot 和内部用户帐户或 RPC 节点密码。建议频繁更改密码。

  • NSroot 密码:请参阅更改 NSroot 密码
  • 内部用户帐户或 RPC 节点密码:请参阅更改 RPC 节点密码

    注意

    Citrix 还建议您禁用内部用户帐户,改为使用基于密钥的身份验证。

配置网络安全域和 VLAN:

Citrix 强烈建议在物理上或逻辑上将流入 Citrix ADC 设备管理接口的网络流量与正常网络流量分离。推荐的最佳做法是使用三个 VLAN:

  • Internet VLAN 外部
  • 管理无线局域网
  • 服务器内部 VLAN

Citrix 建议配置网络,使 LOM 端口成为管理 VLAN 的一部分。

在双臂模式下部署 Citrix ADC 设备时,请将特定端口专用于特定网络。如果需要 VLAN 标记并将两个网络绑定到一个端口,则必须确保两个网络具有相同或相似的安全级别。

如果两个网络的安全级别不同,则不得使用 VLAN 标记。相反,请考虑为每个特定网络指定一个端口,并使用分布在设备上端口上的独立 VLAN。

注意:Citrix ADC VPX 设备不支持标记的 VLAN。

考虑使用 Citrix Web App Firewall: Citrix ADC 铂金版许可设备提供内置 Citrix Web App Firewall,该防火墙使用正面安全模型,并自动学习正确的应用程序行为以防范威胁,例如命令注入,SQL 注入和跨站点脚本。

使用 Citrix Web App Firewall 时,用户可以为 Web 应用程序添加额外的安全性,而无需更改代码,也无需对配置进行少量更改。有关详细信息,请参阅 Citrix ADC Citrix Web App Firewall 网页。

限制非管理应用程序访问: 运行以下命令以限制非管理应用程序访问 Citrix ADC 设备的能力。

set ns ip <NSIP> -restrictAccess enabled

安全群集部署: 如果 Citrix ADC 群集节点分布在数据中心之外,Citrix 强烈建议对节点到节点消息 (NNM)、AppNM 使用安全 RPC 并设置高可用性。

若要为 Citrix ADC 群集中的所有 Citrix ADC IP 地址启用安全 RPC 功能和高可用性设置,请运行以下命令:

set rpcnode <ip> -secure on

注意:可能需要其他配置。有关详细信息,请参阅 Citrix 文档站点上的群集主题。

在 L3 群集部署中部署时,Citrix ADC 节点之间的数据包将通过使用源节点和目标节点的 NSIP 地址进行路由的未加密 GRE 隧道进行交换。当这种交换在 Internet 上发生时,在没有 IPsec 隧道的情况下,NSIP 将在 Internet 上公开。建议不要这样做,因为它不符合 Citrix ADC 的安全最佳实践。

Citrix 强烈建议客户建立自己的 IPsec 解决方案,以使用 L3 上的群集功能。

如果未使用 IP 转发功能,请使用以下命令禁用 L3 模式:

disable ns mode L3

使用安全 MEP 进行全局服务器负载平衡 (GSLB): 要加密适用于 GSLB 的 Citrix ADC 设备之间的 MEP,请从 NSCLI 运行以下命令:

set rpcNode <GSLB Site IP> -secure yes

使用基础结构模式设置保护 Citrix ADC 设备上的直通流量

Citrix Web App Firewall 基础结构模式设置可用于保护 Citrix ADC 设备上的直通流量。这些基础架构模式设置提供了基本级别的安全性,而不会破坏任何应用程序。以下列表总结了可用的基础结构模式设置。

  • 会话状态保护
  • 会话固定保护(仅启用 HTTP)
  • HSTS(启用 HTTP 严格传输安全性 (HSTS))
  • 强身份验证
  • 端到端 SSL 首选(TLS 1.2 和 TLS 1.1)
  • 代理HTTPS/拒绝所有其他流量

会话状态保护:

建议:启用 Citrix ADC:默认情况下对大多数实体启用

默认情况下,会话状态保护设置处于启用状态,不需要特定配置。将 Citrix ADC 设备配置为代理连接时;例如,当流量击中已配置的虚拟服务器或 TCP 或以上类型的服务时,Citrix ADC 设备会创建有状态会话。Citrix ADC 设备将继续维护这些连接的状态,并且仅处理落入此状态计算机的数据包。其他数据包被丢弃或重置。

以下服务类型实体在 Citrix ADC 设备上实现此状态行为。

  • ADNS_TCP
  • DIAMETER、DNS_TCP
  • FP-C
  • 格雷-C
  • HTTP
  • MYSQL 的,毫升机
  • NNTP
  • 甲骨文
  • 推, PPTP
  • 红茶匙,红茶匙
  • 网络连接器,网络连接器
  • SMPP
  • SSL、SSL_BRIDGE、SSL_DIAMETER、SSL_PUSH
  • 系统日志 _ TCP
  • TCP
  • ADNS_TCP
  • RNAT(已启用 rnat_tcpproxy)

会话固定保护(通过启用 HttpOnly 标志或通过添加重写策略):

建议:若要为 Citrix ADC 设备或后端服务器
Citrix ADC 设置的 Cookie 启用 HttpOnly:默认情况下为 Citrix ADC 插入的 Cookie 启用,可通过重写后端服务器设置的 cookie。

HttpOnly:当您使用 HttpOnly 标记标记 cookie 时,它会向浏览器表示此 cookie 只能由服务器访问。任何从客户端脚本访问 cookie 的尝试都是严格禁止的。如果正确实施,只有 HttpTpOnly 的 cookie 使得大量的常见 XSS 攻击更加难以完成。

以下是设置了 HttpOnly 标志的 cookie 的示例:

Set-Cookie: ASP.NET_SessionId=ig2fac55; path=/; HttpOnly

默认情况下,Citrix ADC 插入的 Cookie 用于 Cookie 插入持久性,将设置 HttpOnly 标志以指示 cookie 不可编写脚本,并且不应向客户端应用程序显示。因此,客户端脚本无法访问 cookie,并且客户端不容易受到跨站点脚本的影响。

要使用命令行界面启用 HttpOnly 标志设置,请执行以下操作:

在命令提示窗口中,键入:

set lb parameter -HttpOnlyCookieFlag (ENABLED)  

使用重写策略为 Cookie 插入安全和 HttpTpOnly:

重写策略仅针对后端服务器发送的 Cookie 插入安全和 HTTP。

注意:安全和只有 HTTP 的 Cookie 可以一起完成 SSL VIP。对于非 SSL VIP,只需插入 HttpOnly 标志即可。

使用 Citrix ADC,可以包括服务器设置的 Cookie 的仅 HTTP 和安全标志。

  • HttpOnly-Cookie 上的此选项会导致 Web 浏览器仅使用 http(或 https)协议返回 cookie;非 http 方法(如 JavaScript 文档 .cookie 引用)无法访问 Cookie。此选项有助于防止由于跨站点脚本而导致的 Cookie 盗窃。
  • 安全-Cookie 上的此选项会导致 Web 浏览器仅返回 Cookie 值,当传输通过 SSL 加密时。此选项可用于防止通过连接窃听窃听窃取 cookie。

要使用命令行界面创建重写策略,请执行以下操作:

  1. 启用“重写”功能(如果尚未启用)。

    enable feature REWRITE
    
  2. 创建重写操作(此示例配置为同时设置安全标志和 HttpOnly 标志。如果其中一个缺失,请根据需要对其他组合进行修改)。

    add rewrite action <action name> replace_all http.RES.full_Header ""path=/; Secure; HttpOnly"" -search "regex(re!(path=/\\; Secure; HttpOnly)|(path=/\\; Secure)|(path=/\\; HttpOnly)|(path=/)!)" -bypassSafetyCheck YES
    

    示例:

    add rewrite action act_cookie_Secure replace_all http.RES.full_Header ""path=/; Secure; HttpOnly"" -search "regex(re!(path=/\\; Secure; HttpOnly)|(path=/\\; Secure)|(path=/\\; HttpOnly)|(path=/)!)" -bypassSafetyCheck YES
    
  3. 创建重写策略以触发操作。

    add rewrite policy <policy name> "http.RES.HEADER("Set-Cookie").EXISTS" <action name>
    

    示例:

    add rewrite policy rw_force_secure_cookie "http.RES.HEADER("Set-Cookie").EXISTS" act_cookie_Secure
    
  4. 将重写策略绑定到要保护的虚拟服务器(如果使用了安全选项,则应使用 SSL虚拟服务器)。

    bind lb vserver <vserver name> - <policy name> -priority <priority number> -gotoPriorityExpression NEXT -type RESPONSE
    

    示例:

    bind lb vserver mySSLVServer -policyName rw_force_secure_cookie -priority 100 -gotoPriorityExpression NEXT -type RESPONSE
    

    有关更多信息,请参阅 https://support.citrix.com/article/CTX138055

HSTS(启用 HTTP 严格传输安全性 (HSTS)):

建议:启用 Citrix ADC:在 Citrix ADC 软件版本 12.0 中,可以使用 CLI 启用此设置。在 Citrix ADC 软件 11.1 及更早版本中,可以使用重写策略启用此设置。

  • 在 Citrix ADC 软件 12.0 版本中,Citrix ADC 设备支持 HTTP 严格传输安全性 (HSTS),作为 SSL 配置文件和 SSL 虚拟服务器中的内置选项。

要使用 Citrix ADC 命令行启用 HSTS,请执行以下操作:

在命令提示窗口中,键入:

add ssl vserver <vServerName> -HSTS ( ENABLED ) maxage <positive_integer> -IncludeSubdomains ( YES | NO)

或者

add ssl profile <name> -HSTS ( ENABLED ) -maxage <positive_integer> -IncludeSubdomains ( YES | NO )

有关详细信息,请参阅 配置对 HTTP 严格传输安全性 (HSTS) 的支持

  • 在 Citrix ADC 软件 11.1 及更早版本中,可以通过创建重写策略并将其绑定到全局或有问题的虚拟服务器来启用 HTTP 严格传输安全性 (HSTS)。

在命令提示符下,键入以下命令:

add rewrite action <action name> insert_http_header Strict-Transport-Security ""max-age=157680000\”"

add rewrite policy <policy name> “true” <action name>

bind lb vserver <vserver name> - <policy name> -priority <priority number> END -type RESPONSE

示例:

add rewrite action insert_STS_header insert_http_header Strict-Transport-Security ""max-age=157680000\”"

add rewrite policy enforce_STS "true” insert_STS_header

bind lb vserver vs1 -policyName enforce_STS -priority 100 -gotoPriorityExpression END -type RESPONSE

有关详细信息,请参阅以下主题:

https://support.citrix.com/article/CTX205221

https://www.citrix.com/blogs/2010/09/10/strict-transport-security-sts-or-hsts-with-citrix-netscaler-and-access-gateway-enterprise/

强身份验证:

对于敏感数据、应用和管理的所有访问,应启用强身份验证(或多重身份验证 — MFA)。

有关如何为多因素身份验证设置敏感应用的详细信息,请参阅多因素 (nFactor) 身份验证

端到端 SSL 首选(TLS 1.2 和 TLS 1.1):

建议在前端和后端都使用 SSL。SSLv3 和 TLS v1.0 可以在 SSL 实体上禁用,因为已经报告了针对这些实体的安全漏洞。您只能启用 TLS 1.1 和 TLS 1.2。如果可能,在面向客户端的 VIP 上只有 TLS 1.2 版本。它可以在 SSL 实体级别或配置文件级别完成,所有 SSL 实体都从配置文件继承 SSL 设置。

要使用命令行界面禁用 SSL 实体,请执行以下操作:

在命令提示窗口中,键入:

set ssl vserver <vServerName> -ssl2 DISABLED   -ssl3  DISABLED   -tls1   DISABLED

set ssl service <vServiceName> -ssl2 DISABLED   -ssl3  DISABLED   -tls1   DISABLED

Citrix ADC 推荐的密码套件:

Citrix ADC 支持以下密码,这些密码不包括“强制丢弃”列表中的任何组件。这些通过密钥交换(RSA、DHE 和 ECDHE)进行组织,然后将性能较高的密钥放在顶部,而安全性较高的密钥放在底部:

推荐 RSA 密钥交换密码套件:

  • TLS1-AES-128-CBC-SHA
  • TLS1-AES-256-CBC-SHA
  • TLS1.2-AES-128-SHA256
  • TLS1.2-AES-256-SHA256
  • TLS1.2-AES128-GCM-SHA256
  • TLS1.2-AES256-GCM-SHA384

推荐 DHE 密钥交换密码套件:

  • TLS1-DHE-RSA-AES-128-CBC-SHA
  • TLS1-DHE-RSA-AES-256-CBC-SHA
  • TLS1.2-DHE-RSA-AES-128-SHA256
  • TLS1.2-DHE-RSA-AES-256-SHA256
  • TLS1.2-DHE-RSA-AES128-GCM-SHA256
  • TLS1.2-DHE-RSA-AES256-GCM-SHA384

推荐 ECDHE 钥匙交换密码套件:

  • TLS1-ECDHE-RSA-AES128-SHA
  • TLS1-ECDHE-RSA-AES256-SHA
  • TLS1.2-ECDHE-RSA-AES-128-SHA256
  • TLS1.2-ECDHE-RSA-AES-256-SHA384
  • TLS1.2-ECDHE-RSA-AES128-GCM-SHA256
  • TLS1.2-ECDHE-RSA-AES256-GCM-SHA384

按首选顺序推荐密码套件:

以下密码列表包括 RSA、DHE 和 ECDHE 密钥交换。它在安全性、性能和兼容性之间提供了最佳的折衷。

  1. TLS1.2-AES128-GCM-SHA256
  2. TLS1.2-AES-128-SHA256
  3. TLS1.2-ECDHE-RSA-AES128-GCM-SHA256
  4. TLS1.2-ECDHE-RSA-AES-128-SHA256
  5. TLS1-ECDHE-RSA-AES128-SHA
  6. TLS1.2-DHE-RSA-AES128-GCM-SHA256
  7. TLS1.2-DHE-RSA-AES-128-SHA256
  8. TLS1-DHE-RSA-AES-128-CBC-SHA
  9. TLS1-AES-128-CBC-SHA

代理 HTTPS/拒绝所有其他流量:

在可行的情况下,通过使用安全的 SSL 版本(TLSV1.1 和 TLSV1.2)和安全密码,使用 SSL VIP 更好地加密数据。为 VIP 和后端 SSL 服务启用 SSL 时,应考虑 SSL TPS 和 SSL 吞吐量。

行政和管理

本节提供了可应用于提高 Citrix ADC 和 Citrix ADC SDX 设备安全性的特定配置更改的示例。有关 Citrix ADC 配置最佳实践的其他指导,请参阅本文Citrix ADC 设备的通用实现的推荐设置和最佳实践

系统和用户帐户

更改 NSroot 超级用户帐户的密码: 您不能删除内置 NSroot 超级用户。因此,将 nsroot 帐户的默认密码更改为安全密码。若要更改 nsroot 用户的默认密码,请执行以下过程:

  1. 以超级用户身份登录并打开配置实用程序。
  2. 在导航窗格中,展开系统节点。
  3. 选择“用户”节点。
  4. 在“系统用户”页上,选择 nsroot 用户。
  5. 选择更改密码。
  6. 在“密码”和“确认密码”字段中键入所需的密码。
  7. 单击确定。

创建替代超级用户帐户:若 要创建超级用户帐户,请运行以下命令:

add system user <newuser> <password>

bind system user <newuser> superuser 0

使用此超级用户帐户,而不是默认的 nsroot 超级用户帐户。

对于 Citrix ADC SDX 部署,管理员必须在初始设置后更改 Citrix ADC SDX 设备及其 GUI 管理控制台的默认凭据。要更改默认用户的密码,请执行以下步骤:

  1. 以超级用户身份登录并打开配置实用程序。
  2. 在导航窗格中,展开系统节点。
  3. 选择“用户”节点。
  4. 在“系统用户”页面上,选择默认用户。
  5. 选择修改。
  6. 在“密码”和“确认密码”字段中键入所需的密码。
  7. 单击确定。

注意:在 Citrix ADC 11.0 及更高版本中,本地用户和管理员必须选择强密码。密码复杂性要求的示例如下:

  • 密码的长度必须至少为八个字符。
  • 密码不得包含字典单词或字典单词的组合。
  • 密码必须至少包含一个大写字母、一个小写字母、一个数字和一个特殊字符。

强密码可以通过设置两个参数来强制执行,一个用于密码的最小长度,另一个用于强制密码的复杂性:

set system parameter -localAuth ( ENABLED | DISABLED ) -minpasswordlen <positive_integer> -natPcbForceFlushLimit <positive_integer> -natPcbRstOnTimeout ( ENABLED | DISABLED )
-strongpassword ( ENABLED | DISABLED ) -promptString <string> -rbaOnResponse ( ENABLED | DISABLED ) -timeout <secs>

在需要多个管理员的部署中,请考虑使用外部身份验证方法对用户进行身份验证,例如 RADIUS、TACCS+ 或 LDAP (S)。

使用 SSH 密钥和无密码访问 Citrix ADC: 在需要管理大量 Citrix ADC 设备的部署中,请考虑使用 SSH 密钥和无密码。有关如何配置此功能的信息,请参阅使用 SSH 密钥且无密码访问 Citrix ADC 设备

创建用于数据保护的系统主密钥:在 Citrix ADC 11.0 版本中,需要创建系统主密钥 来保护某些安全参数,例如 LDAP 身份验证所需的服务帐户密码和本地存储的 AAA 用户帐户。 要创建系统主密钥,请执行以下操作:

  1. 使用命令行界面,以系统管理员身份登录。
  2. 输入以下命令:
create kek <file name>

注意

  • 执行创建系统 kek 命令后,KEK 将用于所有密码加密。
  • 您无法删除 KEK 文件。如果您有 shell 访问权限,并且错误地删除了密钥片段文件,则可能会导致配置丢失、同步失败和登录失败。以下是一些需要注意的要点:

    • 降级时始终使用与正在安装的内部版本匹配的旧配置文件;否则登录、源配置、同步、故障转移可能会失败。
    • 如果任何密钥片段文件丢失或损坏,敏感数据的加密/解密将导致失败,从而可能导致配置丢失、同步失败和登录失败。
  • “密码短语”长度必须至少为 8 个字符。

使用访问控制列表:

默认情况下,所有协议和端口(包括 GUI 和 SSH)都可以在 Citrix ADC 设备上访问。访问控制列表 (ACL) 只允许明确指定的用户访问端口和协议,从而帮助您安全地管理设备。

关于控制对设备的访问的建议:

  • 请考虑使用 Citrix Gateway 将对设备的访问限制为 GUI。对于除了 GUI 之外需要访问方法的管理员,Citrix Gateway 应配置默认的“拒绝”ACL,用于端口 80、443 和 3010,但对于受信任的 IP 地址来访问这些端口,应配置一个显式的“允许”。

此策略可通过以下 NSCLI 命令扩展,以便与一系列受信任的 IP 地址一起使用:

add acl local_access allow -srcip 192.168.0.1-192.168.0.3 -destip 192.168.0.1-192.168.0.3

apply acls
  • 如果您使用 SNMP,则显式允许具有 ACL 的 SNMP 流量。以下是一组示例命令:
add acl snmp1-ssh ALLOW -srcip 10.0.0.1-10.0.0.20 -destip 192.168.0.2-192.168.0.3 -destport 161 -protocol udp

add acl snmp2-ssh ALLOW -srcip 172.16.0.1-172.16.0.20 -destip 192.168.0.2-192.168.0.3 –destport 161 -protocol udp

apply acls

在上述示例中,命令提供对两个已定义子网的所有 SNMP 查询的访问权限,即使这些查询是针对适当定义的社区也是如此。

您可以在 NSIP、SNIP 和 MIP 地址上启用管理功能。如果启用了其中任何一个,请通过 ACL 提供对 NSIP、SNIP 或 MIP 地址的访问权限,以保护对管理功能的访问权限。管理员还可以配置设备,使其无法通过 ping 命令访问。

  • 打开最短路径优先 (OSPF) 和 IPsec 不是基于 TCP 或 UDP 的协议。因此,如果您需要设备支持这些协议,请使用 ACL 明确允许使用这些协议的流量。运行以下命令定义 ACL 以通过协议编号指定 OSPF 和 IPsec:
add acl allow_ospf allow -protocolnumber 89

add acl allow_ipsec allow –protocolnumber 50
  • 如果使用 XML-API Web 服务,请完成以下任务以保护 API 接口:
  • 向主机提供使用 ACL 访问接口的权限。例如,运行以下命令以启用 10.0.1-20 和 172.16.0.1-20 IP 地址范围内的主机访问 XML-API 接口:
add acl xml-api1 ALLOW -srcip 10.0.0.1-10.0.0.20 -destip 192.168.0.2-192.168.0.3 -destport 80 -protocol tcp

add acl xml-api2 ALLOW -srcip 172.16.0.1-172.16.0.20 -destip 192.168.0.2-192.168.0.3 -destport 80 -protocol tcp

apply acls
  • 通过在设备上使用适当的响应程序策略配置 HTTPS 前端服务器,为 XML-API Web 服务指定安全传输。这适用于运行 Citrix ADC 软件版本 8.0 或更高版本的设备。以下是一组示例命令:
enable ns feature responder

add responder policy allow_soap 'HTTP.REQ.URL.STARTSWITH("/soap").NOT' RESET

add lb vserver xml-https ssl 192.168.0.4 443

add server localhost 127.0.0.1

add service xml-service localhost HTTP 80

bind lb vserver xml-https xml-service

bind lb vserver xml-https -policyName allow_soap -type REQUEST -priority 1

add ssl certkey xml-certificate -cert testcert.cert -key testcert.key

bind ssl certkey xml-https xml-certificate

对管理用户使用基于角色的访问控制:

Citrix ADC 设备包括四个命令策略或角色,如操作员、只读、网络和超级用户。此外,您可以定义命令策略,为不同角色创建不同的管理帐户,并将角色所需的命令策略分配给这些帐户。以下是一组示例命令,用于限制只读用户的只读访问权限:

add system user readonlyuser

bind system user readonlyuser read-only 0

有关配置用户、用户组或命令策略的更多信息,请参阅 Citrix 文档:

配置系统会话超时:

提供了会话超时间隔,以限制会话(GUI、CLI 或 API)在不使用时保持活动状态的时间持续时间。对于 Citrix ADC 设备,系统会话超时可配置为以下级别:

  • 用户级别超时。适用于特定用户。

GUI:导航到 系统 > 用户管理 > 用 ,选择用户并编辑用户的超时设置。 CLI:在命令提示符下,输入以下命令:

set system user <name> -timeout <secs>
  • 用户组级别超时。适用于组中的所有用户。

GUI:导航到系统 > 用户管理 > ,选择一个组,然后编辑组的超时设置。 CLI:在命令提示符下,输入以下命令:

set system group <groupName> -timeout <secs>
  • 全局系统超时。适用于未配置超时的所有用户和组中的用户。

GUI:导航到 系统 > 设置 ,单击设 置全局系统参数 ,然后设置任何客户端空闲 超时 (secs) 参数。 CLI:在命令提示符下,输入以下命令:

set system parameter -timeout <secs>

为用户指定的超时值具有最高优先级。如果未为用户配置超时,则会考虑为成员组配置的超时。如果未为组指定超时(或用户不属于组),则将考虑全局配置的超时值。如果未在任何级别配置超时,则默认值 900 秒设置为系统会话超时。

您还可以限制超时值,以便不能配置会话超时值超出管理员配置的超时值。您可以将超时值限制在 5 分钟到 1 天之间。要限制超时值,请执行以下操作:

  • GUI:导航到系统 > 设置,单击“设 置全局系统参数,然后选择“受限超时”字段。
  • CLI:在命令提示符下,输入以下命令:
set system parameter -restrictedtimeout <ENABLED/DISABLED>

用户启用 ConteTimeout 参数后,如果超时值已配置为大于 1 天或小于 5 分钟的值,则将通知用户更改超时值。如果用户没有更改超时值,则默认情况下,超时值将在下次重新启动期间重新配置为 900 秒(15 分钟)。

此外,您可以为正在访问的每个接口指定超时持续时间。但是,为特定接口指定的超时值仅限于为访问该接口的用户配置的超时值。例如,假设用户“Publadmin”的超时值为 20 分钟。现在,访问接口时,用户必须指定一个在 20 分钟内的超时值。

要在每个接口配置超时持续时间:

  • CLI:使用以下命令在命令提示符上指定超时值:
set cli mode -timeout <secs>
  • API:指定登录负载中的超时值。

日志记录和监视

配置 NTP

Citrix 建议在设备上启用网络时间协议 (NTP),并将其配置为使用受信任的网络时间服务器。这可确保记录的日志条目和系统事件的时间准确无误,并与其他网络资源同步。

配置 NTP 时,必须修改 ntp.conf 文件以限制 NTP 服务器在敏感数据包中披露信息。

您可以运行以下命令在设备上配置 NTP:

add ntp server <IP_address> 10

enable ntp sync

修改您添加的每个受信任的 NTP 服务器的 ntp.conf 文件。每个服务器条目都应该有相应的限制条目。您可以通过运行 “查找找找到 ntp.conf 文件。—name ntp.conf”命令从设备的外壳提示符中。

配置 SNMP

Citrix ADC 设备支持 SNMP 协议的版本 3。SNMPv3 集成了管理和安全功能,如身份验证、访问控制和数据完整性检查。有关详细信息,请参阅 Citrix 文档上的“系统”>“SNMP”主题。

请注意,如果您没有配置至少一个 SNMP 管理器,设备将接受并响应来自网络中所有 IP 地址的 SNMP 查询。运行以下命令添加 SNMP 管理器并限制此行为:

add snmp manager <IP_address>

在不需要 SNMP 的部署中,应使用以下命令禁用该功能:

set ns ip <IP_Address> -snmp disabled

将日志记录配置到外部 Citrix ADC 日志主机

Citrix ADC 审核服务器会记录内核以及用户级守护程序中不同模块收集的所有状态和状态信息。审核服务器使管理员能够按时间顺序引用事件历史记录。审核服务器类似于从设备收集日志的 SYSLOG 服务器。审核服务器使用 nsroot 凭据从设备获取日志。

  • 本地审核服务器配置

运行以下命令以配置到 Citrix ADC 设备中的本地审核服务器的日志记录:

set audit nslogparams –serverip <hostname> -serverport <port>

  • 远程审核服务器配置

要配置远程计算机中审核服务器的日志记录,请在该计算机上安装审核服务器。以下是审核服务器选项示例:

./audserver -help
usage : audserver -[cmds] [cmd arguments]
cmds cmd arguments: -f <filename> -d debug
-help - detail help
-start - cmd arguements,[starts audit server]
-stop - stop audit server
-verify - cmd arguments [verifies config file]
-addns - cmd arguments [add a netscaler to conf file]
-version - prints the version info

请注意,这仅提供了用于记录由设备 ns.log 文件生成的审核消息的功能。要记录所有系统日志消息,请执行以下步骤:

  1. 从 /nsconfig/syslog.conf 文件中删除本地设施的日志文件规范。
  2. 将日志文件规范替换为远程 syslog 主机的日志主机名或 IP 地址,类似于以下条目:

    local0.* @10.100.3.53

    local1.* @10.100.3.53

  3. 将 syslog 服务器配置为接受来自上述日志记录设施的日志条目。要确定如何执行此操作,请参阅 syslog 服务器文档。
  4. 对于大多数使用标准系统日志软件的基于 UNIX 的服务器,必须将消息和 nsvpn.log 文件的本地设施配置条目添加到 syslog.conf 配置文件中。设施点值必须与设备上配置的设施点值相对应。
  5. 默认情况下,任何基于 UNIX 的计算机中的远程系统日志服务器不会侦听远程日志。因此,运行以下命令启动远程 syslog 服务器:
syslogd -m 0 –r

注意:请参阅部署在审核服务器中的 syslog 变体的等效选项。

LOM 配置

Citrix 强烈建议采取以下措施来保护 LOM 接口的安全:

  • 请勿将 LOM 端口公开到 Internet 上。
  • 将 LOM 部署在 SPI 防火墙后面。
  • 将 LOM 部署到从不受信任的网络流量逻辑(单独的 VLAN)或物理(单独的 LAN)分离的网络段上。
  • 为 LOM 和 Citrix ADC 管理端口设置不同的用户名、密码、SSL 证书和 SSL 密钥值。
  • 确保用于访问 LOM 管理接口的设备专门用于网络管理目的,并放置在与其他管理设备端口位于同一物理 LAN 或 VLAN 的管理网段上。
  • 要轻松识别和隔离 LOM IP 地址,请为 LOM 管理接口和管理服务器保留特殊 IP 地址(私有子网)。请勿将保留 IP 子网与受管设备的 LAN 接口结合使用。不建议使用 DHCP 分配的动态 IP 地址,因为它们会使基于 LAN 区段外的 MAC 地址实现防火墙访问控制列表变得困难。
  • 设置至少 8 个字符的密码,包括字母数字 和特殊字符的组合。频繁更改密码。

应用程序和服务

配置 Citrix ADC 以删除无效 HTTP 请求

Citrix 强烈建议对 Citrix ADC 设备进行严格检查和强制执行 HTTP 请求的配置,以防止无效的 HTTP 请求通过虚拟服务器。这可以通过使用 NSCLI 上的以下命令将内置 HTTP 配置文件 nshttp_default_strict_验证绑定到虚拟服务器来完成:

show ns httpProfile (Shows the available http profile (default+user configured profiles))

set lb vserver <vserver name> -httpProfileName nshttp_default_strict_validation

Citrix 建议使用此选项的客户在将暂存环境发布到生产环境之前对其进行测试。

针对 HTTP 拒绝服务攻击配置保护

Citrix ADC 设备固件支持针对 HTTP 拒绝服务攻击的有限对策,包括“慢读”类型攻击。您可以通过使用设备的 shell 提示符中的 nsapimgr 实用程序来配置这些功能:

  • 小窗口阈值(默认值 = 1)
  • 小窗口 空闲 超时 (默认值 =7 秒)
  • 小窗口清洗阈值(默认值 = 100)
  • 小窗口保护(默认值 = 启用)

默认设置足以防止 HTTP 拒绝服务攻击(包括慢读攻击),但对于其他攻击,可能需要对参数进行一些调整。

要防止此类攻击,请使用设备的 shell 提示符中的以下 nsapimgr 命令向上调整小_window_threshold 属性:

$ nsapimgr –ys small_window_threshold=<desired value>

您可以通过从设备的 shell 提示符中使用 nsconmsg —d stat 命令监视以下计数器来验证防御 HTTP 拒绝服务攻击的保护:

  • nstcp_curo_win_PCB:此计数器跟踪当前窗口值较低的 PCB 数量。
  • nstcp_err_conndrop_at_at_pass:当设备检测到该计数器时,将数据包从一侧传递到另一侧时,它已超过 nscfg_小window_idle超时值。
  • 当重新传输过程中失效的时间超过了 nscfg_小型_idle超时值时,此计数器会递增。
  • NSTCP_Cur_PCB_Probed_WiDKA:此计数器跟踪使用 KA 探头探测的浪涌队列中的 PCB 数量。

Citrix 建议使用此选项的客户在将暂存环境发布到生产环境之前对其进行测试。

配置 Citrix ADC 以防御 TCP 欺骗攻击

以下命令可用于帮助保护后端服务器免受 TCP 欺骗攻击:

set ns tcpProfile profile1 -rstWindowAttenuate ENABLED -spoofSynDrop ENABLED

Done

set lb vserver lbvserver1 -tcpProfileName profile1

Done

Citrix 建议使用此选项的客户在将暂存环境发布到生产环境之前对其进行测试。

将 Citrix ADC 配置为接受特定的 HTTP 标头

可以将 Citrix ADC 配置为仅接受特定的 HTTP 标头。这可以通过添加重写操作来实现,以限制传递给后端服务器的特定 HTTP 头的网络流量。

以下全局重写操作仅向服务器发送带有标头(如主机、接受和测试)的网络流量:

add rewrite action act1 replace_all q/HTTP.REQ.FULL_HEADER.after_str("\r\n")/     q{TARGET.REGEX_SELECT(re/(iu)^(Host|Accept|test):.*\r\n/) ALT ""} -pattern q{re/(U).+:.+r\n/}

add rewrite policy pol1 HTTP.REQ.IS_VALID act1

bind rewrite global pol1 100

注意:这些命令仅在 Citrix ADC 10.5 及更高版本中受支持。

配置关闭通知

关闭通知是指示 SSL 数据传输结束的安全消息。符合 RFC 5246:客户端和服务器必须共享连接结束的知识,以避免截断攻击。任何一方均可发起交换结束信息。任何一方都可以通过发送关闭通知警报来启动关闭。关闭警报后收到的任何数据都将被忽略,除非传输了其他一些致命警报,否则每个方都需要在关闭连接的写入端之前发送一个 close_notify 警报。为 了确保捕获 TLS 终止事件的审核事件作为超级用户或 sysadmin 登录 CLI 并执行以下命令:

set ssl parameter -sendCloseNotify y

save ns config

DNSSEC 安全建议

Citrix 建议对使用 DNSSEC 的客户应用以下建议:

KSK/ZSK 私钥使用 RSA 1024 位或更高版本

NIST 建议 DNS 管理员在 2015 年 10 月 1 日之前保持 1024 位 RSA/SHA-1 和/或 RSA/SHA-256 ZSK。

为 DNSSEC 密钥过期启用 SNMP 警报

默认情况下,在 Citrix ADC 设备上启用 DNSSEC 密钥过期的 SNMP 警报。密钥到期通知是通过称为 DNSSKey过期的 SNMP 陷阱发送的。三个 MIB 变量,即 DNSS 密钥名称、DNSS 密钥到期时间和 DNSS 密钥单位软件到期时间,与 DNSS 密钥到期 SNMP 陷阱一起发送。有关详细信息,请参阅 Citrix ADC SNMP OID 参考。

在 x.509 证书过期之前,滚动 KSK/ZSK 私钥

在 Citrix ADC 设备上,可以使用预发布和双签名方法对区域签名密钥和密钥签名密钥执行滚动。有关详细信息,请参阅 Citrix 文档上的“域名系统”>“配置 DNSSEC”主题。

安全 DNSSEC ADNS 服务器

如果设备在 DNSSEC 代理模式下配置,则会缓存来自后端 ADNS 服务器的响应,并将缓存的响应转发到 DNS 客户端。

如果 Citrix ADC 对于给定区域具有权威性,则在 Citrix ADC 上配置该区域中的所有资源记录。要对权威区域进行签名,您必须为区域创建密钥(区域签名密钥和密钥签名密钥),将密钥添加到 ADC,然后对区域进行签名

要将 Citrix ADC 配置为权威服务器,请执行以下步骤:

  1. 添加 ADNS 服务。

    例如:

    add service s1 <ip address> adns 53`
    
  2. 创建 DNS 密钥。

    例如,要充当“com”域的权威服务器:

    create dns key -zoneName com -keytype ksK -algorithm rsASHA1 -keysize 3000 -fileNamePrefix com.ksk.rsasha1.3000
    
    create dns key -zoneName com -keytype zsk -algorithm rsASHA1 -keysize 3000 -fileNamePrefix com.zsk.rsasha1.3000
    

    注意:您必须创建一次 DNS 密钥,并将它们保存在 /nsconfig/dns 中。

  3. 添加 DNS 密钥。

    例如,

    add dns key com.zsk.3000 /nsconfig/dns/com.zsk.rsasha1.3000.key /nsconfig/dns/com.zsk.rsasha1.3000.private
            add dns key com.ksk.3000 /nsconfig/dns/com.ksk.rsasha1.3000.key /nsconfig/dns/com.ksk.rsasha1.3000.private
    
  4. 为“com”区域添加 NS 和 SOA 记录,然后签署该区域。

    add dns soaRec com -originServer n1.com -contact citrix
    add dns nsrec com n1.com
    add dns zone com -proxyMode no
    add dns addRec n1.com 1.1.1.1

    sign dns zone com

注意:此外,您还必须在 DNS 全局参数中启用 DNSEC 扩展参数。

有关将 Citrix ADC 配置为权威域名服务器的详细信息,请参阅 Citrix 文档上的“域名系统”>“将 Citrix ADC 配置为 ADNS 服务器”主题。

旧版配置

配置 Citrix ADC 以禁用 SSLv2 重定向

如果在 Citrix ADC 设备上启用 SSL v2 重定向功能,则设备将执行 SSL 握手并将客户端重定向到配置的 URL。如果禁用此功能,设备将拒绝使用 SSL v2 客户端执行 SSL 握手过程。

运行以下命令以禁用 SSLv2 重定向:

set ssl vserver <vserver_name> -sslv2redirect DISABLED -cipherredirect DISABLED

注意:从 Citrix ADC 软件 9.2 版开始,SSLv2 重定向和密码重定向功能默认处于禁用状态。

将 Citrix ADC 10.0 及更早版本配置为使用安全的 SSL 重新协商

要配置 Citrix ADC 以防止对 Citrix ADC 软件版本 9.3e 或 10.0 进行不安全的 SSL 重新协商,请运行以下命令:

set ssl parameter -denySSLReneg NONSECURE

对于 Citrix ADC 软件的早期版本,请运行以下命令以禁用 SSL 重新协商:

set ssl parameter -denySSLReneg ALL

以下命令仅允许对安全客户端和服务器进行重新协商:

set ssl parameter -denySSLReneg NONSECURE

有关详细信息,请参阅知识中心文章 CTX123680,如何配置和使用 -denySSLReneg 参数

Citrix ADC 加密建议

本节详细介绍了为确保加密材料在 Citrix ADC 设备上得到正确保护而应遵循的一些关键步骤。它还提供了有关如何配置设备以使用此材料来保护设备本身、后端服务器和最终用户的信息。

管理 TLS 证书和密钥

为 NDPP 部署配置 TLS 密码套件

有关 NDPP 部署支持的 TLS 密码套件的列表,请参阅https://www.citrix.com/content/dam/citrix/en_us/documents/downloads/netscaler-adc/Common-criteria-documents-for-NetScaler-10.5.zip

要确保仅在设备上配置已批准的密码套件,请完成 CLI 中的以下配置步骤:

  1. 从虚拟服务器取消绑定所有密码

    unbind ssl vs v1 –cipherName FIPS
    
  2. 仅绑定 TLS1-AES-256-CBC-SHA,然后绑定以下命令:

    bind ssl vs v1 –cipherName <cipher>
    
    bind ssl vs v1 -cipherName TLS1-AES-256-CBC-SHA
    

导入受信任的根 CA 证书

  1. 使用安全文件传输实用程序(例如 scp 或 WinSCP)将服务器颁发者(根)证书传输到 Citrix ADC 设备的 /nsconfig/ssl 目录。

注意:您必须通过 SCP 或 WinSCP 身份验证为超级用户才能完成此步骤。

  1. 以系统管理员或超级用户身份登录到 Citrix ADC 设备,然后键入以下命令:
add ssl certkey <Certificate_Name> –cert <Cert_File_Name>

注意:仅安装来自已知可信的证书颁发机构的根 CA 证书。您必须删除所有其他证书。

导入 PKCS #12 (.PFX) 证书和密钥文件:

有关如何将证书和密钥文件导入 Citrix ADC 设备的详细信息,请参阅 Citrix 文档的“SSL 卸载和加速”>“导入现有证书和密钥”主题。

  1. 将 .pfx 文件传输到 /nsconfig/ssl 目录,如上一节中的步骤 1 所述。

  2. 以系统管理员或超级用户身份通过 CLI 对 Citrix ADC 设备进行身份验证,并执行以下命令:

    convert ssl pkcs12 Cert-Client-1.pfx -export -certFile Cert-Client-1 -keyFile Key-Client-1
    
  3. 将证书添加到 Citrix ADC 设备,如下所示:

    add ssl certkey Clent-Cert-1 –cert Cert-Client-1
    
  4. 保存当前配置。

    save ns config
    

注意: 从 Citrix ADC 11.0 版本开始,PKCS #12 (.PFX) 文件将自动转换为 PEM,并将所有证书自动添加并链接到 CA。

使用受信任的 CA 安装证书和密钥对:

要从公有或企业证书颁发机构 (CA) 获取证书,您必须首先生成私有密钥和证书签名请求 (CSR)。这样做如下:

  1. 以系统管理员或超级用户身份向 Citrix ADC CLI 进行身份验证。

  2. 创建 RSA 私钥。

    create fipsKey m1 -modulus 2048
    
  3. 创建证书签名请求 (CSR):

    create certreq csr_1 -fipsKeyName m1 -countryName IN -stateName BA -organizationName citrix
    
  4. 向 CA 提交 CSR。

对于大多数商业和企业 CA,这通常是在电子邮件请求中完成的。但是,提交方法可能因企业 CA 环境而异。CA 通过电子邮件返回有效证书,但这也可能因企业 CA 而异。收到来自 CA 的证书后,将其安全地复制到 /nsconfig/ssl 目录。

以超级用户或系统管理员身份登录并从 CLI 运行以下命令:

添加 SSL 证书密钥 CK_1-证书 1_1-证书密钥 M1

Citrix ADC-FIPS 建议

在基于 FIPS 的部署中配置 Citrix ADC SDX

如果您是现有的 FIPS 客户,并且使用 Citrix ADC SDX 设备实现真正的多租户,请使用经 FIPS 认证的 Citrix ADC MPX 设备终止 TLS 并将流量转发到 Citrix ADC SDX 设备。或者,也可以使用 Thales 外部 HSM。 更改 FIPS 加密卡密码 当将 Citrix ADC 的 FIPS 认证版本与硬件安全模块 (HSM) 一起使用时,请更改默认安全官员 (SO) 并设置新的用户密码,如下所示。如果您不知道启用了 FIPS 的 Citrix ADC 设备的默认 SO 密码,请联系 Citrix 技术支持。 注意:只有超级用户或系统管理员才能执行此任务。

set ssl fips -initHSM Level-2 <soPassword> <oldSoPassword> <user-Password> [-hsmLabel <string>]

save configuration

initHSM

FIPS 初始化级别。该设备目前支持 2 级(FIPS 140-2)。 这是一个强制性的论点。 可能的值:2 级

HSM 标签

用于标识硬件安全模块 (HSM) 的标签。

最大长度:31

注意:FIPS 卡上的所有数据将使用上述命令擦除。

将 HSM 密码存储在安全位置

根据贵公司的操作程序,HSM 的密码应存储在一个安全的位置。

注意:在三次登录尝试失败后,HSM 被锁定。锁定后,它将变为不可操作,并且您无法更改其配置。

其他功能:Citrix Web App Firewall 和 Citrix Gateway

本节提供了可应用于 Citrix Web App Firewall 和 Citrix Gateway 的配置更改示例,以提高已部署设备的安全性。本节还包含有关构建多层或安全性的信息。

Citrix Web App Firewall 安全建议

以双臂模式部署设备

通过双臂模式安装,设备物理位置位于设备保护的用户和 Web 服务器之间。连接必须通过设备。这种安排最大限度地减少了在设备周围找到路径的几率。

使用“默认拒绝”策略

Citrix 建议管理员在全局级别使用拒绝所有策略配置 Citrix Web App Firewall,以阻止与 Citrix Web App Firewall 策略不匹配的所有请求。以下是用于在全局级别配置“拒绝全部”策略的命令集示例:

add appfw profile default_deny_profile –defaults advanced

add appfw policy default_deny_policy NS_TRUE default_deny_profile

bind appfw global default_deny_policy <PRIORITY>

注意:优先级设置应确保最后评估默认策略(仅当请求与任何其他配置的策略不匹配时)。

Citrix ADC 软件版本 9.2 包括默认配置文件,例如 appfw_block,配置了与 Citrix Web App Firewall 策略不匹配的阻止请求。运行以下命令来设置默认配置文件:

set appfw settings -defaultProfile appfw_block

Citrix Web App Firewall — 构建多层安全性

以下准则可帮助您构建多个安全层,具体取决于您的环境和受支持的应用程序。

第一级安全

要构建第一层安全性,请执行以下操作:

  • 启用缓冲区溢出、SQL 注入和跨站点脚本。
  • 当应用程序非常特别需要访问哪些 URL 并且必须防止强制浏览时,就需要启动 URL。
  • 如果您的应用程序期望在表单字段中输入,请启用字段格式检查。

XSS 检查可能会产生误报,因为许多公司都安装了大量的 Java 增强型 Web 内容,这些内容违反了相同的源规则。如果您在此类网站上启用 HTML 跨站点脚本检查,则必须生成适当的例外,以便检查不会阻止合法活动。

建议推出第一层,查找误报,部署异常,然后转到下一层。分阶段实现有助于管理 AppFW 部署。

第二级安全

要构建第二层安全性,请执行以下操作:

除了缓冲区溢出、SQL 注入和跨站点脚本之外,还启用配置文件上的签名。有 1300 多个签名。尝试仅启用适用于保护应用程序的签名,而不是启用所有签名规则。

建议推出第二层,查找误报,部署异常,然后转到下一层。分段实现有助于管理 Citrix Web App Firewall 部署。

第三级安全

要构建第三层安全性,请执行以下操作:

  • 根据应用程序需求,启用高级配置文件安全检查,如 CSRF 标记、Cookie 一致性。在需要它的应用程序的部分表单字段一致性。
  • 高级安全检查需要更多的处理,可能会影响性能。除非您的应用程序需要高级安全性,否则您可能希望从基本配置文件开始,并根据应用程序的要求加强安全性。

基本 Citrix Web App Firewall 配置文件中禁用的安全检查都在 HTTP 响应中的对象上运行。因此,这些安全检查需要更多的资源。Citrix Web App Firewall 执行响应端保护时,它需要记住发送到每个客户端的信息。例如,如果表单受 Citrix Web App Firewall 保护,则在响应中发送的表单字段信息将保留在内存中。当客户端在下一个后续请求中提交表单时,将检查信息发送到 Web 服务器之前是否存在不一致。这个概念被称为会话化。安全检查,如开始 URL 中的 URL 外壳、Cookie 一致性、表单字段一致性和 CSRF 表单标记都意味着会话化。这些安全检查使用的 CPU 和内存资源量会随通过 Citrix Web App Firewall 发送的请求数线性递增。 例如:

  • 启用表单字段一致性检查:需要此检查来验证 Web 表单是否未被客户端不正确地修改。以表单形式提供和托管关键信息的应用程序需要检查。

  • CSRF 表单标记检查:这是对表单的另一种检查。跨站请求伪造 (CSRF) 表单标记检查由受保护的网站发送给具有唯一和不可预知的 FormID 的用户的每个 Web 表单,然后检查用户返回的 Web 表单,以确保提供的 ForMID 是正确的。此检查可防止跨站点请求伪造攻击。如果应用程序具有基于 Web 的表单,则需要启用此检查。与深入分析 Web 表单的某些其他安全检查相比,此检查所需的 CPU 处理能力相对较少。因此,它能够处理大容量攻击,而不会严重降低受保护网站或 Citrix Web App Firewall 本身的性能。

Citrix Web App Firewall 工作流步骤

下图说明 Citrix Web App Firewall 工作流步骤:

Citrix Web App Firewall 工作流步骤

以下是 Citrix Web App Firewall 工作流中涉及的高级别步骤:

  1. 配置安全配置文件。
  2. 为所有已知威胁-负模型应用签名。
  3. 配置可以检测需要激活此安全配置文件的正确流量流量的流量策略。

您已准备好让生产流量传递系统。第一级流量完成。 此外,配置学习基础设施。很多时候,客户希望在生产流量中学习,因此应用签名将避免任何风险。执行以下步骤: a. 配置学习基础结构。 b. 部署学习的保护规则。 c. 在上线前 验证学习数据以及应用的签名。

Citrix Gateway 安全建议

使用“默认拒绝”策略

Citrix 建议管理员在全局级别使用“拒绝全部”策略配置 Citrix Gateway,此外还要使用授权策略选择性地启用对资源的访问。

默认情况下,“默认指标操作”参数设置为“拒绝”。验证此设置并向每个用户授予显式访问权限。您可以使用 CLI 上的“显示默认处理操作”命令来验证设置。要将参数设置为拒绝全局级别的所有资源,请从 CLI 运行以下命令:

set vpn parameter -defaultAuthorizationAction DENY

使用服务器之间的 TLS1.1/1.2 通信

Citrix 强烈建议将 TLS1.1/1.2 用于 Citrix Gateway 设备与其他服务(如 LDAP 和 Web Interface 服务器)之间的链接。不建 议使用此协议的旧版本 1.0 和 SSLv3 及更早版本。

使用“Intranet 应用程序”功能 使用 Intranet 应用程序定义哪些网络被 Citrix Gateway 插件拦截并发送到网关。以下是定义拦截的示例集命令:

add vpn intranetApplication intra1 ANY 10.217.0.0 -netmask 255.255.0.0 -destPort 1-65535 -interception TRANSPARENT

bind vpn vserver v1 –intranetapp intra1

其他信息资源

有关 Citrix ADC 和 CitCitrix Gateway 设备的其他安全信息,请参阅以下资源:

有关 Citrix ADC 配置的进一步帮助,您可以通过以下网站提交支持请求:https://www.citrix.com/support.html

Citrix ADC MPX、VPX 和 SDX 安全性最佳实践简介