Citrix ADC

Recuperar detalles de ubicación de la dirección IP del usuario mediante la base de datos de geolocalización

Nota Esta función está disponible en Citrix ADC versión 12.1 compilación 50.x y posteriores.

El dispositivo Citrix ADC puede obtener detalles de ubicación del usuario, como continente, condado y ciudad. Para cualquier dirección IP pública de una base de datos de geolocalización. Se realiza mediante la infraestructura de directivas avanzada. Los detalles de ubicación recuperados se utilizan en una acción de reescritura o en una acción de respuesta para realizar los siguientes casos de uso.

  • Inserte un encabezado HTTP con los detalles de ubicación del usuario (como información de país o ciudad) al enviar la solicitud del cliente al servidor back-end.
  • Agrega el nombre del país en la respuesta de la página HTML de un usuario no válido.

El dispositivo también puede registrar los detalles de ubicación mediante el mecanismo de registro de auditoría.

Obtener detalles de ubicación de usuario mediante funciones de geolocalización

Los componentes interactúan de la siguiente manera:

  1. El usuario envía una solicitud de cliente desde una ubicación geográfica concreta.
  2. El dispositivo Citrix ADC busca la dirección IP del usuario en la solicitud del cliente y recupera los detalles de la ubicación geográfica. Los detalles incluyen detalles del continente, el país, la región, la ciudad, el ISP, la organización o los detalles personalizados de una base de datos de geolocalización.
  3. Una vez recuperados los detalles de la ubicación, el dispositivo utiliza una directiva de respuesta o una directiva de reescritura para evaluar la solicitud.
  4. En una directiva de reescritura, el dispositivo agrega un encabezado con los detalles de ubicación geográfica y lo envía al servidor back-end. Por ejemplo, inserta un encabezado HTTP personalizado con información del país.
  5. En una directiva de respuesta, el dispositivo evalúa la solicitud HTTP y, en función de la evaluación de la directiva, permite el acceso a los usuarios o redirige al usuario a una página de error. Indica que la región desde la que acceden a la aplicación no tiene acceso.

Configuración de base de datos de geolocalización

Como requisito previo, debe tener una base de datos de geolocalización para ejecutarse en el dispositivo Citrix ADC. Los archivos de base de datos de geolocalización están disponibles con el firmware Citrix ADC. Para descargar los archivos de la base de datos de un proveedor, conviértelo al formato Citrix ADC e impórtelo en el dispositivo. Para obtener más información sobre la base de datos de geolocalización, consulte el tema Agregar un archivo de ubicación para crear una base de datos de proximidad estática .

Funciones de geolocalización

En la tabla siguiente se proporciona una lista de funciones de geolocalización que recuperan los detalles de ubicación de cualquier dirección IP pública. Estas funciones se pueden utilizar en directivas de reescritura o de respuesta.

Función de geolocalización Ejemplo
CLIENT.IP.SRC.UBICACIÓN Asia. En Karnataka. Bangalore
CLIENT.IP.SRC.LOCATION.GET (1) .LOCATION_LONG India
CLIENT.IP.SRC.LOCATION (3) Asia. En Karnataka
CLIENT.IP.SRC.LAT_LONG 12,77
CLIENT.IPV6.SRC.LOCATION América del Norte.us.California.Santa Clara.Verizon.Citrix
CLIENT.IPV6.SRC.LOCATION(3) Norteamérica.us.california
CLIENT.IPV6.SRC.LOCATION.GET (1) .LOCATION_LONG Estados Unidos
CLIENT.IPV6.SRC.LOCATION.GET (3) California
CLIENT.IPV6.SRC.LAT_LONG 36, -119

Configuración de funciones de geolocalización

Para configurar las funciones de geolocalización mediante una infraestructura de directivas avanzada, debe habilitar las funciones de equilibrio de carga, reescritura y respuesta y, a continuación, completar los siguientes casos de uso.

Habilitar funciones de equilibrio de carga, respuesta y reescritura

Si quiere que el dispositivo Citrix ADC autorice el acceso de los usuarios desde una ubicación geográfica concreta, debe habilitar las funciones de equilibrio de carga, reescritura y respuesta.

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

Caso de uso 1: Configuración de la función de geolocalización para redirigir a usuarios no válidos fuera de la ubicación geográfica

