PoC指南:使用WAF、Bot和高级身份验证策略保护网关虚拟服务器

概述

许多Citrix ADC设备托管VPN和Citrix网关部署,还为其他web应用程序提供安全保护。本PoC指南旨在帮助使用Citrix ADC设备上已有的工具保护VPN和网关虚拟服务器。本指南涵盖了使用Bot安全性保护门户登录页面,以及使用WAF功能保护凭据表单提交。此外,高级身份验证策略为用户登录添加上下文并启用多因素身份验证。

配置流程如下图所示:

配置流"loading=

配置选项

本指南并没有提供专有的保护列表,也不是配置这些保护的唯一方法。例如,在网关虚拟服务器上使用响应器策略同时部署IP声誉和速率限制是很常见的。此配置是一种受支持的部署方法。它有一个不同的结果,即在呈现网关登录页面之前删除或重置连接。

此外,WAF概要文件并没有启用所有保护来防止复杂的配置、自定义调优和潜在的问题。可以对WAF概要文件进行进一步配置,请参阅参考资料部分中的链接以获得指导。

注意:

CAPTCHA并不是最安全的额外因素的选择,它只是为了解释简单。其他MFA选项,如TOTP或PUSH是更好的选项-请参阅参考资料部分的链接,以帮助部署这些选项。

先决条件

本指南假设您了解Citrix WAF部署、Bot安全部署和高级身份验证策略(nFactor)。它假设已经安装和配置了网关或身份验证虚拟服务器。配置要求如下:

  • 高级身份验证策略要求发行版12.1 build 57.18或更高版本
  • Web应用程序防火墙保护要求发布12.1 build 57.18或更高版本
  • Bot安全保护要求发布13.0版本71.40或更高版本
  • 本指南中的大多数功能都需要溢价许可证
  • 在端口80上监听的现有服务器或服务
  • 现有的网关或身份验证虚拟服务器,具有现有的高级身份验证配置(高级身份验证或nFactor流)
  • 启用以下特性:Citrix Web应用程序防火墙,Citrix Bot管理和声誉

机器人保护

机器人签名

安全> Citrix Bot管理>签名,选择“默认机器人签名”,然后单击克隆按钮。应用描述性名称,然后单击创建。

机器人配置文件签名"loading=

创建一个机器人管理概要文件和策略

安全> Citrix Bot管理>配置文件,选择“添加”以创建一个新的Bot管理配置文件。给配置文件一个描述性的名称,并选择之前创建的签名集。

机器人配置文件"loading=

选择概要文件以编辑高级设置。

添加IP的声誉,并选中复选框以启用它。

机器人档案IP信誉"loading=

接下来,选择类别下的“添加”,选择知识产权对于“类型”,选中“启用”复选框,并将动作设置为“删除”。最后,选中“Log”复选框,并将日志消息设置为描述性的内容。

2 . Bot Profile IP声誉"loading=

3 . Bot Profile IP声誉"loading=

选择设备的指纹在右列中,确保“Enabled”复选框为选中并单击“更新”。

Bot配置文件设备指纹"loading=

Bot概要文件的最后一个设置是启用速率限制,请选择速率限制从右列中,选中enabled复选框。点击下面的“添加”配置资源,并为以下URL添加3个URL类型限速绑定:

  • /登录/ LogonPoint / index . html
  • /登录/ LogonPoint / tmindex.html
  • / vpn / index . html

配置速率限制如下:

  • 启用
  • 率5
  • 周期为1000
  • 下落动作
  • 日志设置为启用
  • 带有描述性消息标题的日志消息。

Bot档案速率限制"loading=

Bot概要文件现在配置如下:

机器人简介"loading=

创建一个机器人管理政策通过去安全> Citrix Bot管理> Bot策略选择添加。选择之前创建的Bot Profile,表达式如下:

HTTP.REQ.URL.CONTAINS“/ vpn”) | |HTTP.REQ.URL.CONTAINS“/登录”<——NeedCopy>

最后,通过选择“策略管理器”来绑定机器人策略。选择“默认全局”的绑定点,选择“单击选择”选择策略。突出显示之前创建的策略,并选择“Select”。选择“绑定”,然后选择“完成”。

Bot策略绑定"loading=

WAF保护

不可能将WAF策略直接绑定到网关或身份验证虚拟服务器。此外,将WAF策略全局绑定到针对网关或身份验证虚拟服务器的表达式也不能正常工作。导致该故障的原因是策略处理顺序。—WAF策略的处理顺序排在网关策略和认证策略之后。请看下面的交通流说明。

交通流"loading=

WAF保护策略使用HTTP Callout来保护登录页面,并在捕捉到WAF异常时使身份验证流失效。此配置需要一个模式集(Patset),其中包括登录url、虚拟服务和负载平衡虚拟服务器、HTTP调出以及WAF策略和配置。

模式设置

导航到AppExpert >模式集并选择“添加”。给新模式设置一个名称,然后选择“插入”并添加以下模式:

  • /cgi/login(索引1)
  • / nf /认证/ doAuthentication。Do(索引2)

