Citrix ADC

Abrufen von Standortdetails von der Benutzer-IP-Adresse mithilfe der Geolocation-Datenbank

Hinweis Diese Funktion ist ab Citrix ADC Version 12.1 Build 50.x und höher verfügbar.

Die Citrix ADC-Appliance kann Benutzerstandortdetails wie Kontinent, Landkreis und Stadt abrufen. Für jede öffentliche IP-Adresse aus einer Geo-Standortdatenbank. Sie wird mithilfe der erweiterten Richtlinieninfrastruktur durchgeführt. Die abgerufenen Standortdetails werden dann in einer Rewrite-Aktion oder einer Responder Action zur Durchführung der folgenden Anwendungsfälle verwendet.

  • Fügen Sie einen HTTP-Header mit Benutzerstandortdetails (wie Land, Stadt) ein, wenn Sie die Clientanfrage an den Back-End-Server senden.
  • Fügen Sie der Antwort auf der HTML-Seite einen Ländernamen für einen ungültigen Benutzer hinzu.

Die Appliance kann die Standortdetails auch mithilfe des Überwachungsprotokollierungsmechanismus protokollieren.

Abrufen von Benutzerstandortdetails mithilfe von Geolokationsfunktionen

Die Komponenten interagieren wie folgt:

  1. Der Benutzer sendet eine Kundenanfrage von einem bestimmten geografischen Standort aus.
  2. Die Citrix ADC-Appliance sucht aus der Clientanforderung nach der Benutzer-IP-Adresse und ruft die Details des Geo-Standorts ab. Zu den Details gehören Kontinent, Land, Region, Stadt, ISP, Organisation oder benutzerdefinierte Details aus einer Geolokalisierungsdatenbank.
  3. Sobald die Standortdetails abgerufen wurden, verwendet die Appliance entweder eine Responder Policy oder eine Rewriterichtlinie, um die Anforderung zu bewerten.
  4. In einer Rewriterichtlinie fügt die Appliance einen Header mit den Details des Geo-Standorts hinzu und sendet ihn an den Back-End-Server. Fügen Sie beispielsweise einen benutzerdefinierten HTTP-Header mit Länderinformationen ein.
  5. In einer Responder Policy wertet die Appliance die HTTP-Anforderung aus und ermöglicht basierend auf der Richtlinienbewertung den Zugriff auf die Benutzer oder leitet den Benutzer auf eine Fehlerseite um. Darin heißt es, dass die Region, von der aus sie auf die Anwendung zugreifen, keinen Zugriff hat.

Einrichten einer Geolocation-Datenbank

Als Voraussetzung benötigen Sie eine Geolokationsdatenbank, um auf der Citrix ADC-Appliance ausgeführt werden zu können. Die Geolocation-Datenbankdateien sind mit Citrix ADC-Firmware verfügbar. Um die Datenbankdateien von einem Anbieter herunterzuladen, konvertieren Sie sie in das Citrix ADC Format und importieren Sie sie in Ihre Appliance. Weitere Informationen zur Geolokalisierungsdatenbank finden Sie unter Hinzufügen einer Standortdatei zum Erstellen einer statischen Näherungsdatenbank .

Geolocation-Funktionen

Die folgende Tabelle enthält eine Liste von Geolokationsfunktionen, die Standortdetails einer öffentlichen IP-Adresse abrufen. Diese Funktionen können in Rewrite- oder Responder-Richtlinien verwendet werden.

Geolocation-Funktion Beispiel
CLIENT.IP.SRC.LOCATION Asien.In.Karnataka.Bangalore
CLIENT.IP.SRC.LOCATION.GET (1).LOCATION_LONG Indien
CLIENT.IP.SRC.LOCATION(3) Asia.In.Karnataka
CLIENT.IP.SRC.LAT_LONG 12,77
CLIENT.IPV6.SRC.LOCATION Nordamerika.us.California.Santa Clara.Verizon.Citrix
CLIENT.IPV6.SRC.LOCATION(3) North America.us.Kalifornien
CLIENT.IPV6.SRC.LOCATION.GET(1).LOCATION_LONG Vereinigte Staaten
CLIENT.IPV6.SRC.LOCATION.GET(3) Kalifornien
CLIENT.IPV6.SRC.LAT_LONG 36, -119

