Rufen Sie Standortdetails von der Benutzer-IP-Adresse mithilfe der Geolocation-Datenbank ab

Hinweis: Diese Funktion ist ab Citrix ADC Version 12.1 Build 50.x verfügbar.

Die Citrix ADC Appliance kann nun Details zum Benutzerstandort wie Kontinent, Bezirk und Stadt abrufen. Für jede öffentliche IP-Adresse aus einer Geostandortdatenbank. Dies erfolgt über die erweiterte Richtlinieninfrastruktur. Die abgerufenen Standortdetails werden dann in einer Umschreibaktion oder einer Responder-Aktion zum Ausführen der folgenden Anwendungsfälle verwendet.

  • Fügen Sie beim Senden der Clientanforderung an den Back-End-Server einen HTTP-Header mit Benutzerstandortdetails ein (z. B. Land, Stadt)
  • Fügen Sie Ländernamen in der HTML-Seitenantwort für einen ungültigen Benutzer hinzu.

Die Appliance kann die Standortdetails auch mit dem Überwachungsprotokollierungsmechanismus protokollieren.

Abrufen von Benutzerstandortdetails mithilfe von Geolocation-Funktionen

Die Komponenten interagieren wie folgt:

  1. Der Benutzer sendet eine Clientanforderung von einem bestimmten geografischen Standort aus.
  2. Die Citrix ADC Appliance sucht die Benutzer-IP-Adresse aus der Clientanforderung und ruft die Geostandortdetails (z. B. Kontinent, Land, Region, Stadt, ISP, Organisation oder benutzerdefinierte Details) aus einer Geolocation-Datenbank ab.
  3. Sobald die Standortdetails abgerufen wurden, verwendet die Appliance entweder eine Responderrichtlinie oder eine Rewrite-Richtlinie, um die Anforderung auszuwerten.
  4. In einer Rewrite-Richtlinie fügt die Appliance einen neuen Header mit den Geostandortdetails 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-Richtlinie wertet die Appliance die HTTP-Anforderung aus, und basierend auf der Richtlinienbewertung ermöglicht die Appliance den Benutzern Zugriff oder leitet den Benutzer auf eine Fehlerseite um, auf der angegeben wird, dass die Region, von der aus sie auf die Anwendung zugreifen, keinen Zugriff hat

Geolocation-Datenbank einrichten

Als Voraussetzung benötigen Sie eine Geolocation-Datenbank, um auf der Citrix ADC Appliance ausgeführt werden zu können. Die Geolocation-Datenbankdateien sind mit der 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 Geolocation-Datenbank finden Sie unterHinzufügen einer Standortdatei zum Erstellen einer statischen NäherungsdatenbankThema.

Geolocation-Funktionen

Die folgende Tabelle enthält eine Liste der Geolocation-Funktionen, 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 Asia.In.Karnataka.Bangalore
CLIENT.IP.SRC.LOCATION.GET (1) .LOCATION_LONG Indien
CLIENT.IP.SRC.LOCATION (3) Asien. Karnataka
CLIENT.IP.SRC.LAT_LONG 12,77
CLIENT.IPV6.SRC.LOCATION Nordamerika.us.California.Santa Clara.Verizon.Citrix
CLIENT.IPV6.SRC.LOCATION(3) Nordamerika.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 der erweiterten Richtlinieninfrastruktur zu konfigurieren, müssen Sie die Lastausgleichs-, Umschreib- und Antwortfunktionen aktivieren und anschließend die folgenden Anwendungsfälle ausführen.

Lastenausgleich, Responder, Rewrite Features aktivieren

Wenn Sie möchten, dass die Citrix ADC Appliance den Benutzerzugriff von einem bestimmten geografischen Standort aus autorisieren soll, müssen Sie die Funktionen für Lastausgleich, Rewrite und Responder aktivieren.

enable ns feature loadbalancing rewrite responder

Anwendungsfall 1: Konfigurieren der Geolocation-Funktion zum Umleiten ungültiger Benutzer außerhalb des Geo-Sitess

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

Befolgen Sie die unten angegebenen Schritte, um die Konfiguration für diesen Anwendungsfall abzuschließen.

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