模式设置"loading=

或者,从CLI创建模式集:

add policy patset GW_VPN_Patset绑定policy patset GW_VPN_Patset“/ cgi /登录”指数1绑定policy patset GW_VPN_Patset“/ nf /认证/ doAuthentication.do”指数2 <——NeedCopy>

虚拟服务器和服务

HTTP Callout使用一个虚拟服务器。这个虚拟服务器不需要是公开可用的,所以它可以是不可寻址的。虚拟服务器确实需要启动,因此后端服务器需要启动并在端口80上响应。在本指南中创建了一个新的服务和虚拟服务器,但是可以使用已经存在的虚拟服务器。

流量管理>负载均衡>业务并选择“添加”。为服务指定一个描述性名称,将协议设置为HTTP,端口设置为80。输入服务器的IP地址,选择好吧.或者,使用现有服务器创建服务。使用所有默认设置,包括绑定到服务的监视器。

负载均衡业务"loading=

接下来,通过转到创建负载平衡虚拟服务器流量管理>负载均衡>虚拟服务器并选择“添加”。为服务器提供一个描述性名称,将协议设置为HTTP,并将IP地址类型设置为非可寻址.通过选择“无负载均衡虚拟服务器服务绑定”,然后选择“单击选择”并选择该服务,将先前创建的服务绑定到此虚拟服务器。现在有一个服务绑定到虚拟服务器,状态为“UP”。

负载均衡虚拟服务器"loading=

HTTP调出

导航到AppExpert > HTTP Callouts并选择“添加”。给HTTP Callout一个描述性的名称,选择“虚拟服务器”来接收调出请求,并选择虚拟服务器。在发送给服务器的请求中,选择基于表达式的类型,设置方案为“HTTP”,并设置完整表达式如下:

HTTP.REQ.FULL_HEADER.BEFORE_STR\ r \ n \ r \ n+\ r \ nGW_VPN-WAF_Callout:美国广播公司(abc)\ r \ n \ r \ n+ HTTP.REQ.BODY2048<——NeedCopy>

注意:

这里头的名称是' GW_VPN-WAF_Callout ' -稍后应用程序防火墙过滤表达式将使用它。如果在这里更改了名称,那么也要更改WAF头表达式。

在Server Response部分中,将返回类型设置为保龄球并设置表达式为' true '。

HTTP调出"loading=

或者,从CLI创建HTTP Callout:

add policy httpCallout GW_VPN_WAF_Callout-vServerdummy-vserver-here-returnType保龄球-fullReqExprHTTP.REQ.FULL_HEADER.BEFORE_STR\ r \ n \ r \ n+\ r \ nGW_VPN-WAF_Callout:美国广播公司(abc)\ r \ n \ r \ n+ HTTP.REQ.BODY2048计划http-resultExpr真正的<——NeedCopy>

身份验证策略

修改现有的LDAP身份验证策略以使用HTTP Callout。转到,打开现有的身份验证策略安全> AAA应用流量>策略>认证>高级策略>策略,选择现有策略,并选择“编辑”。将现有表达式修改为:

HTTP.REQ.URL.CONTAINS_ANY“GW_VPN_Patset”& &SYS。HTTP_CALLOUTGW_VPN_WAF_Callout<——NeedCopy>

认证策略WAF绑定"loading=

注意:

在希望保护登录页上的表单字段的任何身份验证策略中使用此表达式。

WAF概要和策略

要构建WAF概要文件,请转到安全> Citrix Web应用防火墙>配置文件然后选择“添加”。给概要文件一个描述性的名称,并选择Web应用程序(HTML)和基本默认值。通过选择“编辑”打开新创建的配置文件,然后从右手一栏中选择“安全检查”。

启用以下安全检查(禁用所有其他设置):

  • 缓冲区溢出-日志,统计
  • 后身体限制-块,日志,统计
  • HTML跨站点脚本-块,日志,统计
  • HTML SQL注入-块,日志,统计

WAF安全检查"loading=

接下来从右手栏选择“配置文件设置”,并设置默认响应为:

应用程序/八进制<——NeedCopy>

然后勾选复选框记录每一次策略命中

WAF Profile设置"loading=

接下来,通过转到配置WAF策略安全> Citrix Web应用防火墙>策略>防火墙然后选择“添加”。为策略指定一个描述性名称,并选择在上一步中创建的概要文件。对于表达式,输入如下:

HTTP.REQ.HEADER“GW_VPN-WAF_Callout”.EXISTS <——NeedCopy>

注意:

这里的标头名称必须与前面创建的HTTP Callout中的标头相匹配。

最后,通过转到将WAF策略绑定到前面创建的虚拟负载平衡虚拟服务器流量管理>负载均衡>虚拟服务器.选择虚拟服务器,然后选择“编辑”。

从右边一列,选择“Policies”,然后点击“+”,添加一个策略。选择策略App防火墙并类型请求。选择之前创建的策略,然后选择“绑定”和“完成”。

WAF策略绑定"loading=