Konfigurieren von Geolocation-Funktionen

Um Geolokationsfunktionen mithilfe einer erweiterten Richtlinieninfrastruktur zu konfigurieren, müssen Sie die Funktionen für Lastenausgleich, Rewrite und Responder aktivieren und dann die folgenden Anwendungsfälle abschließen.

Aktivieren Sie Load Balancing, Responder, Rewrite Funktionen

Wenn Sie möchten, dass die Citrix ADC-Appliance den Benutzerzugriff von einem bestimmten Geo-Standort aus autorisiert, müssen Sie die Funktionen für Lastenausgleich, Rewrite und Responder aktivieren.

enable ns feature loadbalancing rewrite responder
<!--NeedCopy-->

Anwendungsfall 1: Konfigurieren der Geolokationsfunktion zum Umleiten ungültiger Benutzer außerhalb des Geo-Standorts

Wenn ein Benutzer aus Indien Zugriff auf eine Webseite anfordert, blockieren Sie die Anfrage und antworten Sie mit einer HTML-Seite mit Ländernamen.

Die folgenden Schritte helfen Ihnen, die Konfiguration dieses Anwendungsfalls abzuschließen.

  • Responderaktion hinzufügen
  • Responder-Richtlinie hinzufügen
  • Bind-Responderrichtlinie an den Lastausgleichsserver

Weitere Informationen zu den GUI-Prozeduren zum Rewrite von Aktionen und zum Rewrite der Richtlinienkonfiguration finden Sie unter Responder.

Responderaktion hinzufügen

Fügen Sie eine Responder Action hinzu, um mit einer HTML-Seite mit dem Ländernamen zu antworten. Geben Sie an der Eingabeaufforderung ein:

add responder action <name> <type> (<target> | <htmlpage>) [-comment <string>] [-responseStatusCode <positive_integer>][-reasonPhrase <string>]
<!--NeedCopy-->

Beispiel:

add responder action responder_act respondwith "HTTP.REQ.VERSION + " 304 Requested Page not allowed in your country - " + CLIENT.IP.SRC.LOCATION.GET (1).LOCATION_LONG + "\r\n""
<!--NeedCopy-->

Aktion für Audit-Protokollmeldungen hinzufügen

Sie können Überwachungsnachrichtenaktionen so konfigurieren, dass Nachrichten auf verschiedenen Protokollebenen protokolliert werden, entweder nur im Syslog-Format oder sowohl in Syslog als auch in newnslog Formaten. Auditmeldungsaktionen verwenden Ausdrücke, um das Format der Auditmeldungen anzugeben. So erstellen Sie eine Aktion für Überwachungsnachrichten über die Befehlszeile

Geben Sie an der Eingabeaufforderung ein: add audit messageaction <name> <logLevel> <stringBuilderExpr> [-logtoNewnslog (YES|NO)]

Beispiel:

add audit messageaction msg1 DEBUG ""Request Location: "+CLIENT.IP.SRC.LOCATION"
<!--NeedCopy-->

Responder-Richtlinie hinzufügen

Fügen Sie eine Responder Policy hinzu, um Anfragen aus Indien zu identifizieren, und verknüpfen Sie die Aktion des Responders mit dieser Richtlinie. Geben Sie an der Eingabeaufforderung ein:

add responder policy <name> <rule> <action> [<undefAction>] [-comment <string>] [-logAction <string>] [-appflowAction <string>]
<!--NeedCopy-->

Beispiel:

add responder policy responder_pol CLIENT.IP.SRC.MATCHES_LOCATION("Asia.India.\*.\*.\*.\*") responder_act -logaction msg1
<!--NeedCopy-->

Bind-Responderrichtlinie an den Lastausgleichsserver

Binden Sie die Responder Policy an einen virtuellen Lastausgleichsserver vom Typ HTTP/SSL. Geben Sie an der Eingabeaufforderung ein:

bind lb vserver <vserver name> -policyName < policy_name >  -priority <> -type <L7InlineREQUEST | L4Inline-REQUEST>
<!--NeedCopy-->

Beispiel:

bind lb vserver http_vserver -policyName responder_pol -priority 100 -type REQUEST
<!--NeedCopy-->