Cuando un usuario de la India solicita acceso a una página web, bloquea la solicitud y responde con una página HTML con el nombre del país.

Los pasos siguientes le ayudarán a completar la configuración de este caso de uso.

  • Agregar acción de respuesta
  • Agregar directiva de Responder
  • Vincular la directiva de respuesta al servidor de equilibrio de carga

Para obtener más información sobre los procedimientos de GUI para la acción de reescritura y la configuración de la directiva de reescritura, consulte el tema Responder .

Agregar acción de respuesta

Agrega una acción de respuesta para responder con una página HTML con el nombre del país. En el símbolo del sistema, escriba:

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

Ejemplo:

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

Agregar acción de mensaje de registro de auditoría

Puede configurar acciones de mensajes de auditoría para registrar mensajes en varios niveles de registro, ya sea solo en formato syslog o en formato syslog y en newnslog formatos. Las acciones de mensajes de auditoría utilizan expresiones para especificar el formato de los mensajes de auditoría. Para crear una acción de mensaje de auditoría mediante la interfaz de línea de comandos

En el símbolo del sistema, escriba: add audit messageaction <name> <logLevel> <stringBuilderExpr> [-logtoNewnslog (YES|NO)]

Ejemplo:

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

Agregar directiva de Responder

Agregue una directiva de respuesta para identificar las solicitudes procedentes de la India y asociar la acción de respuesta a esta directiva. En el símbolo del sistema, escriba:

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

Ejemplo:

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

Vincular la directiva de respuesta al servidor de equilibrio de carga

Enlazar la directiva de respuesta a un servidor virtual de equilibrio de carga de tipo HTTP/SSL. En el símbolo del sistema, escriba:

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

Ejemplo:

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

Caso de uso 2: Configuración de la función de geolocalización para insertar un nuevo encabezado HTTP con detalles de ubicación para que el back-end responda

Considere un caso en el que un dispositivo Citrix ADC debe insertar la ubicación del usuario en el encabezado HTTP de una solicitud enviada al servidor de aplicaciones para que el servidor pueda utilizar la información para cierta lógica empresarial. Los pasos siguientes le ayudarán a completar la configuración de este caso de uso.

  • Agregar acción de reescritura
  • Agregar directiva de reescritura
  • Vincular la directiva de reescritura al equilibrio de carga

Para obtener más información sobre los procedimientos de la GUI para la acción de reescritura y la configuración de la directiva de reescritura, consulte el tema Responder .

Agregar acción de reescritura

Agregue una acción de reescritura para insertar un encabezado HTTP personalizado con detalles de geolocalización del usuario en la solicitud y enviarla a servidores back-end. En el símbolo del sistema, escriba:

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

Ejemplo:

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

Agregar directiva de reescritura

Agregue una directiva de reescritura para evaluar si se debe ejecutar la acción de reescritura. En este caso, todas las solicitudes que van al servidor de aplicaciones deben tener un encabezado HTTP personalizado, por lo que la regla puede ser “true”. En el símbolo del sistema, escriba:

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

Ejemplo:

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

Vincular la directiva de reescritura al equilibrio de carga

Enlazar la directiva de reescritura al servidor virtual de equilibrio de carga necesario de tipo HTTP/SSL. En el símbolo del sistema, escriba:

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

Ejemplo:

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

Compatibilidad con syslog para registrar detalles de geolocalización (opcional)

Si prefiere registrar los detalles de geolocalización del usuario, debe especificar la acción SYSLOG que se realizará cuando una solicitud coincida con la directiva. El dispositivo almacena los detalles como un mensaje de registro en el archivo ns.log. Para obtener más información sobre las auditorías SYSLOG y NSLOG, consulte el tema Registro de auditoría .

Salida para detalles de geolocalización del usuario

La siguiente salida se registra en el dispositivo mediante SYSLOG o newnslog acción si intenta acceder a una aplicación desde la ubicación de Bangalore y si el dispositivo utiliza la función de geolocalización, “CLIENT.IP.SRC.LOCATION’.

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

Ejemplo de registro de salida:

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-->
Recuperar detalles de ubicación de la dirección IP del usuario mediante la base de datos de geolocalización