Citrix ADC

Ratenbegrenzung für Citrix Gateway

Mit der Ratenbegrenzungsfunktion für Citrix Gateway können Sie die maximale Last für eine bestimmte Netzwerkeinheit oder virtuelle Entität auf der Citrix Gateway-Appliance definieren. Da das Citrix Gateway-Gerät den gesamten nicht authentifizierten Datenverkehr verbraucht, ist das Gerät häufig Prozessanforderungen mit hoher Geschwindigkeit 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 unterRatenbegrenzung.

Citrix ADC verfugt uber Funktion Begrenzun这苏珥是死亡g der Rate, die Back-End-Server mit einer unvorhergesehenen Geschwindigkeit schützt. Da die Funktion für Citrix ADC den nicht authentifizierten Datenverkehr, den Citrix Gateway verarbeitet, nicht bereitstellte, benötigte Citrix Gateway seine eigenen ratenbegrenzenden Funktionen. Dies ist erforderlich, um eine unvorhergesehene Rate von Anfragen aus verschiedenen Quellen zu überprüfen, denen das Citrix Gateway-Gerät ausgesetzt ist. Zum Beispiel nicht authentifizierte/Anmelde-/Steuerungsanfragen und bestimmte APIs, die für Endbenutzer- oder Gerätevalidierungen offengelegt wurden.

Häufige Anwendungsfälle für die Tarifbegrenzung

  • Beschränken Sie die Anzahl der Anfragen pro Sekunde von einer URL.

  • Trennen Sie eine Verbindung basierend auf Cookies, die auf Anfrage von einem bestimmten Host empfangen wurden, wenn die Anfrage das Ratenlimit überschreitet.

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

Konfigurieren der Ratenbegrenzung für Citrix Gateway

Voraussetzungen

Ein konfigurierter virtueller Authentifizierungsserver.

Wichtige Hinweise

  • In den Konfigurationsschritten wird ein Sample-Limit Identifier konfiguriert. Dasselbe kann mit allen unterstützten Parametern wie Stream-Selektor, Modus konfiguriert werden. Eine erschöpfende Beschreibung der Ratenbegrenzungsfunktionen finden Sie unterRatenbegrenzung.

  • 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 Bindepunkt für Responder-Richtlinien. Die an diesem Bindepunkt konfigurierten Richtlinien werden auf alle eingehenden Anforderungen auf dem angegebenen virtuellen Server angewendet. Die Richtlinien werden für den nicht authentifizierten/kontrollierten Verkehr zuerst vor jeder anderen Verarbeitung verarbeitet.

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

  • Durch das Binden der Richtlinie an einen virtuellen Authentifizierungsserver werden die nicht authentifizierten/kontrollierten Anforderungen begrenzt, die den virtuellen Authentifizierungsserver treffen.

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

add limitIdentifier  -threshold  -timeslice  -mode  

Beispiel:

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  -policy denylogin –pri 1 –type aaa_request 

Beispiel:

bind authentication vserver authvserver -policy denylogin –pri 1 –type aaa_request 

Beschreibung des Parameters

  • LimitIdentifier -名字毛皮Ratenbegrenzungs-ID的风景明信片。麻省理工学院einem给弄ASCII-Buchstaben oder Unterstrich (_) beginnen und darf nur aus alphanumerischen ASCII-Zeichen oder Unterstrichen bestehen. Reservierte Wörter dürfen nicht verwendet werden. Dies ist ein zwingendes Argument. Maximale Länge: 31

  • Schwellenwert -Eine maximale Anzahl von Anforderungen, die in der angegebenen Zeitleiste zulässig sind, wenn Anfragen (Modus ist als REQUEST_RATE festgelegt) pro Timeslice verfolgt werden. Wenn Verbindungen (Modus ist als CONNECTION eingestellt) verfolgt werden, ist dies die Gesamtzahl der Verbindungen, die durchgelassen würden. Standardwert: 1 Minimalwert: 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 die Art des Traffics, der verfolgt werden soll.

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

So konfigurieren Sie die Ratenbegrenzung über die Citrix ADC-GUI:

  1. Navigieren Sie zuAppExpert > Ratenbegrenzung > Limitkennungen, klicken Sie aufHinzufügen, und geben Sie die entsprechenden Details an, wie im CLI-Abschnitt angegeben.

    Erstellen Sie eine Limit-ID.

  2. Navigieren Sie zuAppExpert>Responder>Richtlinien. Klicken Sie auf der SeiteResponder-RichtlinienaufHinzufügen.

  3. Erstellen Sie auf der SeiteResponder Policy erstelleneine Responder-Richtlinie mit einer Responder Action, die über die Limit-ID verfügt.

  4. Um eine Responder Action zu erstellen, klicken Sie nebenAktionaufHinzufügenund geben Sie einen Namen für die Responder Action ein.

  5. Wählen Sie im Dropdown-Menü den Typ alsAntworten mitaus, geben Sie den folgenden Ausdruck an: “HTTP/1.1 200 OK\ r\ n\ r\ n”+ “Anforderung wird aufgrund ungewöhnlicher Rate verweigert”, und klicken Sie aufErstellen.

    Responder Action erstellen

  6. Um eine Responder Policy zuerstellen,您改der Seite响应者波利奇yerstellen einen Namen für die Responder-Richtlinie ein, geben Sie den folgenden Ausdruck an: ‘sys.check_limit (“limit_one_login”) ‘, und klicken Sie aufErstellen.

    Responder Policy erstellen

  7. Binden Sie die Responder Policy an den virtuellen Authentifizierungsserver.

    • Gehen Sie zuSicherheit> AAA-Anwendungsverkehr> Virtueller Server.
    • Wählen Sie den virtuellen Server aus.
    • Fügen Sie eine Richtlinie hinzu.
    • Wählen Sie die Responder Policy aus, die Sie an den Server binden möchten, und legen Sie die Priorität fest.
    • Wählen Sie den Typ alsAAA-REQUESTund klicken Sie aufWeiter.

    Binden Sie die Richtlinie

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

Konfiguration für die gängigen Anwendungsfälle zum Anwenden von Ratenbegrenzung auf Citrix Gateway

Im Folgenden sind die Beispiele für Befehle zum Konfigurieren allgemeiner Anwendungsfälle aufgeführt.

  • Beschränken 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 erhalten wurden, wenn die Anfrage das Tariflimit ü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' add responder policy rateLimitCookiePolicy “http.req.url.contains(\www.yourcompany.com) && sys.check_limit(\”myLimitIdentifier\”)” sendRedirectUrl 
  • Beschränken Sie die Anzahl der HTTP-Anfragen, die vom selben Host (mit einer Subnetzmaske von 32) eingehen und dieselbe Ziel-IP-Adresse haben.

    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