Citrix ADC

Limitation du débit pour Citrix Gateway

La fonctionnalité de limitation de débit de Citrix Gateway vous permet de définir la charge maximale pour une entité réseau ou une entité virtuelle donnée sur l’appliance Citrix Gateway. Étant donné que l’appliance Citrix Gateway consomme tout le trafic non authentifié, elle est souvent exposée à des demandes de traitement à un taux élevé. La fonction de limitation de débit vous permet de configurer l’appliance Citrix Gateway pour surveiller le débit de trafic associé à une entité et prendre des mesures préventives, en temps réel, en fonction du trafic. Pour plus d’informations sur le fonctionnement de la limitation de débit dans une appliance Citrix ADC, voir Limitation de débit.

Citrix ADC dispose de la fonction de limitation de débit qui fournit une protection aux serveurs back-end pour un taux imprévu. Étant donné que la fonctionnalité de Citrix ADC ne servait pas le trafic non authentifié que Citrix Gateway gère, Citrix Gateway avait besoin de sa propre fonctionnalité de limitation de débit. Cela est nécessaire pour vérifier un taux imprévu de demandes provenant de diverses sources auxquelles l’appliance Citrix Gateway est exposée. Par exemple, les demandes de connexion/de contrôle non authentifiées et certaines API exposées pour les validations des utilisateurs finaux ou des appareils.

Cas d’utilisation courants pour la limitation de débit

  • Limitez le nombre de demandes par seconde à partir d’une URL.

  • Supprimer une connexion basée sur les cookies reçus dans la demande d’un hôte particulier si la demande dépasse la limite de débit.

  • Limitez le nombre de requêtes HTTP qui arrivent du même hôte (avec un masque de sous-réseau particulier) et qui ont la même adresse IP de destination.

Configurer la limitation de débit pour Citrix Gateway

Conditions préalables

Un serveur virtuel d’authentification configuré.

Points à noter

  • Au cours des étapes de configuration, un exemple d’identificateur de limite est configuré. La même chose peut être configurée avec tous les paramètres pris en charge comme le sélecteur de flux, mode. Pour obtenir une description exhaustive des capacités de limitation de débit, voir Limitation de débit.

  • La stratégie peut également être liée à un serveur virtuel VPN comme suit. Vous avez besoin d’un serveur virtuel VPN configuré pour lier les stratégies à l’aide de la commande suivante.

     bind vpn vserver  -policy denylogin –pri 1 –type aaa_request
     <!--NeedCopy-->
    
  • AAA_REQUEST est un nouveau point de liaison introduit pour les stratégies de répondeur. Les stratégies configurées à ce point de liaison sont appliquées à toutes les demandes entrantes sur le serveur virtuel spécifié. Les stratégies sont traitées pour le trafic non authentifié/de contrôle avant tout autre traitement.

  • La liaison de la stratégie au serveur virtuel Citrix Gateway permet de limiter le débit au niveau du point de liaison AAA_REQUEST pour tout le trafic consommé par Citrix Gateway, y compris les demandes non authentifiées.

  • La liaison de la stratégie à un débit de serveur virtuel d’authentification limite les demandes non authentifiées/de contrôle qui touchent le serveur virtuel d’authentification.

Pour configurer la limitation de débit à l’aide de l’interface de ligne de commande, à l’invite de commandes, tapez les commandes suivantes :

add limitIdentifier <limitIdentifier name> -threshold <positive_integer> -timeslice <positive_integer> -mode <mode type>
<!--NeedCopy-->
Example: 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-->
Example: bind authentication vserver authvserver -policy denylogin –pri 1 –type aaa_request
<!--NeedCopy-->

Description des paramètres

  • LimitIdentifier : nom d’un identificateur de limite de taux. Doit commencer par une lettre ASCII ou un caractère de soulignement (_) et ne doit être composé que de caractères alphanumériques ou de soulignement ASCII. Les mots réservés ne doivent pas être utilisés. Il s’agit d’un argument obligatoire. Longueur maximale : 31

  • threshold : nombre maximal de demandes autorisées dans la tranche de temps donnée lorsque les demandes (le mode est défini sur REQUEST_RATE) sont suivies par tranche de temps. Lorsque les connexions (le mode est défini sur CONNECTION) sont suivies, il s’agit du nombre total de connexions qui seraient laissées passer. Valeur par défaut : 1 Valeur minimale : 1 Valeur maximale : 4294967295

  • TimeSlice - Intervalle de temps, en millisecondes, spécifié en multiples de 10, pendant lequel les demandes sont suivies pour vérifier si elles dépassent le seuil. L’argument n’est nécessaire que lorsque le mode est défini sur REQUEST_RATE. Valeur par défaut : 1000 Valeur minimale : 10 Valeur maximale : 4294967295

  • mode - Définit le type de trafic à suivre.

    • REQUEST_RATE - Effectue le suivi des requêtes/tranche de temps.
    • CONNEXION - Effectue le suivi des transactions actives.

Pour configurer la limitation de débit à l’aide de l’interface graphique Citrix ADC :

  1. Accédez à AppExpert > Limitation de débit > Identificateurs de limite, cliquez sur Ajouter et spécifiez les détails pertinents comme indiqué dans la section CLI.

    Créez un identificateur de limite.

  2. Accédez à AppExpert>Responder>Stratégies. Sur la page Stratégies de répondeur, cliquez sur Ajouter.

  3. Sur la page Créer une stratégie de répondeur, créez une stratégie de répondeur avec une action de répondeur qui possède l’identificateur de limite.

  4. Pour créer une action de répondeur, cliquez sur Ajouter en regard de Action et saisissez un nom pour l’action du répondeur.

  5. Sélectionnez le type Répondre avec dans le menu déroulant, spécifiez l’expression suivante, « HTTP/1.1 200 OK \ r \ n \ r \ n”+ « La demande est refusée en raison d’un taux inhabituel », puis cliquez sur Créer.

    Action Créer un répondeur

  6. Pour créer une stratégie de répondeur, sur la page Créer une stratégie de répondeur, entrez un nom pour la stratégie de répondeur, spécifiez l’expression suivante, ‘sys.check_limit (« limit_one_login ») ‘, puis cliquez sur Créer.

    Créer une stratégie de répondeur

  7. Liez la stratégie de répondeur au serveur virtuel d’authentification.

    • a. Accédez à Security>AAA-Application Traffic>Virtual Server.
    • b. Sélectionnez le serveur virtuel.
    • c. Ajoutez une stratégie.
    • d. Choisissez la stratégie de répondeur que vous souhaitez lier au serveur, définissez la priorité.
    • e. Choisissez le type AAA-REQUEST et cliquez sur Continuer.

    Liez la stratégie

Remarque : Vous pouvez également activer la limitation de débit au point de liaison AAA_REQUEST pour le serveur virtuel VPN.

Configuration pour les cas d’utilisation courants de l’application de la limitation de débit à Citrix Gateway

Voici des exemples de commandes permettant de configurer des cas d’utilisation courants.

  • Limitez le nombre de demandes par seconde à partir d’une 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-->
    
  • Supprimer une connexion basée sur les cookies reçus à la demande de www.yourcompany.com si la demande dépasse la limite de débit.

     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'
    
     add responder policy rateLimitCookiePolicy
    
     “http.req.url.contains(\www.yourcompany.com) && sys.check_limit(\”myLimitIdentifier\”)” sendRedirectUrl
    
     <!--NeedCopy-->
    
  • Limitez le nombre de requêtes HTTP qui arrivent du même hôte (avec un masque de sous-réseau de 32) et qui ont la même adresse IP de destination.

     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
    
     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-->