Citrix ADC

Ratenbegrenzung für Citrix Gateway

Mit der Ratenbegrenzungsfunktion für Citrix Gateway können Sie die maximale Last für eine bestimmte Netzwerkentität oder virtuelle Entität auf dem Citrix Gateway-Gerät definieren. Da das Citrix Gateway Gerät den gesamten nicht authentifizierten Datenverkehr verbraucht, wird das Gerät häufig hohen Verarbeitungsanforderungen ausgesetzt. Mit der Ratenbegrenzungsfunktion können Sie das Citrix Gateway Gerät so konfigurieren, dass die Datenverkehrsrate einer Entität überwacht und basierend auf dem Datenverkehr in Echtzeit vorbeugende Maßnahmen ergriffen werden. Weitere Informationen zur Funktionsweise der Ratenbegrenzung in einer Citrix ADC Appliance finden Sie unter Ratenbegrenzung.

Citrix ADC verfügt über die Ratenbegrenzungsfunktion, die Back-End-Servern gegen unvorhergesehene Rate schützt. Da das Feature für Citrix ADC den nicht authentifizierten Datenverkehr, den Citrix Gateway verarbeitet, nicht bereitstellte, benötigte Citrix Gateway eine eigene Ratenbegrenzungsfunktion. Dies ist erforderlich, um eine unvorhergesehene Rate von Anforderungen aus verschiedenen Quellen zu überprüfen, denen das Citrix Gateway Gerät verfügbar ist. Beispielsweise nicht authentifizierte/Anmelden/Steuerungsanfragen und bestimmte APIs, die für Endbenutzer- oder Gerätevalidierungen verfügbar gemacht werden.

Häufige Anwendungsfälle für die Ratenbegrenzung

  • Begrenzen Sie die Anzahl der Anfragen pro Sekunde von einer URL.

  • Lösen Sie eine Verbindung basierend auf Cookies, die auf Anfrage von einem bestimmten Host empfangen werden, wenn die Anforderung die Rate Limit überschreitet.

  • Beschränken Sie die Anzahl der HTTP-Anforderungen, die von demselben Host (mit einer bestimmten Subnetzmaske) eintreffen und die dieselbe Ziel-IP-Adresse haben.

Konfigurieren der Ratenbegrenzung für Citrix Gateway

Voraussetzungen

Ein konfigurierter virtueller Authentifizierungsserver.

Punkte zu beachten

  • In den Konfigurationsschritten wird ein Beispiellimitbezeichner konfiguriert. Dasselbe kann mit allen unterstützten Parametern wie Stream-Selektor, Modus konfiguriert werden. Eine ausführliche Beschreibung der Funktionen zur Begrenzung der Rate finden Sie unter Ratenbegrenzung.

  • Die Richtlinie kann auch wie folgt an einen virtuellen VPN-Server gebunden werden. Sie benötigen einen konfigurierten virtuellen VPN-Server, um die Richtlinien mit dem folgenden Befehl zu binden.

     bind vpn vserver  -policy denylogin –pri 1 –type aaa_request
    
  • AAA_REQUEST ist ein neu eingeführter Bindpoint für Responder-Richtlinien. Die an diesem Bindpunkt konfigurierten Richtlinien werden auf alle eingehenden Anforderungen auf dem angegebenen virtuellen Server angewendet. Die Richtlinien werden für den nicht authentifizierten Datenverkehr vor jeder anderen Verarbeitung verarbeitet.

  • Das Binden der Richtlinie an den virtuellen Citrix Gateway -Server ermöglicht die Begrenzung der Rate am AAA_REQUEST Bindpoint für den gesamten Datenverkehr, der von Citrix Gateway verbraucht wird, einschließlich nicht authentifizierter Anforderungen.

  • Die Bindung der Richtlinie an eine virtuelle Authentifizierungsserver-Rate begrenzt die nicht authentifizierten/Steuerungsanforderungen, die den virtuellen Authentifizierungsserver treffen.

Um die Ratenbegrenzung über die Befehlszeile zu konfigurieren, geben Sie an der Eingabeaufforderung die folgenden Befehle ein:

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

