介绍Citrix ADC MPX, VPX和SDX安全的最佳实践

    Citrix ADC MPX设备是一个应用交付控制器,可以加速网站,提供L4-L7流量管理,提供集成的Citrix Web应用防火墙,并卸载服务器。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。有关更多信息,请参见//m.giftsix.com/about/citrix-product-guide/

    部署指南

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

    物理安全最佳实践

    将Citrix ADC设备部署在安全的位置

    Citrix ADC设备必须部署在一个安全的位置,具有足够的物理访问控制,以保护设备免受未经授权的访问。至少,对服务器室的访问必须用锁、电子读卡器或其他类似的物理方法进行控制。

    其他措施包括使用电子监控系统,例如闭路电视,以持续监控房间的活动。在未经授权的入侵事件中,该系统的输出必须通知安全人员。如果有闭路电视,录制的画面可供审核使用。

    安全访问电器前面板和console端口

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

    电源保护

    Citrix ADC设备(或托管服务器)必须使用合适的不间断电源进行保护。在停电的情况下,不间断电源供应确保设备的持续运行,或允许物理或虚拟Citrix adc的受控关闭。不间断电源的使用也有助于对电力尖峰的保护。

    密钥保护

    如果在您的部署中需要对加密密钥进行额外的保护,请考虑使用符合FIPS 140-2 Level 2的设备。FIPS平台使用一个硬件安全模块来保护设备中的关键加密密钥不受未经授权的访问。

    Citrix ADC设备安全最佳实践

    执行设备软件更新

    Citrix强烈建议,在部署之前,客户确保他们的设备已经更新了最新的固件版本。在远程操作时,Citrix建议客户使用安全协议(如SFTP或HTTPS)来升级设备。

    我们还建议客户查看与思杰产品相关的安全公告。有关最新及更新的保安公告的资料,请参阅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建议,在配置用于生产部署的板载网卡之前,执行板载网卡的出厂重置,以恢复默认设置。

    1. 在Citrix ADC shell提示符下,运行如下命令:

      ipmitool raw 0x30 0x41 0x1 

      请注意:该命令将使板载网卡恢复出厂默认设置,并删除所有SSL证书。关于如何重新配置板载网卡端口,请参见点亮Citrix ADC MPX设备的管理端口

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

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

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

      关于板载网卡配置的详细信息,请参见LOM配置

    持久数据的维护和删除

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

    有关此过程的更多信息,请参阅以下FAQ://m.giftsix.com/support/programs/faqs.html

    配置指南

    网络安全

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

    • 不要向Internet公开Citrix ADC管理员界面(NSIP)。
    • 需要更换Citrix ADC默认SSL证书。
    • 访问图形界面时,需要使用HTTPS (HTTP over TLS)协议,且默认的HTTP接口已关闭。

    除了建议的进一步更改之外,下面的部分提供了关于这些关键注意事项的更多信息。

    网络安全的关键注意事项

    不要将NSIP暴露在互联网上:

    Citrix强烈建议Citrix ADC管理IP (NSIP)不向公共互联网公开,而是部署在适当的状态包检测(SPI)防火墙之后。

    更换Citrix ADC默认TLS证书:

    在Citrix ADC设备的初始配置过程中,会创建默认的TLS证书。这些证书不打算在生产部署中使用,必须替换。

    Citrix建议客户配置Citrix ADC设备,以使用来自知名证书颁发机构(CA)的证书或来自您的企业证书颁发机构的适当证书。

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

    另外,也可以创建和使用自定义TLS证书和私钥。虽然这可以提供同等级别的传输层安全,但它要求将TLS证书分发给用户,并要求用户在发起到web服务器的连接时进行交互。有关如何创建自定义证书的更多信息,请参阅知识中心文章CTX121617:如何在思杰ADC设备上创建和安装自签名证书

    有关TLS证书管理和配置的更多信息可以在本指南的“Citrix ADC TLS推荐”部分找到。

    关闭对管理员界面的HTTP访问。

    为了保护到Citrix ADC管理界面和GUI的流量,Citrix ADC设备必须配置为使用HTTPS。请执行以下步骤:

    set ns ip  -gui SECUREONLY 

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

    其他网络安全注意事项

    限制不被信任管理SDX的VPX管理员的VPX shell访问:

    在希望由不同的人管理VPX和SVM的情况下,SVM管理员必须创建一个VPX管理用户,该用户对VPX具有有限的shell访问权限,并且只向VPX管理员提供受限制的管理用户帐户。

    注意,有些操作可能需要shell访问(例如管理SSL证书)。但是,只有被信任管理SVM的个人才能被授予对VPX实例shell的访问权。本节后面列出的RBAC级别命令可以分配给这些帐户。这些建议适用于所有SVM-IP/VPX-NSIP (L2/L3)管理工作流,为了安全访问审计,必须遵循这些建议。

    可以使用以下步骤从VPX管理员中删除shell访问。

    保护现有的VPX实例:

    1. 使用nsroot或超级用户登录VPX CLI。

      Citrix建议不要使用nsroot帐户,而是创建一个超级用户帐户。使用“nsroot”帐号时,密码必须包含特殊字符。关于强密码的详细信息,请参见行政和管理

      • 在SDX系统的VPX实例中创建用户和RBAC策略。
      • 将该用户绑定到策略。
      > add系统用户userabc输入密码:确认密码:完成>绑定系统用户userabc superuser 2完成> add system cmdpolicy shell deny (shell)完成> bind系统用户userabc shell 1完成

      注意:在本例中,创建系统cmdpolicy(例如:cmdpolicy名称:shell)来拒绝shell访问。该策略与已创建的用户“userabc”绑定,优先级为高。默认超级用户cmdpolicy也绑定为系统用户的低优先级。使用此配置,创建的系统用户具有超级用户RBAC策略,但拒绝shell访问。

    2. 以创建的用户登录,执行以下操作。
      • 验证当前用户是否应用了RBAC策略。
      • 执行用户授权的任何命令。(例如,show system cmdpolicy)
      • 运行shell cmd验证shell访问是否受到限制。

      登录为:userabc

      来自服务器的身份验证前横幅消息:

      | ############################################################################# > ## | # > # | # 警告:访问这个系统仅供授权用户> # | #立即断开,如果你不是一个授权的用户!> # | # > # | ############################################################################# > ## | 年底横幅消息从服务器Keyboard-interactive验证提示服务器:|密码:年底Keyboard-interactive从服务器上登录提示:5月13日星期四从10.10.1.1 04:11:15 2021做< !——NeedCopy >
      > whoami UserName: userabc LoggedIn: "Thu May 13 04:18:50 2021"完成
    3. 在VPX的控制台中,以该用户的身份登录,并确保该用户不允许访问shell:

      > shell错误:未授权执行此命令[shell] 
    4. 以普通admin用户(nsroot)登录,并确保允许shell访问:

      > shell版权所有(c) 1992-2013版权所有(c) 1979、1980、1983、1986、1988、1989、1991、1992、1993、1994年加州大学董事会。保留所有权利。root@Zela-40G-10 # < !——NeedCopy >

    保护新的VPX实例:

    1. 当从SVM GUI创建一个新的VPX实例时,创建一个instance ADMIN用户,并清除壳牌/ SFTP / SCP访问复选框。在禁用shell访问时,svm_access_policy(动作DENY)被显式地绑定到指定的实例admin用户。

    2. 将此用户信息提供给VPX管理员。SDX管理员必须保留nsroot管理员密码,不能与VPX管理员共享。

    注意:

    关闭SSH端口转发:

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

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

      AllowTcpForwarding没有

    2. 保存文件并将其复制到/nsconfig,以便在测试期间重新启动时,更改是持久的。

    3. 使用如下命令重启sshd进程:

      kill -HUP ' cat /var/run/sshd.pid的< !——NeedCopy >

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

    在需要连续操作的部署中,Citrix ADC设备可以部署在高可用性设置中。如果其中一个设备停止工作或需要离线升级,这种设置将提供持续操作。

    有关如何配置高可用性设置的信息,请参见High Availability >配置高可用性主题上的Citrix文档而且如何在思杰ADC上建立高可用性配对

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

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

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

    当禁用内部用户帐户时,Citrix ADC设备特性还可以使用基于SSH密钥的身份验证进行内部通信。这种情况下,密钥名称必须设置为“ns_comm_key”。有关更多信息,请参见使用SSH密钥和无密码访问Citrix ADC设备

    修改默认密码:

    为了增强安全性,Citrix建议您为内部部署和云部署更改管理员和内部用户帐户或RPC节点密码。建议经常修改密码。

    配置网络安全域和vlan:

    Citrix强烈建议Citrix ADC设备管理接口的网络流量在物理上或逻辑上与正常的网络流量分离。推荐的最佳实践是设置三个vlan:

    • 外部网络VLAN
    • 管理VLAN
    • 内部服务器VLAN

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

    在双臂模式下部署Citrix ADC设备时,将特定端口专用于特定网络。如果需要将两个网络进行VLAN标记,并将两个网络绑定到同一个端口上,需要保证两个网络的安全级别相同或相近。

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

    考虑使用Citrix Web App防火墙:Citrix ADC高级版授权设备提供了一个内置的Citrix Web应用程序防火墙,该防火墙使用积极的安全模型,并自动学习正确的应用程序行为,以防范诸如命令注入、SQL注入和跨站点脚本等威胁。

    当您使用Citrix Web应用程序防火墙时,用户可以为Web应用程序添加额外的安全性,而不需要更改代码,也不需要更改配置。有关更多信息,请参见Citrix Web应用防火墙简介

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

    set ns ip  -restrictAccess enabled 

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

    在一个Citrix ADC集群和一个高可用性设置的所有Citrix ADC IP地址上启用安全RPC特性,运行以下命令:

    设置rpcnode  -secure on 

    请注意:可能需要其他配置。有关更多信息,请参见聚类在Citrix文档站点上的主题。

    三层集群部署时,Citrix ADC节点之间的报文通过不加密的GRE隧道进行交换,源节点和目的节点的NSIP地址进行路由。当在internet上进行交换时,在没有IPsec隧道的情况下,nsip协议被公开在internet上。不建议这样做,因为它不符合Citrix ADC的安全最佳实践。

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

    如果没有使用IP转发特性,请使用以下命令关闭三层模式:

    禁用ns模式L3 

    使用安全MEP实现全局服务器负载均衡:在Citrix ADC设备之间加密用于GSLB的MEP,在NSCLI中执行以下命令:

    设置rpcNode  -secure yes 

    保护负载均衡持久化cookie:

    Citrix建议除了SSL/TLS通道外,还加密负载平衡持久cookie。具体操作请参见HTTP cookie持久性

    Helloverifyrequest参数缓解DTLS DDoS放大攻击:

    从Citrix ADC发行版12.1 build 62开始。X和13.0版本79。x,helloverifyrequest该参数默认启用。使helloverifyrequest参数有助于降低攻击者或机器人破坏网络吞吐量的风险,可能导致出站带宽耗尽。也就是说,它有助于缓解DTLS DDoS扩增攻击。

    查看helloverifyrequest参数状态,在ADC CLI提示符,输入;

    显示dtlsProfile < !——NeedCopy >

    例子:

    Hello验证请求状态

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

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

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

    会话状态保护:

    建议:启用Citrix ADC:大多数实体默认启用

    会话状态保护该设置在默认情况下是启用的,不需要特定的配置。当Citrix ADC设备配置为代理连接时。例如,当流选择配置的虚拟服务器或TCP或以上类型的服务时,Citrix ADC设备创建一个有状态会话。Citrix ADC设备继续维护这些连接的状态,只处理属于这个状态机的数据包。其他数据包被丢弃或重置。

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

    • ADNS_TCP
    • 直径、DNS_TCP
    • FTP-c
    • GRE-c
    • HTTP
    • MYSQL,该软件
    • NNTP
    • 甲骨文
    • 推动,PPTP
    • RTSP, RDP
    • SIP_SSL, SIP_TCP
    • SMPP
    • Ssl, ssl_bridge, ssl_diameter, ssl_push
    • SSL_TCP, SYSLOG_TCP
    • TCP
    • ADNS_TCP
    • RNAT (rnat_tcpproxy is ENABLED)告警解释

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

    建议:对Citrix ADC设备或后端服务器设置的cookie启用HttpOnly
    Citrix ADC:默认启用Citrix ADC插入的cookie,可能通过重写后端服务器设置的cookie。

    HttpOnly:当你用HttpOnly标记cookie时,它向浏览器表明这个cookie只能被服务器访问。任何试图从客户端脚本访问cookie的尝试都是严格禁止的。HttpOnly cookie,如果正确实现,会使大量常见的跨站点脚本攻击更加难以实现。

    下面是一个设置了HttpOnly标志的cookie的示例:

    set - cookie: ASP.NET_SessionId = ig2fac55;路径= /;HttpOnly < !——NeedCopy >

    Citrix ADC为Cookie Insert持久性插入的Cookie,默认情况下,设置HttpOnly标志,表明Cookie是不可脚本化的,不能显示给客户端应用程序。因此,客户端脚本无法访问cookie,客户端不容易受到跨站点脚本的影响。

    使用命令行界面启用HttpOnly标志设置:

    在命令提示符下,输入:

    设置lb参数-HttpOnlyCookieFlag (ENABLED) 

    使用重写策略为cookie插入Secure和HttpOnly:

    重写策略只为后端服务器发送的cookie插入Secure和HTTP。

    请注意: Secure和HttpOnly cookie一起可以为SSL vip完成。对于非ssl vip,可以插入HttpOnly标志。

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

    • HttpOnly -该选项在cookie上导致web浏览器只使用HTTP(或HTTPS)协议返回cookie;非http方法,如JavaScript文档。cookie引用无法访问cookie。这个选项有助于防止由于跨站点脚本而导致的Cookie盗窃。
    • Secure -该选项在cookie上导致web浏览器在传输通过SSL加密时只返回cookie值。此选项可用于防止通过连接窃听窃取cookie。

    使用命令行界面创建重写策略:

    1. 启用重写特性(如果还没有启用的话)。

      启用特性REWRITE 
    2. 创建一个重写操作(本例配置为设置Secure和HttpOnly标志。如果缺少任何一个,则根据需要对其他组合进行修改)。

      添加重写动作<动作名称> replace_all http.RES。full_Header“\”路径= /;安全的;HttpOnly \”“搜索”正则表达式(re ! (path = / \ \;安全的;HttpOnly) | (path = / \ \;安全)| (path = / \ \;HttpOnly) |(路径= /)!)”-bypassSafetyCheck是的< !——NeedCopy >

      例子:

      添加重写动作act_cookie_Secure replace_all http.RES。full_Header“\”路径= /;安全的;HttpOnly \”“搜索”正则表达式(re ! (path = / \ \;安全的;HttpOnly) | (path = / \ \;安全)| (path = / \ \;HttpOnly) |(路径= /)!)”-bypassSafetyCheck是的< !——NeedCopy >
    3. 创建重写策略来触发操作。

      添加重写策略<策略名> "http.RES.HEADER(\"Set-Cookie\")。<动作名称> 

      例子:

      添加重写策略rw_force_secure_cookie "http.RES.HEADER(\"Set-Cookie\")。存在“act_cookie_Secure < !——NeedCopy >
    4. 将重写策略绑定到虚拟服务器以确保安全(如果使用了Secure选项,则必须使用SSL虚拟服务器)。

      bind lb vserver  - <策略名称> -priority <优先级编号> - gotopriorityexpression NEXT -type RESPONSE 

      例子:

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

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

    启用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:

    在命令提示符下,输入:

    添加ssl vserver  -HSTS (ENABLED) maxage  - inclesubdomains (YES | NO) 

    添加ssl配置文件 -HSTS (ENABLED) -maxage  - inclesubdomains (YES | NO) 

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

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

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

    添加重写策略<动作名称> insert_http_header Strict-Transport-Security "\"max-age=157680000\ " "添加重写策略<动作名称> " true " <动作名称> bind lb vserver <动作名称> - <策略名称> -priority <优先级编号> END -type RESPONSE 

    例子:

    添加重写操作insert_STS_header insert_http_header Strict-Transport-Security“\”max-age=157680000\“”添加重写策略enforce_STS“true”绑定lb vserver vs1 -policyName enforce_STS -priority 100 -gotoPriorityExpression END -type RESPONSE 

    有关更多信息,请参见以下主题:

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

    //m.giftsix.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。可以在SSL实体上禁用SSLv3和TLS v1.0,因为已经报告了安全漏洞。只能启用TLS 1.1和TLS 1.2。如果可能,在面向vip的客户端只使用TLS 1.2版本。它既可以在SSL实体级别完成,也可以在概要文件级别完成,所有SSL实体从概要文件继承SSL设置。

    使用命令行接口禁用SSL实体:

    在命令提示符下,输入:

    set ssl vserver  -ssl2 DISABLED -ssl3 DISABLED -tls1 DISABLED -tls11 DISABLED set ssl service  -ssl2 DISABLED -ssl3 DISABLED -tls1 DISABLED -tls11 DISABLED 

    如果启用了SSL配置文件,使用如下命令:

    set ssl profile <前端配置> -ssl3 DISABLED -tls1 DISABLED -tls11 DISABLED set ssl profile <后端配置> -ssl3 DISABLED -tls1 DISABLED -tls11 DISABLED 

    Citrix ADC推荐的密码套件:

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

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

    • tls1 - aes - 128 - cbc -沙
    • tls1 - aes - 256 - cbc -沙
    • tls1.2 sha256——aes - 128
    • tls1.2 sha256——aes - 256
    • TLS1.2-AES128-GCM-SHA256
    • TLS1.2-AES256-GCM-SHA384

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

    • tls1——她——rsa - aes - 128 - cbc -沙
    • tls1——她——rsa - aes - 256 - cbc -沙
    • tls1.2 -她- rsa - aes - 128 sha256
    • tls1.2 -她- 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

    按优先顺序推荐Cipher套件:

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

    1. TLS1.2-AES128-GCM-SHA256
    2. tls1.2 sha256——aes - 128
    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 -她- rsa - aes - 128 sha256
    8. tls1——她——rsa - aes - 128 - cbc -沙
    9. tls1 - aes - 128 - cbc -沙

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

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

    行政和管理

    本节提供了可以应用于提高Citrix ADC和Citrix ADC SDX设备安全性的特定配置更改的示例。关于Citrix ADC配置最佳实践的更多指导可以在本文中找到Citrix ADC设备通用实现的推荐设置和最佳实践

    系统及用户帐户

    修改超级用户密码:不能删除系统内置的超级管理员用户(nsroot).请将该帐户的默认密码修改为安全的密码。修改admin用户默认密码的方法如下:

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

    创建另一个超级用户帐户:使用实例创建超级用户帐户。

    添加系统用户  bind系统用户 superuser 0 

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

    对于Citrix ADC SDX部署,管理员必须在初始设置之后更改Citrix ADC SDX设备及其GUI管理控制台的默认凭证。修改默认用户密码的操作如下:

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

    系统用户的强密码:

    Citrix建议对在Citrix ADC中创建的系统用户帐户使用强密码。密码复杂度要求示例如下:

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

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

    设置系统参数-minpasswordlen  - -strongpassword (ENABLED | DISABLED) 

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

    锁定系统用户帐号进行管理访问:Citrix ADC设备允许您锁定一个系统用户24小时,并拒绝对该用户的访问。Citrix ADC设备支持系统用户和外部用户的配置。在命令提示符中输入:

    设置aaa参数-persistentLoginAttempts DISABLED

    现在,要锁定用户帐户,在命令提示符下输入:

    锁定aaa用户测试

    有关如何使用GUI配置此特性的信息,请参见用户帐号和密码管理

    解锁系统用户,用于管理访问:使用lock authentication, authorization, and auditing user命令可以锁定系统用户和外部用户24小时。Citrix ADC设备允许您解锁锁定的系统用户。在命令提示符下,输入:

    解锁aaa用户测试有关如何使用GUI配置此特性的信息,请参见用户帐号和密码管理

    关闭系统用户帐户的管理访问:当在设备上配置外部身份验证时,作为管理员,您希望拒绝系统用户访问以登录到管理访问,您必须禁用系统参数中的localAuth选项。

    注意:必须配置外部服务器。

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

    设置系统参数localAuth

    例子:

    设置系统参数localAuth DISABLED有关如何使用GUI配置此特性的信息,请参见用户帐号和密码管理

    强制修改管理用户密码:nsroot安全的身份验证,Citrix ADC设备提示用户将默认密码更改为新密码,如果forcePasswordChange选项在“system”参数中启用。你可以改变你的nsroot在您第一次使用默认凭证登录时,从CLI或GUI输入密码。在命令提示符下,输入:

    设置系统参数-forcePasswordChange (ENABLED | DISABLED)

    例如,如何配置该特性,请参见用户帐号和密码管理

    使用SSH密钥和无密码访问Citrix ADC:在需要管理许多Citrix ADC设备的部署中,考虑使用SSH密钥和无密码。有关如何配置此特性的信息,请参见使用SSH密钥和无密码访问Citrix ADC设备

    创建系统主密钥用于数据保护:从Citrix ADC 11.0版本到Citrix ADC 13.0-71.44版本,需要创建系统主密钥来保护某些安全参数,例如LDAP认证和本地存储的认证、授权和审计用户帐户所需的服务帐户密码。

    注意:在Citrix 13.0-76.31版本及更高版本中,在升级过程中默认自动创建一个随机的系统主键。

    创建系统主键:

    1. 使用命令行方式,以系统管理员用户登录。
    2. 输入如下命令:
    创建kek <密码短语> 

    请注意

    • 执行create system kek命令后,大多数密码加密都使用kek(本地用户密码不使用kek加密)。
    • 您不能删除KEK文件。如果您有shell访问权限,并且错误地删除了关键片段文件,那么可能会导致配置丢失、同步失败和登录失败。以下是一些需要注意的要点:

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

    使用访问控制列表:

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

    控制设备访问的建议:

    • 考虑使用Citrix Gateway将对设备的访问限制为只能访问GUI。对于除了GUI之外还需要访问方法的管理员,Citrix Gateway必须为端口80、443和3010配置默认的“DENY”ACL,但为可信IP地址访问这些端口配置显式的“ALLOW”。

    该策略可以通过下面的NSCLI命令扩展,以适用于信任IP地址范围:

    添加acl local_access allow -srcip 192.168.0.1-192.168.0.3 -destip 192.168.0.1-192.168.0.3 apply acl 
    • 如果您使用SNMP,显式地允许SNMP流量与ACL。下面是一组命令示例:
    add acl snmp2-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 acl 

    在前面的示例中,该命令提供对两个已定义子网的所有SNMP查询的访问,即使查询是对适当定义的团体的查询。

    您可以启用NSIP和SNIP地址的管理功能。如果启用,需要提供对NSIP、SNIP、具有acl的地址的访问,以保护对管理功能的访问。管理员还可以配置该设备,使其不能通过ping命令访问。

    • OSPF (Open Shortest Path First)和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为主机提供访问接口的权限。例如,允许IP地址范围为10.0.0.1-20和172.16.0.1-20的主机访问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 
    • 当需要对内部端口使用acl时,使用如下命令:
    设置l3param -implicitACLAllow DISABLED 

    注意:的默认值implicitACLAllow命令启用

    • 从内部端口删除acl,使用如下命令:
    设置l3param -implicitACLAllow ENABLED 
    • 通过使用适当的响应器策略在设备上配置HTTPS前端服务器,为XML-API web服务指定安全传输。这适用于运行Citrix ADC软件8.0或更高版本的设备。下面是一组命令示例:
    添加响应器策略allow_soap 'HTTP.REQ.URL.STARTSWITH("/soap")。没有T' 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设备包括四个命令策略或角色,如操作员、只读用户、网络和超级用户。您还可以定义命令策略,为不同的角色创建不同的管理帐户,并为帐户分配该角色所需的命令策略。限制只读用户的只读访问权限的命令示例如下:

    添加系统用户readonlyuser bind系统用户readonlyuser read-only 0 

    有关配置用户、用户组或命令策略的更多信息,请参见用户、用户组和命令策略

    配置系统会话超时时间:

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

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

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

    设置系统用户 -timeout  
    • 用户组级别超时。适用于组内所有用户。

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

    设置系统组 -timeout  
    • 全球系统超时。适用于所有用户和来自未配置超时的组的用户。

    GUI:导航到系统>设置,点击设置系统全局参数,设置ANY客户端空闲超时时间(秒)。CLI:在命令提示符下输入如下命令:

    设置系统参数-timeout  

    为用户指定的超时值具有最高的优先级。如果用户未配置超时时间,则以成员组配置的超时时间为准。如果没有为某个组指定超时时间(或者用户不属于某个组),则使用全局配置的超时时间值。如果没有配置任何级别的超时时间,则设置系统会话超时时间为缺省值900秒。

    您还可以对超时值进行限制,使会话超时值不能超过管理员配置的超时值。可以将超时值限制在5分钟到1天之间。限制超时值:

    • GUI:导航到系统>设置,点击设置全局系统参数s,并选择Restricted Timeout字段。
    • CLI:在命令提示符下输入如下命令:
    设置系统参数-restrictedtimeout  

    当用户启用restrictedTimeout参数后,如果超时值已经配置为大于1天或小于5分钟的值,将会通知用户更改超时值。如果用户不修改超时值,则在下次重启时,超时值将被重新配置为900秒(15分钟)。

    您还可以为正在访问的每个接口指定超时时间。但是,为特定接口配置的超时值将被限制为访问该接口的用户配置的超时值。例如,考虑一个用户publicadmin超时值为20分钟。现在,在访问接口时,用户必须指定20分钟内的超时值。

    配置各接口的超时时间。

    • CLI:在命令提示符中设置超时值。
    设置cli模式-timeout  
    • API:在登录负载中指定超时值。

    日志记录和监控

    配置网络时间协议

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

    配置NTP时,需要修改NTP .conf文件,限制NTP服务器公开敏感报文中的信息。

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

    add ntp server  10 enable ntp sync 

    修改添加的每个可信NTP服务器的NTP .conf文件。每个服务器表项必须有一个对应的限制表项。您可以通过运行找到。- name ntp.conf命令。

    SNMP配置

    Citrix ADC设备支持SNMP协议的版本3。SNMPv3集成了认证、访问控制和数据完整性检查等管理和安全功能。有关更多信息,请参见系统> SNMPCitrix文档的主题。

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

    添加snmp manager  

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

    set ns ip  -snmp disabled 

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

    Citrix ADC Audit Server记录内核和用户级守护进程中不同模块收集的所有状态和状态信息。Audit Server允许管理员按照时间顺序查看事件历史。审计服务器类似于从设备中收集日志的SYSLOG服务器。Audit Server使用管理员凭据从一个或多个设备获取日志。

    • 本地审计服务器配置

    在Citrix ADC设备中,执行以下命令将日志记录配置到本地Audit Server:>设置审计nslogparams -serverip -serverport <端口>

    • 远程审计服务器配置

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

    ./audserver -help用法:audserver -[cmd] [cmd arguments] cmd cmd参数:-f  -d debug -help - detail help -start - cmd参数,[启动审计服务器]-stop -stop审计服务器-verify - cmd参数[验证配置文件]-addns - cmd参数[向conf文件添加netscaler] -version打印版本信息

    这提供了仅记录设备的ns.log文件生成的审计消息的功能。记录所有syslog日志的操作步骤如下:

    1. 从本地设施的/nsconfig/syslog.conf文件中删除日志文件规格。
    2. 将日志文件规格替换为远端syslog主机的日志主机名或IP地址,类似如下内容:

      local0。*@10.100.3.53

      local1。*@10.100.3.53

    3. 将syslog服务器配置为接受来自上述日志记录工具的日志条目。有关更多信息,请参见syslog服务器文档。
    4. 对于大多数使用标准syslog软件的基于unix的服务器,必须在syslog.conf配置文件中为消息和nsvpn.log文件添加一个本地设施配置条目。设施值必须与设备上配置的值相对应。
    5. 默认情况下,任何基于unix的计算机中的远程syslog服务器不侦听远程日志。因此,请执行如下命令启动远端syslog服务器:
    Syslogd -m 0 -r 

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

    LOM配置

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

    • 禁止将LOM端口对外公开。
    • 将LOM部署在SPI防火墙之后。
    • 将LOM部署到与不可信的网络流量在逻辑上(单独的VLAN)或物理上(单独的LAN)分离的网段上。
    • 板载网卡和Citrix ADC管理端口需要设置不同的用户名、密码、SSL-certificate和SSL-key值。
    • 请确保访问板载网卡管理接口的设备是专门用于网络管理的,并且与其他管理设备端口在同一个物理LAN或VLAN中的管理网段。
    • 为方便板载IP地址的识别和隔离,请为板载管理接口和管理服务器预留专用IP地址(私有子网)。请勿使用保留的IP子网,且不包含被管理设备的LAN接口。不建议使用DHCP方式分配动态IP地址,否则会影响防火墙基于局域网外MAC地址的“访问控制列表”的实现。
    • 密码必须包含数字、字母和特殊字符的组合,长度至少为8个字符。请频繁修改密码。

    应用程序和服务

    配置Citrix ADC丢弃无效HTTP请求

    Citrix强烈建议Citrix ADC设备配置严格的HTTP请求检查和强制执行,以防止无效的HTTP请求通过虚拟服务器。这可以通过绑定内置的HTTP配置文件来完成,nshttp_default_strict_validation,在命令行中使用以下命令绑定到一个或多个虚拟服务器:

    show ns httpProfile(显示可用的http配置文件(默认+用户配置文件))设置lb vserver  -httpProfileName nshttp_default_strict_validation 

    Citrix建议使用此选项的客户在将更改发布到生产环境之前在登台环境中测试更改。

    缺省情况下,HTTP严格验证配置文件(nshttp_default_strict_validation)启用了防范HTTP去同步攻击的功能。对所有面向客户的实体使用严格的配置文件。

    有关HTTP请求偷运攻击及其缓解的更多信息,请参阅支持文章Citrix ADC - HTTP请求走私参考指南

    配置防止HTTP拒绝服务攻击的保护

    Citrix ADC设备固件支持有限的对抗HTTP拒绝服务攻击的措施,包括“慢速”类型的攻击。可以通过使用nsapimgr工具从设备的shell提示:

    • small_window_threshold(默认= 1)
    • small_window_idle_timeout(默认= 7秒)
    • small_window_cleanthresh(默认= 100)
    • small_window_protection(默认=启用)

    默认设置足以防止HTTP拒绝服务攻击,包括慢速读取攻击,但是,对于其他攻击可能需要一些参数调优。

    为了防止这种攻击,调整small_window_threshold使用下面的方法向上设置属性nsapimgr命令:

    $ nsapimgr -ys small_window_threshold=<期望的值>

    请注意:small_window_threshold可根据部署时输入的流量模式进行设置。可接受的范围是0到2的32次方。

    您可以通过以下计数器来验证对HTTP拒绝服务攻击的保护nsconmsg - d统计数据在设备的shell提示符下执行命令:

    • nstcp_cur_zero_win_pcbs:该计数器跟踪当前具有低Window值的pcb的数量。
    • nstcp_err_conndrop_at_pass:当设备检测到在将数据包从一端传递到另一端时,它已经超过了nscfg_small_window_idletimeout值时,该计数器将增加。
    • nstcp_err_conndrop_at_retx:当重传期间的超时时间超过nscfg_small_window_idletimeout值时,该计数器将增加。
    • nstcp_cur_pcbs_probed_withKA:该计数器跟踪使用KA探针探测的缓冲队列中pcb的数量。

    Citrix建议使用此选项的客户在将更改发布到生产环境之前在登台环境中测试更改。

    配置Citrix ADC,防范TCP欺骗攻击

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

    set ns tcpProfile profile1 -rstWindowAttenuate ENABLED -spoofSynDrop ENABLED Done set lbvserver lbvserver1 -tcpProfileName profile1 Done 

    Citrix建议使用此选项的客户在将更改发布到生产环境之前在登台环境中测试更改。

    配置Citrix ADC以接受特定的HTTP报头

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

    下面的全局重写操作只向服务器发送带有Host、Accept和test等报头的网络流量:

    添加重写动作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/}添加重写策略pol1 HTTP.REQ。IS_VALID act1绑定重写全局pol1 100 

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

    配置close-notify

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

    设置ssl参数-sendCloseNotify y保存ns config 

    DNSSEC安全建议

    Citrix建议以下建议适用于使用DNSSEC的客户:

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

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

    使能DNSSEC密钥过期告警功能

    缺省情况下,在Citrix ADC设备上启用DNSSEC密钥过期的SNMP告警。密钥过期通知通过SNMP trap dnskeyExpiry发送。三个MIB变量,dnskeyName,dnskeyUnitsOfExpiry,随附dnskeyExpirySNMP陷阱。有关更多信息,请参阅Citrix ADC SNMP OID参考。

    在x.509证书到期前滚动KSK/ZSK私钥

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

    安全的DNSSEC ADNS服务器

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

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

    配置Citrix ADC为授权服务器的步骤如下:

    1. 添加ADNS服务。

      例如:

      添加service s1  adns 53 ' 
    2. 创建DNS的钥匙。

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

      create dns key -zoneName com -keytype ksK -algorithm rsASHA512 -keysize 3000 -fileNamePrefix com. ksK .rsasha1.3000创建dns key -zoneName com -keytype zsk -algorithm rsASHA512 -keysize 3000 -fileNamePrefix com.zsk.rsasha1.3000 

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

    3. 添加域名密钥。

      例如,

      添加DNS密钥com.zsk。3000 / nsconfig / dns / com.zsk.rsasha1.3000。键/ nsconfig / dns / com.zsk.rsasha1.3000。私有添加DNS密钥com.ksk。3000 / nsconfig / dns / com.ksk.rsasha1.3000。键/ nsconfig / dns / com.ksk.rsasha1.3000。私人< !——NeedCopy >
    4. 添加NS记录和SOA记录comZone,然后在Zone上签名。

      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 ADC作为ADNS服务器主题的Citrix文档。

    遗留的配置

    配置Citrix ADC以禁用SSLv2重定向

    如果您在Citrix ADC设备上启用SSL v2 Redirect特性,那么该设备将执行SSL握手并将客户端重定向到配置的URL。如果禁用此功能,设备将拒绝与SSL v2客户端执行SSL握手过程。

    执行如下命令禁用SSLv2重定向:

    设置ssl vserver  -sslv2redirect DISABLED -cipherredirect DISABLED 

    注意:从Citrix ADC软件9.2版本开始,SSLv2重定向和密码重定向功能默认是禁用的。

    配置Citrix ADC 10.0版本和更早版本,以使用安全SSL重新协商

    对于Citrix ADC软件9.3e或10.0版本,需要配置Citrix ADC,以防止不安全的SSL重协商。

    -denySSLReneg NONSECURE 

    对于Citrix ADC软件的早期版本,执行以下命令禁用SSL Renegotiation:

    设置ssl参数-denySSLReneg ALL 

    下面的命令只允许安全客户端和服务器重新协商:

    -denySSLReneg NONSECURE 

    有关更多信息,请参见如何配置和使用-denySSLReneg参数”。

    配置Citrix ADC 11.1版本的NDCPP合规证书检查

    当设备作为客户端(后端连接)时,应用NDCPP遵从性证书检查。在证书验证过程中,如果SSL证书中存在SAN,请忽略公共名称。

    在命令提示符下,输入以下命令配置SSL参数中的“ndcppComplianceCertCheck”属性:

    ssl参数设置(-quantumSize < quantumSize >] [-crlMemorySizeMB < positive_integer >] [-strictCAChecks(是的|不)][-sslTriggerTimeout < positive_integer >] [-sendCloseNotify(是的|不)][-encryptTriggerPktCount < positive_integer >] [-denySSLReneg < denySSLReneg >] [-insertionEncoding (Unicode | utf - 8)] [-ocspCacheSize < positive_integer >] [- pushFlag < positive_integer >] [- dropReqWithNoHostHeader(是的|不)][-pushEncTriggerTimeout < positive_integer >] [-ndcppComplianceCertCheck(是的|不)][-heterogeneousSSLHW (ENABLED | DISABLED)] 

    例子:

    设置ssl参数-quantumSize 8 -crlMemorySizeMB 256 - strictcchecks no -ssltriggerTimeout 100 -sendClosenotify no -encryptTriggerPktCount 45 -denySSLReneg NONSECURE -insertionEncoding unicode -ocspCacheSize 10 -pushFlag 3 -dropReqWithNoHostHeader YES -pushEncTriggerTimeout 100 ms -ndcppComplianceCertCheck YES 

    Citrix ADC加密建议

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

    管理TLS证书和密钥

    在Citrix ADC版本11.1中为NDcPP部署配置TLS加密套件

    NDcPP部署支持的TLS密码套件如下:

    tls1 - aes - 256 - cbc -沙

    tls1 - aes - 128 - cbc -沙

    TLS1-ECDHE-RSA-AES256-SHA

    TLS1-ECDHE-RSA-AES128-SHA

    tls1.2 - ecdhe - rsa - aes - 256 SHA384

    tls1.2 - ecdhe - rsa - aes - 128 SHA256

    TLS1-ECDHE-RSA-DES-CBC3 -沙

    SSL3-DES-CBC3-SHA

    TLS1.2-AES256-GCM-SHA384

    TLS1.2-AES128-GCM-SHA256

    TLS1.2-ECDHE-RSA-AES256——GCM-SHA384

    TLS1.2-ECDHE-RSA-AES128——GCM-SHA256

    tls1.2 aes - 256 sha256 tls1.2 sha256——aes - 128

    为了确保在设备上只配置了批准的密码套件,请在命令行中完成以下配置步骤:

    1. 解除与虚拟服务器的所有密码绑定

      -cipherName FIPS 
    2. 只绑定TLS1-AES-256-CBC-SHA,再绑定TLS1-AES-128-CBC-SHA。

      bind ssl vs v1 -cipherName ——NeedCopy >

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

    要从公共或企业证书颁发机构(CA)获得证书,您必须首先生成私钥和证书签名请求(CSR)。请执行以下步骤:

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

    2. 创建RSA私钥。

      创建一个keytype RSA -modulus 2048 -exponent F4 
    3. 创建证书签名请求(CSR):

      create certreq csr_1 -fipsKeyName m1 -countryName IN -stateName BA -organizationName citrix 
    4. 将CSR提交给证书颁发机构。

    对于大多数商业ca和企业ca, CSR是通过电子邮件请求的方式发送的。但是,提交的方法可能因企业CA环境而异。CA通过电子邮件返回有效的证书,但这也可能因企业CA而异。从CA接收到证书后,请将证书安全复制到/nsconfig/ssl目录下。

    以超级用户或系统管理员登录,在命令行中执行如下命令:> add ssl certKey ck_1 -cert cert1_1 -fipsKey m1

    Citrix ADC-FIPS建议

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

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

    set ssl fips -initHSM Level-2    [-hsmLabel ] save configuration initHSM 

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

    hsmLabel

    用于标识HSM (Hardware Security Module)的标签。

    最大长度:31

    请注意:该命令将擦除FIPS卡上的所有数据。

    将HSM密码存储在安全的位置

    HSM的密码必须按照您公司的操作程序存储在一个安全的位置。

    请注意:连续3次登录失败,HSM被锁定。当锁定时,它将变得不可操作,您不能更改它的配置。

    其他功能

    本节提供了可以应用于Citrix Web App Firewall和Citrix Gateway的配置更改示例,以提高部署设备的安全性,以及构建多层或安全性的信息。本节还包含使用Citrix ADC或Citrix Gateway作为SAML SP或SAML IdP或两者同时使用时的配置细节信息。

    Citrix Web应用防火墙安全建议

    • 对于RFC合规性检查,建议WAF配置文件的默认rfcprofile为“APPFW_RFC_BLOCK”。

    • WAF支持插入' sameesite ' cookie属性值,可以通过选择' Strict '或' Lax '值来限制cookie为同站点或跨站点上下文。

    设备部署为双臂模式

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

    使用“默认拒绝”策略

    Citrix建议管理员在全局级别配置Citrix Web应用程序防火墙的deny all策略,以阻止所有不匹配Citrix Web应用程序防火墙策略的请求。以下是在全局级别配置“拒绝所有”策略的命令示例:

    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  

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

    Citrix ADC软件包含默认配置文件,例如appfw_block,当配置的请求不匹配Citrix Web App Firewall的策略时,就会被阻塞。执行如下命令设置默认配置文件:

    set appfw settings -defaultProfile appfw_block 

    Citrix Web应用防火墙-构建多层安全

    以下指导原则帮助您根据环境和所支持的应用程序构建多层安全性。

    为。配置一个不同的值sessionCookieName参数。

    设置appfw设置-sessionCookieName "citrix_ns_id_1" 

    第一层安全

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

    • 启用缓冲区溢出、SQL注入和跨站点脚本。
    • 启动URL是需要的应用程序是特定的URL必须访问,并必须防止强制浏览。
    • 启用字段格式检查应用程序是否需要表单字段中的输入。

    跨站点脚本检查可能会产生误报,因为许多公司安装了大量javascript增强的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 Server之前,会检查表单的不一致性。这个概念被称为会话化。安全检查,如URL框内的启动URL, Cookie一致性,表单字段一致性,和CSRF表单标签都暗示会话化。这些安全检查所使用的CPU和内存资源的数量与通过Citrix Web App Firewall发送的请求数量呈线性增长。例如:

    • 启用表单字段一致性检查:该检查用于验证web表单是否没有被客户端不当修改。以表单形式提供和托管关键信息的应用程序需要检查。

    • CSRF表单标签检查:该检查用于表单。Cross - Site Request Forgery (CSRF) Form Tagging检查受保护网站发送给用户的每一个表单的FormID是唯一的和不可预测的,然后检查用户返回的表单以确保提供的FormID是正确的。此检查可防止跨站点请求伪造攻击。如果应用程序具有基于web的表单,则必须启用此检查。与其他深入分析web表单的安全检查相比,这种检查需要相对较少的CPU处理能力。因此,它能够在不严重降低受保护网站或Citrix Web应用程序防火墙本身性能的情况下处理大量攻击。

    Citrix Web App防火墙的工作流程步骤

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

    Citrix Web App防火墙的工作流程步骤

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

    1. 配置安全配置文件。
    2. 为所有已知的威胁应用签名-负面模型。
    3. 配置能够检测正确流量的流策略,并且必须激活安全配置文件。

    您已经为生产流量通过系统做好了准备。第一级流程完成。进一步,配置学习基础结构。很多时候,客户希望在生产流量中进行学习,因此应用签名可以避免任何风险。请执行以下步骤:

    1. 配置学习基础设施。
    2. 利用学习到的规则来保护自己。
    3. 在上线之前,验证学习数据和应用的签名。

    Citrix网关安全建议

    使用“默认拒绝”策略

    Citrix建议管理员在全局级别使用“拒绝所有”策略配置Citrix Gateway,此外还应使用授权策略来有选择地启用对组基础上的资源的访问。

    缺省情况下,defaultAuthorizationAction参数设置为DENY。验证此设置并向每个用户授予显式访问权。可以在CLI界面执行show defaultAuthorizationAction命令验证设置是否正确。设置全局级别拒绝所有资源。使用实例

    设置vpn参数-defaultAuthorizationAction DENY 

    服务器间使用TLS1.1/1.2协议通信

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

    使用“内部网应用程序”特性使用内部网应用程序来定义哪些网络被Citrix Gateway插件拦截并发送到网关。下面是定义拦截的命令示例集:

    添加vpn intranetapp intra1 ANY 10.217.0.0 -netmask 255.255.0.0 -destPort 1-65535 -intercept TRANSPARENT绑定vpn vserver v1 -intranetapp intra1 

    Citrix ADC AAA安全建议

    如果Citrix ADC或Citrix Gateway设备配置为SAML SP或SAML IdP,或两者都配置,请参阅本文https://support.citrix.com/article/CTX316577查看详细的配置建议。

    关于SAML认证的详细信息请参见SAML验证

    额外的信息资源

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

    如需进一步协助您的Citrix ADC的配置,您可以在以下地址提交支持请求://m.giftsix.com/support.html

    介绍Citrix ADC MPX, VPX和SDX安全的最佳实践