ADC

Standortdetails von der Benutzer-IP-Adresse mit der Geolocation-Datenbank abrufen

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

Die Citrix ADC Appliance kann Details zum Benutzerstandort wie Kontinent, County und Stadt abrufen. Für jede öffentliche IP-Adresse aus einer Geostandortdatenbank. Es wird unter Verwendung der erweiterten Richtlinieninfrastruktur durchgeführt. 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 nach der Benutzer-IP-Adresse aus der Client-Anfrage und ruft die Geo-Standortdetails ab. Zu den Details gehören Kontinent, Land, Region, Stadt, ISP, Organisation oder benutzerdefinierte Details aus einer Geolocation-Datenbank.
  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 Header mit den Geo-Standortdetails 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-Anfrage aus und ermöglicht auf der Grundlage der Richtlinienbewertung den Zugriff auf die Benutzer oder leitet den Benutzer auf eine Fehlerseite um. Es gibt an, 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 Geolokalisierungsdatenbank finden Sie unter Hinzufügen einer Standortdatei zum Erstellen einer statischen Näherungsdatenbank .

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 Asien.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 Geolocation-Funktionen mit einer erweiterten Richtlinieninfrastruktur zu konfigurieren, müssen Sie die Funktionen für Lastenausgleich, Neuschreiben und Responder-Funktion aktivieren und dann die folgenden Anwendungsfälle abschließen.

Lastenausgleich, Responder, Rewrite Features aktivieren

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

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

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.

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 Umschreiben von Aktionen und zum Umschreiben der Richtlinienkonfiguration finden Sie unter Responder.

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>]
<!--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 Auditmeldungsaktionen 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"
<!--NeedCopy-->

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>]
<!--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 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>
<!--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 für das Back-End

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

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

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

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>]
<!--NeedCopy-->

Beispiel:

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

Richtlinie zum Umschreiben hinzufügen

Fügen Sie eine Richtlinie zum Umschreiben hinzu, um zu bewerten, ob die Umschreibungsaktion ausgeführt werden muss. 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>]
<!--NeedCopy-->

Beispiel:

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

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

Beispiel:

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

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 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-->
Standortdetails von der Benutzer-IP-Adresse mit der Geolocation-Datenbank abrufen