Anwendungsfall 2: Konfigurieren der Geolocation-Funktion zum Einfügen eines neuen HTTP-Headers mit Standortdetails, damit das Back-End antworten kann

Betrachten Sie ein Szenario, in dem eine Citrix ADC-Appliance den Benutzerspeicherort in den HTTP-Header einer an den Anwendungsserver gesendeten Anforderung einfügen muss, damit der Server die Informationen für eine Geschäftslogik verwenden kann. Die folgenden Schritte helfen Ihnen, die Konfiguration dieses Anwendungsfalls abzuschließen.

  • Neuschreibaktion hinzufügen
  • Hinzufügen einer Rewriterichtlinie
  • Rewriterichtlinie an Lastenausgleich binden

Weitere Informationen zu den GUI-Prozeduren zum Rewrite von Aktionen und zum Rewrite der Richtlinienkonfiguration finden Sie unter Thema Responder .

Neuschreibaktion hinzufügen

Fügen Sie eine Rewriteaktion hinzu, um einen benutzerdefinierten HTTP-Header mit Details zur Benutzergeolokalisierung in die Anforderung einzufügen und Back-End-Server zu senden. Geben Sie an der Eingabeaufforderung ein:

add rewrite action <name> <type> <target> [<stringBuilderExpr>] [-search <expression>] [-refineSearch <string>][-comment <string>]
<!--NeedCopy-->

Beispiel:

add rewrite action rewrite_act insert_http_header "User_location" CLIENT.IP.SRC.LOCATION
<!--NeedCopy-->

Hinzufügen einer Rewriterichtlinie

Fügen Sie eine Rewriterichtlinie hinzu, um zu prüfen, ob die Rewrite-Aktion ausgeführt werden muss. In diesem Fall müssen alle Anfragen, die an den Anwendungsserver gehen, einen benutzerdefinierten HTTP-Header haben, damit die Regel “wahr” sein kann. Geben Sie an der Eingabeaufforderung ein:

add rewrite policy <name> <rule> <action> [<undefAction>] [-comment <string>] [-logAction <string>]
<!--NeedCopy-->

Beispiel:

add rewrite policy rewrite_pol true rewrite_act -logaction log_act
<!--NeedCopy-->

Rewriterichtlinie an Lastenausgleich binden

Binden Sie die Rewriterichtlinie an den erforderlichen virtuellen Lastausgleichsserver vom Typ HTTP/SSL. Geben Sie an der Eingabeaufforderung ein:

bind lb vserver <vserver name> -policyName < policy_name >  -priority <> -type <L7InlineREQUEST | L4Inline-REQUEST>
<!--NeedCopy-->

Beispiel:

bind lb vserver http_vserver -policyName rewrite_pol -priority 100 -type REQUEST
<!--NeedCopy-->

Syslog-Unterstützung für die Protokollierung von Geolokationsdetails (optional)

Wenn Sie es vorziehen, die Geolokationsdetails des Benutzers zu protokollieren, müssen Sie die SYSLOG-Aktion angeben, die ausgeführt werden soll, wenn eine Anforderung mit der Richtlinie übereinstimmt. Die Appliance speichert die Details als Protokollmeldung in der Datei ns.log. Weitere Informationen zur SYSLOG- und NSLOG-Überwachung finden Sie unter Thema Audit-Protokollierung .

Ausgabe für Benutzergeolocation-Details

Die folgende Ausgabe wird in der Appliance mit dem SYSLOG oder der newnslog Aktion protokolliert, wenn Sie versuchen, vom Standort in Bangalore aus auf eine Anwendung zuzugreifen und wenn die Appliance die Geolokalisierungsfunktion “CLIENT.IP.SRC.LOCATION” verwendet.

Asia.India.Karnataka.Banglore
<!--NeedCopy-->

Beispielausgabeprotokoll:

07/23/2018:19:03:54 GMT  Debug 0-PPE-0 : default REWRITE Message 22 0 :  "Request Location: asia.in.karnataka.bangalore.\*.\*"
07/23/2018:19:23:55 GMT  Debug 0-PPE-0 : default RESPONDER Message 32 0
Done
<!--NeedCopy-->
Abrufen von Standortdetails von der Benutzer-IP-Adresse mithilfe der Geolocation-Datenbank