Weitere Informationen zu den GUI-Prozeduren für Rewrite-Aktion und Umschreiben der Richtlinienkonfiguration finden Sie unterResponderdem Thema

Responderaktion hinzufügen

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

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

Beispiel:

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

Aktion Auditlog hinzufügen

Sie können Überwachungsnachrichten-Aktionen konfigurieren, um Nachrichten auf verschiedenen Protokollebenen zu protokollieren, entweder nur im Syslog-Format oder in beiden Formaten syslog und neuenslog. Überwachungsnachrichten-Aktionen verwenden Ausdrücke, um das Format der Überwachungsnachrichten anzugeben. So erstellen Sie eine Überwachungsnachrichtenaktion mit der Befehlszeilenschnittstelle

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

Beispiel:

add audit messageaction msg1 DEBUG ""Request Location: "+CLIENT.IP.SRC.LOCATION"

Responder-Richtlinie hinzufügen

Fügen Sie eine Responderrichtlinie hinzu, um Anfragen aus Indien zu identifizieren und die Responderaktion dieser Richtlinie zuzuordnen. Geben Sie an der Eingabeaufforderung Folgendes ein:

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

Beispiel:

add responder policy responder_pol CLIENT.IP.SRC.MATCHES_LOCATION("Asia.India.\*.\*.\*.\*") responder_act -logaction  log_act

Bind-Responderrichtlinie an den Lastausgleichsserver

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

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

Beispiel:

bind lb vserver http_vserver -policyName responder_pol -priority 100 -type REQUEST

Anwendungsfall 2: Konfigurieren der Geolocation-Funktion zum Einfügen eines neuen HTTP-Headers mit Standortdetails für das Back-End

Betrachten Sie ein Szenario, in dem eine Citrix ADC Appliance den Benutzerspeicherort in HTTP-Header einer Anforderung einfügen muss, die an den Anwendungsserver gesendet wird, damit der Server die Informationen für einige Geschäftslogik verwenden kann. Führen Sie die unten angegebenen Schritte aus, um die Konfiguration für diesen Anwendungsfall abzuschließen:

  • Neuschreibaktion hinzufügen
  • Richtlinie zum Umschreiben hinzufügen
  • Umschreibrichtlinie an Lastenausgleich binden

Weitere Informationen zu den GUI-Prozeduren für Umschreiben Aktion und Umschreiben der Richtlinienkonfiguration finden Sie unterResponderThema.

Neuschreibaktion hinzufügen

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

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

Beispiel:

add rewrite action rewrite_act insert_http_header "User_location" CLIENT.IP.SRC.LOCATION

Richtlinie zum Umschreiben hinzufügen

Fügen Sie eine Rewrite-Richtlinie hinzu, um zu bewerten, ob die Rewrite-Aktion ausgeführt werden soll. In diesem Fall müssen alle Anforderungen, die an den Anwendungsserver gehen, über einen benutzerdefinierten HTTP-Header verfügen, damit die Regel true sein kann. Geben Sie an der Eingabeaufforderung Folgendes ein:

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

Beispiel:

add rewrite policy rewrite_pol true rewrite_act -logaction log_act

Umschreibrichtlinie an Lastenausgleich binden

Binden Sie die Rewrite-Richtlinie an den erforderlichen virtuellen Lastenausgleichsserver vom Typ HTTP/SSL. Geben Sie an der Eingabeaufforderung Folgendes ein:

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

Beispiel:

bind lb vserver http_vserver -policyName rewrite_pol -priority 100 -type REQUEST

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

Wenn Sie die Geolocation-Details des Benutzers protokollieren möchten, 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ÜberwachungsprotokollierungThema.

Ausgabe für Benutzergeolocation-Details

Wenn ein Benutzer versucht, von Bangalore-Standort aus auf eine Anwendung zuzugreifen und wenn die Appliance die Geolocation-Funktion CLIENT.IP.SRC.LOCATION verwendet, wird die folgende Ausgabe in der Appliance mit SYSLOG oder neuenslog Aktion protokolliert.

Asia.India.Karnataka.Banglore

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