Citrix ADC

Citrix Gateway 的速率限制

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

Citrix ADC 具有速率限制功能,可在不可预见的速率下为后端服务器提供保护。由于 Citrix ADC 的功能不能为 Citrix Citrix Gateway 处理的未经身份验证的流量提供服务,因此 Citrix 网关需要自己的速率限制功能。检查来自 Citrix Gateway 设备暴露于各种来源的不可预见的请求速率时,需要执行此操作。例如,未经身份验证/登录/控制请求以及某些用于最终用户或设备验证的 API。

速率限制的常见用例

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

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

  • 限制来自同一主机(具有特定子网掩码)和具有相同目标 IP 地址的 HTTP 请求数。

为 Citrix Gateway 配置速率限制

必备条件

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

注意事项

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

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

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

  • 将策略绑定到 Citrix Gateway 虚拟服务器可在 AA_ROCE 绑定点上对 Citrix 网关使用的所有流量(包括未经身份验证的请求)进行速率限制。

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

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

add limitIdentifier <limitIdentifier name> -threshold <positive_integer> -timeslice <positive_integer> -mode <mode type>
Example: add limitIdentifier limit_one_login -threshold 10 -timeslice 4294967290 -mode REQUEST_RATE
add responderaction denylogin respondwith ‘“HTTP/1.1 200 OK\r\n\r\n” + “Request is denied due to unusual rate”’
add responder policy denylogin 'sys.check_limit("limit_one_login")' denylogin
bind authentication vserver <vserver name> -policy denylogin –pri 1 –type aaa_request
Example: bind authentication vserver authvserver -policy denylogin –pri 1 –type aaa_request

参数说明

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

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

  • Time Lice- 时间间隔(以毫秒为单位),以 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. 将响应程序策略绑定到身份验证虚拟服务器。

    • a. 转到安全性 > AAA 应用程序流量 > 虚拟服务器
    • b. 选择虚拟服务器。
    • c. 添加策略。
    • d. 选择要绑定到服务器的响应程序策略,设置优先级。
    • e. 选择 AAA-请求 类型,然后单击 继续

    绑定策略

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

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

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

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

     add stream selector ipStreamSelector http.req.url “client.ip.src”
    
     add ns limitIdentifier ipLimitIdentifier –threshold 4 –timeslice 1000 –mode request_rate –limitType smooth –selectorName ip StreamSelector
    
     add responder policy ipLimitResponderPolicy “http.req.url.contains(\”myasp.asp\”) && sys.check_limit(\”ipLimitIdentifier\”)” myWebSiteRedirectAction
    
     bind authentication virtual server authvserver -policy denylogin –pri 1 –type aaa_request
    
  • 如果请求超出速率限制,则根据从 www.yourComany.com 收到的 Cookie 删除连接。

     add stream selector 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' –bypassSafetyCheck Yes
    
     add responder policy rateLimitCookiePolicy
    
     “http.req.url.contains(\www.yourcompany.com) && sys.check_limit(\”myLimitIdentifier\”)” sendRedirectUrl
    
    
  • 限制来自同一主机(子网掩码为 32)和具有相同目标 IP 地址的 HTTP 请求数。

    ``` Add stream selector ipv6_sel“CLIENT.IPv6.src.subnet(32)”CLIENT.IPv6.dst Q.URL

    Add ns limitIdentifier ipv6_id –imeSlice 20000 –selectorName ipv6_sel

    Add lb vserver ipv6_vip HTTP 3ffe:: 209 80 –persistenceType NONE –cltTime

    添加响应程序操作 redirect_page redirect“\”http://redirectpage.com/\”"

    添加响应程序策略 ipv6_resp_pol“SYS.CHECK_LIMIT(\”ipv6_id\”)”redirect_page

    Bind responder global ipv6_resp_pol 5 END –type DEFAULT

Citrix Gateway 的速率限制