Beschreibung des Parameters

  • limitIdentifier- Name für einen Satzgrenzbezeichner. Muss mit einem ASCII-Buchstaben oder einem Unterstrich (_) beginnen und nur aus alphanumerischen ASCII-Zeichen oder Unterstrichen bestehen. Reservierte Wörter dürfen nicht verwendet werden. Dies ist ein obligatorisches Argument. Maximale Länge: 31

  • threshold - Eine maximale Anzahl von Anforderungen, die in der angegebenen Zeitlice zulässig sind, wenn Anforderungen (Modus wird als REQUEST_RATE festgelegt) pro Zeitlice nachverfolgt werden. Wenn Verbindungen (Modus wird als CONNECTION festgelegt) verfolgt werden, ist dies die Gesamtzahl der Verbindungen, die durchgelassen werden würden. Standardwert: 1 Mindestwert: 1 Maximalwert: 4294967295

  • TimeSlice - Zeitintervall, in Millisekunden, angegeben in Vielfachen von 10, in dem Anfragen verfolgt werden, um zu überprüfen, ob sie den Schwellenwert überschreiten. Das Argument wird nur benötigt, wenn der Modus auf REQUEST_RATE gesetzt ist. Standardwert: 1000 Mindestwert: 10 Maximalwert: 4294967295

  • mode - Definiert den Typ des Traffics, der verfolgt werden soll.

    • REQUEST_RATE - Verfolgt Anforderungen/Zeitlice.
    • CONNECTION - Verfolgt aktive Transaktionen.

So konfigurieren Sie die Ratenbegrenzung mit der Citrix ADC GUI:

  1. Navigieren Sie zu AppExpert > Ratenbegrenzung > Limitkennungen, klicken Sie auf Hinzufügen, und geben Sie die entsprechenden Details an, wie im CLI-Abschnitt angegeben.

    Grenzwertbezeichner erstellen.

  2. Navigieren Sie zu AppExpert>Responder>Richtlinien. Klicken Sie auf der Seite Responderrichtlinien auf Hinzufügen.

  3. Erstellen Sie auf der Seite Responderrichtlinie erstellen eine Responderrichtlinie mit einer Responderaktion, die die Limitkennung aufweist.

  4. Um die Antwortaktion zu erstellen, klicken Sie neben Aktion auf Hinzufügen, und geben Sie einen Namen für die Antwortaktion ein.

  5. Wählen Sie im Dropdown-Menü Typ als Antwort mit aus, geben Sie den folgenden Ausdruck an: “HTTP/1.1 200 OK\ r\ n\ r\ n”+ “Anforderung wurde wegen ungewöhnlicher Rate verweigert”, und klicken Sie auf Erstellen.

    Aktion Responder erstellen

  6. Um eine Responderrichtlinie zu erstellen, geben Sie auf der Seite Responderrichtlinie erstellen einen Namen für die Responderrichtlinie ein, geben Sie den folgenden Ausdruck ‘sys.check_limit (“limit_one_login”) ‘an, und klicken Sie auf Erstellen.

    Responder-Richtlinie erstellen

  7. Binden Sie die Responderrichtlinie an den virtuellen Authentifizierungsserver.

    • a. Wechseln Sie zu Sicherheit>AAA-Anwendungsverkehr>Virtueller Server.
    • b. Wählen Sie den virtuellen Server aus.
    • c. Fügen Sie eine Richtlinie hinzu.
    • d. Wählen Sie die Responderrichtlinie aus, die Sie an den Server binden möchten, und legen Sie die Priorität fest.
    • e. Wählen Sie den Typ AAA-REQUEST aus und klicken Sie auf Weiter.

    Binden der Richtlinie

Hinweis: Sie können die Ratenbegrenzung auch am Bindpunkt AAA_REQUEST für den virtuellen VPN-Server aktivieren.

Konfiguration für die allgemeinen Anwendungsfälle für die Anwendung der Ratenbegrenzung auf Citrix Gateway

Im Folgenden finden Sie Beispiele für Befehle zum Konfigurieren allgemeiner Anwendungsfälle.

  • Begrenzen Sie die Anzahl der Anfragen pro Sekunde von einer 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
    
  • Lösen Sie eine Verbindung basierend auf Cookies, die auf Anfrage von www.yourcompany.com empfangen werden, wenn die Anfrage die Rate Limit überschreitet.

     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
    
    
  • Beschränken Sie die Anzahl der HTTP-Anforderungen, die von demselben Host (mit einer Subnetzmaske von 32) eintreffen und die dieselbe Ziel-IP-Adresse haben.

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