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 un ritmo elevado. 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 una velocidad imprevista. Dado que la función de Citrix ADC no servía para el tráfico no autenticado que administra Citrix Gateway, Citrix Gateway necesitaba su propia funcionalidad de limitación de velocidad. Esto es necesario para comprobar una tasa imprevista de solicitudes de varias fuentes a las que está expuesto el dispositivo Citrix Gateway. Por ejemplo, solicitudes de control o inicio de sesión no autenticadas y determinadas API expuestas para validaciones de dispositivos o usuarios finales.

Casos de uso comunes para la limitación de velocidad

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

  • Elimine una conexión en función de las cookies recibidas en la solicitud de un host en particular si la solicitud excede el límite de velocidad.

  • Limite el número de solicitudes HTTP que llegan del 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 que 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 tarifas, consulte Limitación de tarifas.

  • 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
     <!--NeedCopy-->
    
  • 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 todas las solicitudes entrantes del servidor virtual especificado. Las directivas se procesan para el tráfico no autenticado o de control 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 un 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>
<!--NeedCopy-->

Ejemplo:

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

Ejemplo:

bind authentication vserver authvserver -policy denylogin –pri 1 –type aaa_request
<!--NeedCopy-->

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 guión bajo (_) y debe constar únicamente de caracteres alfanuméricos o de guión bajo ASCII. No se deben utilizar palabras reservadas. Se trata de un argumento obligatorio. Longitud máxima: 31

  • umbral: número máximo de solicitudes permitidas en el segmento de tiempo determinado cuando se realiza un seguimiento de las solicitudes (el modo se establece como REQUEST_RATE) por segmento 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 por defecto: 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/el segmento de tiempo.
    • 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.

    Cree un identificador de límite.

  2. Vaya a AppExpert>Respondedor>Directivas. En la página Directivas de respuesta, 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 escribir como Responder con en el menú desplegable, especifique la siguiente expresión, “HTTP/1.1 200 OK\ 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, introduzca 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 respuesta

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

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

    Vincular 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 habituales para aplicar la limitación de velocidad a Citrix Gateway

A continuación se muestran ejemplos de comandos para configurar casos de uso comunes.

  • Limita el número de solicitudes por segundo de 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
     <!--NeedCopy-->
    
  • Desconectar una conexión en función de las cookies recibidas a petición de www.yourcompany.com si la solicitud supera el límite de tarifa.

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

     add stream selector ipv6_sel “CLIENT.IPv6.src.subnet(32)”CLIENT.IPv6.dst
    
     add ns limitIdentifier ipv6_id –imeSlice 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
     <!--NeedCopy-->
    
Limitación de velocidad para Citrix Gateway