Citrix ADC

Limitación de velocidad para Citrix Gateway

La función de limitación de velocidad de Citrix Gateway permite definir la carga máxima para una entidad de red o entidad virtual determinada en el dispositivo Citrix Gateway. Dado que el dispositivo Citrix Gateway consume todo el tráfico no autenticado, el dispositivo suele estar expuesto a solicitudes de proceso a una velocidad elevada. La función de limitación de velocidad le permite configurar el dispositivo Citrix Gateway para supervisar la velocidad de tráfico asociada a una entidad y tomar medidas preventivas, en tiempo real, basadas en el tráfico. Para obtener más información sobre cómo funciona la limitación de velocidad en un dispositivo Citrix ADC, consulte Limitación de velocidad.

Citrix ADC tiene la función de limitación de velocidad que proporciona protección a los servidores back-end para la velocidad imprevista. Dado que la función de Citrix ADC no servía al tráfico no autenticado que gestiona Citrix Gateway, Citrix Gateway necesitaba su propia funcionalidad de limitación de velocidad. Esto es necesario para comprobar una tasa imprevista de solicitudes de diversas fuentes a las que está expuesto el dispositivo Citrix Gateway. Por ejemplo, solicitudes no autenticadas/de inicio de sesión/control y ciertas API expuestas para validaciones de usuarios finales o dispositivos.

Casos de uso comunes para la limitación de tasas

  • Limite el número de solicitudes por segundo desde una URL.

  • Suelta una conexión basada en cookies recibidas a petición de un host en particular si la solicitud excede el límite de tarifa.

  • Limite el número de solicitudes HTTP que llegan desde el mismo host (con una máscara de subred concreta) y que tienen la misma dirección IP de destino.

Configurar la limitación de velocidad para Citrix Gateway

Requisitos previos

Servidor virtual de autenticación configurado.

Puntos a tener en cuenta

  • En los pasos de configuración, se configura un identificador de límite de muestra. Lo mismo se puede configurar con todos los parámetros admitidos como selector de flujo, modo. Para obtener una descripción exhaustiva de las capacidades de limitación de velocidad, consulte Limitación de velocidad.

  • La directiva también se puede enlazar a un servidor virtual VPN de la siguiente manera. Necesita un servidor virtual VPN configurado para enlazar las directivas mediante el siguiente comando.

     bind vpn vserver  -policy denylogin –pri 1 –type aaa_request
    
  • AAA_REQUEST es un punto de enlace recién introducido para las directivas de respuesta. Las directivas configuradas en este punto de enlace se aplican a toda la solicitud entrante en el servidor virtual especificado. Las directivas se procesan para el tráfico no autenticado/de control primero antes de cualquier otro procesamiento.

  • La vinculación de la directiva al servidor virtual de Citrix Gateway permite limitar la velocidad en el punto de enlace AAA_REQUEST para todo el tráfico consumido por Citrix Gateway, incluidas las solicitudes no autenticadas.

  • La vinculación de la directiva a una velocidad de servidor virtual de autenticación limita las solicitudes de control o no autenticadas que llegan al servidor virtual de autenticación.

Para configurar la limitación de velocidad mediante la interfaz de línea de comandos, en el símbolo del sistema, escriba los siguientes comandos:

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

Descripción del parámetro

  • LimitidEntifier - Nombre de un identificador de límite de velocidad. Debe comenzar con una letra ASCII o un carácter de subrayado (_) y debe constar únicamente de caracteres alfanuméricos o de subrayado ASCII. No se deben utilizar palabras reservadas. Este es un argumento obligatorio. Longitud máxima: 31

  • umbral - Un número máximo de solicitudes que se permiten en el intervalo de tiempo dado cuando las solicitudes (el modo se establece como REQUEST_RATE) son rastreadas por cada período de tiempo. Cuando se realiza un seguimiento de las conexiones (el modo se establece como CONNECTION), es el número total de conexiones que se dejarían pasar. Valor predeterminado: 1 Valor mínimo: 1 Valor máximo: 4294967295

  • TimeSlice - Intervalo de tiempo, en milisegundos, especificado en múltiplos de 10, durante el cual se realiza un seguimiento de las solicitudes para comprobar si cruzan el umbral. El argumento solo es necesario cuando el modo se establece en REQUEST_RATE. Valor predeterminado: 1000 Valor mínimo: 10 Valor máximo: 4294967295

  • mode - Define el tipo de tráfico que se va a rastrear.

    • REQUEST_RATE: Rastrea las solicitudes/timeslice.
    • CONEXIÓN: Realiza un seguimiento de las transacciones activas.

Para configurar la limitación de velocidad mediante la GUI de Citrix ADC:

  1. Vaya a AppExpert > Límite de velocidad > Identificadores de límite, haga clic en Agregar y especifique los detalles relevantes como se especifica en la sección CLI.

    Crear identificador de límite.

  2. Vaya a AppExpert>Respondedor>Directivas. En la página Directivas de Respondedor, haga clic en Agregar.

  3. En la página Crear directiva de respuesta, cree una directiva de respuesta con una acción de respuesta que tenga el identificador de límite.

  4. Para crear una acción de respuesta, haga clic en Agregar junto a Acción e introduzca un nombre para la acción de respuesta.

  5. Seleccione Tipo como Respondedor con en el menú desplegable, especifique la siguiente expresión, “HTTP/1.1 200 Aceptar\ r\ n\ r\ n”+ “Solicitud denegada debido a una tasa inusual” y haga clic en Crear.

    Crear acción de respuesta

  6. Para crear una directiva de respuesta, en la página Crear directiva de respuesta, escriba un nombre para la directiva de respuesta, especifique la siguiente expresión, ‘sys.check_limit (“limit_one_login”) ‘y haga clic en Crear.

    Crear directiva de respondedor

  7. Enlazar la directiva de respondedor al servidor virtual de autenticación.

    • a. Vaya a Security>Tráfico de aplicaciones AAA-> Servidor virtual.
    • b. Seleccione el servidor virtual.
    • c. Agregue una directiva.
    • d. Elija la directiva de respuesta que quiere vincular al servidor, establezca la prioridad.
    • e. Elija el tipo como AAA-REQUEST y haga clic en Continuar.

    Enlazar la directiva

Nota: También puede habilitar la limitación de velocidad en el punto de enlace AAA_REQUEST para el servidor virtual VPN.

Configuración de los casos de uso comunes para aplicar límites de velocidad a Citrix Gateway

Los siguientes son los ejemplos de comandos para configurar casos de uso comunes.

  • Limite el número de solicitudes por segundo desde una 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
    
  • Dejar una conexión basada en cookies recibidas a petición de www.yourcompany.com si la solicitud excede el límite de tarifas.

     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
    
    
  • Limite el número de solicitudes HTTP que llegan desde el mismo host (con una máscara de subred de 32) y que tienen la misma dirección IP de destino.

    ``` Agregar selector de flujo ipv6_sel “Client.IPv6.src.Subnet (32)” Client.IPv6.DST Q.URL

    Agregar ns LiMitidentifier ipv6_id —IMeslice 20000 —SelectorName ipv6_sel

    Agregar lb vserver ipv6_vip HTTP 3ffe። 209 80 —PersistenceType NONE —CLTTime

    Agregar acción de respuesta redirect_page redirect_page redirect “\“http://redirectpage.com/\”"

    Agregar directiva de respuesta ipv6_resp_pol “SYS.CHECK_LIMIT (\” ipv6_id\”)” redirect_page

    Enlazar respondedor global ipv6_resp_pol 5 FIN —type DEFAULT