Citrix ADC

Citrix Gateway的速率限制

Citrix网关的速率限制功能使您可以定义Citrix网关设备上给定网络实体或虚拟实体的最大负载。由于Citrix网关设备会消耗所有未经身份验证的流量,因此该设备通常会以较高的速率接收处理请求。速率限制功能允许您配置 Citrix Gateway 设备以监视与实体关联的流量速率,并根据流量实时采取预防措施。有关速率限制在 Citrix ADC 设备中如何工作的更多信息,请参阅速率限制

Citrix ADC具有速率限制功能,可以不可预见的速率为后端服务器提供保护。由于Citrix ADC的功能不能为Citrix网关处理的未经身份验证的流量提供服务,因此Citrix网关需要自己的速率限制功能。这是检查Citrix Gateway设备暴露给各种来源的无法预料的请求速率所必需的。例如,未经身份验证/登录/控制的请求以及为最终用户或设备验证而公开的某些api。

速率限制的常见用例

  • 限制每秒来自url的请求数。

  • 如果请求超出速率限制,则根据从特定主机收到的请求中收到的cookie断开连接。

  • 限制来自同一台主机(使用特定子网掩码)且目标IP地址相同的HTTP请求的数量。

为Citrix Gateway配置速率限制

必备条件

配置的身份验证虚拟服务器。

注意事项

  • 在配置步骤中,配置了样本限制标识符。同样可以配置所有支持的参数,如流选择器,模式。有关速率限制功能的详尽描述,请参阅速率限制

  • 此策略还可以绑定到VPN虚拟服务器,如下所示。您需要配置的VPN虚拟服务器才能使用以下命令绑定策略。

    绑定VPN vserver -policy denylogin -pri 1 -type aaa_request 
  • Aaa_request是响应程序策略新引入的绑定点。在此绑定点配置的策略将应用于指定虚拟服务器上的所有传入请求。在进行任何其他处理之前,首先处理未经身份验证/控制的流量的策略。

  • 将策略绑定到Citrix网关虚拟服务器可在AAA_REQUEST绑定点为Citrix网关消耗的所有流量(包括未经身份验证的请求)启用速率限制。

  • 将策略绑定到身份验证虚拟服务器速率会限制未经身份验证/控制的请求到达身份验证虚拟服务器。

要使用命令行界面配置速率限制,请在命令提示符下键入以下命令:

add limitIdentifier  -threshold  -timeslice  -mode  

示例:

添加limitentidentifier limit_one_login -threshold 10 -timeslice 4294967290模式——NeedCopy >
添加responderaction denylogin respondwith ' " HTTP/1.1 200 OK\r\n\r\n " + "请求被拒绝,由于不寻常的速率" ' 
添加响应器策略denylogin 'sys.check_limit("limit_one_login")' denylogin 
绑定认证vserver  -policy denylogin -pri 1 -type aaa_request 

示例:

绑定认证vserver authvserver -policy denylogin -pri 1 -type aaa_request 

参数说明

  • 限制标识符-速率限制标识符的名称。必须以ASCII字母或下划线(_)字符开的头,并且必须仅由ASCII字母数字或下划线字符组成。不得使用保留字。这是一个强制性的论点。最大长度:31

  • 阈值-在每个时间片跟踪请求(模式设置为request_rate)时,在给定时间片内允许的最大请求数。当跟踪连接(模式设置为连接)时,它是允许通过的连接总数。默认值:1 最小值:1 最大值:4294967295

  • 时间片,时间间隔(以毫秒为单位),以 10 的倍数指定,在此期间,将跟踪请求以检查它们是否超过阈值。仅当模式设置为;默认值:1000 最小值:10 最大值:4294967295

  • 模式-定义要跟踪的流量类型。

    • /时间片。
    • 连接-跟踪活动中的交易。

要使用Citrix ADC GUI配置速率限制:

  1. 导航到AppExpert >速率限制>限制标识符,单击添加并指定cli部分中指定的相关详细信息。

    创建限制标识符

  2. 导航到AppExpert >响应程序>策略。在响应程序策略页面上,单击添加

  3. 创建响应程序策略页面上,使用具有限制标识符的响应程序操作创建响应程序策略。

  4. 要创建响应程序操作,请单击操作旁边的添加,然后输入响应程序操作的名称。

  5. 从下拉菜单中选择类型作为响应方式,指定以下表达式“HTTP / 1.1 200 OK \ r \ n \ r \ n”+“请求因异常速率被拒绝”,然后单击”创建”。

    创建响应者操作

  6. 要创建响应程序策略,请在创建响应程序策略页面上输入响应程序策略的名称,指定以下表达式" sys. "Check_limit (" limit_one_login ") ',然后单击创建

    创建响应者策略

  7. 将响应程序策略绑定到身份验证虚拟服务器。

    • 转到安全> aaa应用程序流量>虚拟服务器
    • 选择虚拟服务器。
    • 添加策略。
    • 选择要绑定到服务器的响应程序策略,设置优先级。
    • 选择类型作为AAA-Request,然后单击继续

    绑定策略

注意:您还可以在VPN虚拟服务器的aaa_request绑定点启用速率限制。

将速率限制应用于Citrix Gateway的常见用例的配置

以下是用于配置常见用例的命令示例。

  • 限制每秒来自url的请求数。

    添加流选择器ipStreamSelector。src " add ns limitIdentifier ipLimitIdentifier -threshold 4 - times片1000 -mode request_rate -limitType smooth -selectorName ip StreamSelector add responder policy ipLimitResponderPolicy " http.req.url.contains(\ " myasp.asp\ ") && sys.check_limit(\ " ipLimitIdentifier\ ") " myWebSiteRedirectAction绑定认证虚拟服务器authvserver -policy denylogin -pri 1 -type aaa_request 
  • 如果请求超过速率限制,请根据从www.yourcompany.com收到的请求中收到的饼干来断开连接。

    add流选择器cacheStreamSelector " http.req.cookie.value(\ " mycookie\ ") " " client.ip.src.subnet(24) " add ns limitIdentifier myLimitIdentifier -Threshold 2 -timeSlice 3000 -selectorName reqCookieStreamSelector add responder action sendRedirectURL redirect ' "http://www.mycompany.com" ' + http.req。url' add responder policy rateLimitCookiePolicy " http.req.url.contains(\www.yourcompany.com) && sys.check_limit(\ " myLimitIdentifier\ ") " sendRedirectUrl 
  • 限制来自同一主机(子网掩码为32)和具有相同目标IP地址的HTTP请求数。

    添加流选择器ipv6_sel " CLIENT.IPv6.src.subnet(32) "dst add ns limitIdentifier ipv6_id - imeslicice 20000 -selectorName ipv6_sel add lb vserver ipv6_vip HTTP 3ffe:: 209 80 -persistenceType NONE -cltTime add responder action redirect_page redirect " \ " ' http://redirectpage.com/\ " " ' add responder policy ipv6_resp_pol " SYS.CHECK_LIMIT(\ " ipv6_id\ ") " redirect_page bind responder global ipv6_resp_pol 5 END -type DEFAULT 
Citrix Gateway的速率限制