或者,使用CLI创建WAF配置,如下所示:

添加appfw配置文件demo_appfw_profile-startURLAction没有一个-denyURLAction没有一个-fieldFormatAction没有一个-bufferOverflowAction日志数据-responseContentType“应用程序/八进制”-logEveryPolicyHit-fileUploadTypesAction无。add appfw policy demo_appfw_policy“HTTP.REQ.HEADER (\”GW_VPN-WAF_Callout\”).存在“demo_appfw_profile绑定Lb vserver dummy-vserver-here-policyNamegw_appfw_policy优先级One hundred.-gotoPriorityExpression结束类型请求<——NeedCopy>

高级认证设置

有两种与身份验证相关的配置——在nFactor中加密从客户端到ADC的用户凭据,以及基于IP信誉的MFA。

加密用户凭证

以下设置允许ADC在用户使用ECDHE算法提交表单数据时加密凭据集。要启用此设置,请导航到Citrix Gateway >全局设置>认证设置>修改认证AAA设置并设置登录加密启用

认证登录加密"loading=

或者,在CLI中修改如下:

aaa级参数-loginEncryption使<——NeedCopy>

基于IP信誉的MFA

如果数据库包含源地址,则使用IP信誉与高级身份验证一起提示用户输入额外的因素。另外,创建一个手动维护的地址数据集。

重要的是:

下面的配置示例使用CAPTCHA作为提供另一种身份验证因素的手段,但可以使用任何其他MFA工具。与所有nFactor配置一样,这里显示的策略、模式和策略标签都是简单的示例—添加额外的配置以满足任何特定的登录用例。

有关将TOTP PUSH配置为因素和其他CAPTCHA配置的其他详细信息,请参阅参考资料部分。

通过转到创建数据集AppExpert >数据集并选择“添加”。创建一个具有描述性名称的数据集,类型为' ipv4 ',然后单击' Create '。

恶意IP数据集"loading=

接下来,需要通过转到创建两个高级身份验证策略安全> AAA -应用流量>策略>认证>高级策略>策略并选择“添加”。

创建第一个具有描述性名称的策略,操作类型为NO_AUTHN,表达式设置为“true”。

先进政策好IP"loading=

创建第二个策略,其名称具有描述性,操作类型为NO_AUTHN,表达式如下:

CLIENT.IP.SRC.IPREP_IS_MALICIOUS||CLIENT.IP.SRC.TYPECAST_TEXT_T.CONTAINS_ANY“suspicious_ips”<——NeedCopy>

注意:

此处使用先前创建的数据集的名称。

接下来,通过转到创建CAPTCHA登录模式配置文件安全> AAA -应用流量>登录模式>配置文件选项卡并选择“添加”。给概要文件一个描述性的名称,然后通过选择“铅笔”编辑图标来编辑身份验证模式。浏览到LoginSchema目录,突出显示SingleAuthCaptcha.xml,并选择选择

验证码登录模式"loading=

接下来,通过转到为Captcha模式创建一个身份验证策略标签安全> AAA -应用流量>策略>认证>高级策略>策略标签并选择“添加”。给PL一个描述性的名称,并选择之前创建的captcha登录模式。绑定所需的LDAP动作策略。

注意:

这个示例重用了以前创建的LDAP身份验证操作。

验证码策略标签"loading=

通过选择“添加”创建另一个策略标签。给这个PL一个描述性的名称,并将登录模式设置为LSCHEMA_INT。接下来,绑定前面创建的两个NO_AUTHN身份验证策略。

IP检查策略标签"loading=

最后,将先前创建的身份验证策略的下一个因子设置为此IP信誉检查策略标签。它已经绑定到一个身份验证或网关虚拟服务器。突出显示身份验证策略,选择“edit binding”,然后将新策略标签设置为“select Next Factor”字段。

最终认证策略"loading=

总结

Citrix ADC提供许多内置安全保护,可保护运行在同一设备上的网关或身份验证虚拟服务器。这些保护措施对尝试登录Citrix Gateway的普通用户没有影响。

参考文献

有关其他信息和配置选项,请参阅以下文章:

Citrix Web应用防火墙简介- Citrix产品文档:介绍Citrix Web应用防火墙

Citrix Web应用防火墙PoC指南- Citrix Web应用防火墙的概念验证部署指南

思杰应用程序交付和安全培训-思杰应用程序交付和安全教育培训

开始使用Citrix ADC- Citrix产品文档:入门Citrix ADC -包流

IP的声誉- Citrix Product Docs: IP Reputation

机器人管理- Citrix产品文档:机器人管理

机器人检测- Citrix产品文档:机器人检测

nFactor身份验证- Citrix Product Docs: nFactor Authentication

Citrix ADC - nFactor基础备忘单- Citrix技术区:图表和海报Citrix ADC - nFactor基础备忘单

CTX216091-支持重新验证码与nFactor

nFactor的Citrix网关与推令牌-思杰网关TOTP推送令牌概念验证部署指南

PoC指南:使用WAF、Bot和高级身份验证策略保护网关虚拟服务器