Guía de implementación: aprenda a configurar Citrix Gateway para usar nFactor para autenticarse en un servidor RADIUS para MFA

Información general

Cómo configurar Citrix Gateway para usar nFactor para autenticarse en un servidor RADIUS para la autenticación multifactor (MFA).

En este artículo se explica cómo configurar Citrix ADC Gateway para usar la autenticación nFactor para la autenticación multifactor basada en LDAP y RADIUS y las técnicas generales de solución de problemas.

En este artículo, asumimos que su Citrix ADC tiene una implementación de Citrix Gateway y servidores RADIUS y LDAP.

En este artículo también se recomienda conectarse a los servidores RADIUS y LDAP mediante servidores virtuales de equilibrio de carga local, y se supone que los equilibradores de carga ya se han creado. Puede obtener más información sobre la creación de servidores virtuales de equilibrio de carga aquí y sobre cómo configurar la persistencia de RADIUS en un equilibrador de carga aquí.

Descripción general de la comunicación

El flujo de comunicación RADIUS comienza con un paquete de solicitud de acceso del cliente, en este caso el Citrix ADC. El servidor RADIUS valida el cliente y autentica las credenciales recibidas en Access-Request. Después de la validación, el servidor RADIUS responde con una opción de Aceptación de Acceso, Rechazo o Desafío en la que se solicitan más detalles al usuario.

RADIUS_communication_image

Los servidores RADIUS tienen una lista de clientes válidos y un secreto compartido para cada uno. Un servidor RADIUS normalmente ignora las solicitudes de clientes no válidos, pero algunas implementaciones devuelven errores de autenticación. El secreto compartido cifra el componente de contraseña de las credenciales. Cuando el secreto compartido es incorrecto, el servidor siempre rechaza las contraseñas porque no se descifran con el valor correcto.

De forma predeterminada, Citrix ADC envía solicitudes de autenticación RADIUS desde el NSIP del nodo de alta disponibilidad activo y se dirige a un único servidor RADIUS.

RADIUS_NSIP_source_image

En lugar de definir los NSIP de ambos ADC de un par de alta disponibilidad como clientes en los servidores RADIUS, Citrix recomienda que el ADC envíe solicitudes de autenticación a través de un servidor virtual de equilibrio de carga local. El servidor virtual de equilibrio de carga también agrega resistencia a la configuración.

Cuando Citrix ADC envía solicitudes RADIUS a través de un servidor virtual de equilibrio de carga local, las solicitudes salen del ADC a través de un SNIP. Los SNIP son direcciones IP flotantes y solo están disponibles en el nodo de alta disponibilidad principal actual.

Cuando se usa un servidor virtual de equilibrio de carga (LB), los NSIP de los nodos de alta disponibilidad principal y secundario realizan una solicitud a una VIP local. El LB VIP envía al servidor RADIUS mediante el SNIP del par HA.

RADIUS_NSIP_to_VIP_to_SNIP_image

Herramientas de solución de problemas

Si bien la mayoría de las implementaciones de RADIUS se realizan sin ella, puede resultar útil comprender las herramientas de solución de problemas más comunes.

El proceso de depuración de autenticación “/tmp/aaad.debug” en el Citrix ADC

Puede ver los eventos de autenticación en Citrix ADC ingresando al shell de BSH con “shell” y luego viendo el proceso aaad.debug con “cat /tmp/aaad.debug”.

Puede encontrar más información sobre “aaad.debug” aquí: https://support.citrix.com/article/CTX114999

Trading NTRad

NTRadPing es una herramienta de pruebas RADIUS de terceros que puede utilizar para generar solicitudes de autenticación RADIUS y ver la respuesta. Puede descargar NTRadPing aquí:

Con NTRadping, puede enviar solicitudes de autenticación RADIUS directamente desde su cliente al servidor RADIUS y asegurarse de que esté en pleno funcionamiento. En el servidor RADIUS, tendrá que definir la dirección IP de su cliente y un secreto compartido. También necesitará reglas de firewall para permitir que el cliente se comunique con el servidor RADIUS.

También puede usar NTRadPing para enviar solicitudes de autenticación al servidor virtual de LB en el ADC, que las retransmite al servidor RADIUS. Como estas solicitudes provienen del ADC, necesitarás el mismo secreto compartido en NTRadPing que el ADC. También necesitará reglas de firewall para permitir que el cliente se comunique con el servidor virtual RADIUS LB del ADC.

Al probar cada componente por separado, la prueba aislará dónde se produce una falla. Supongamos que puede enviar solicitudes satisfactorias manualmente mediante el RADIUS del ADC. En ese caso, sabe que el problema está en algo anterior, como la definición del servidor RADIUS en su ADC, y puede concentrar sus esfuerzos.

RADIUS_test_locations_image

NTRadPing consta de dos archivos que se extraen en el mismo directorio desde su zip comprimido. En el lanzamiento, NTRadPing solicita:

  • El servidor y el puerto RADIUS
  • El secreto de RADIUS
  • Un nombre de usuario y una contraseña
  • El tipo de solicitud de autenticación

RADIUS_ntradping_image

Según la prueba que realice, utilizará la dirección IP del servidor RADIUS o la del servidor virtual LB del ADC como destino. Por lo general, en el puerto 1812.

Establezca un secreto RADIUS para su cliente si va a enviar consultas directamente. Si envía consultas a través del servidor virtual LB del ADC para imitar las solicitudes de autenticación de Gateway, utilice el mismo secreto compartido que ha configurado para usar el ADC. Los campos de nombre de usuario y contraseña contienen las credenciales que espera que el ADC envíe al servidor RADIUS en su nombre. Por lo general, el campo “contraseña” contiene el valor del token de MFA del usuario.

Al hacer clic en “Enviar”, NTRadPing envía una solicitud de autenticación desde su equipo al destino especificado y muestra la respuesta (normalmente, Access-Accept o Access-Reject).

RADIUS_ntradping_accept_image

WireShark

Puede examinar la solicitud y la respuesta RADIUS dentro de WireShark si realiza un seguimiento de paquetes en Citrix ADC durante el proceso de autenticación.

WireShark es el analizador de protocolos de red más importante y ampliamente utilizado del mundo. WireShark es gratuito y está disponible sin aquí.

Puede encontrar los filtros RADIUS de WireShark aquí.

Puede encontrar los pasos para realizar un seguimiento de paquetes en un Citrix ADC aquí.

En WireShark, verá un paquete de solicitud de acceso seguido de una respuesta de aceptación de acceso, rechazo de acceso o desafío de acceso. Las respuestas faltantes a menudo indican un problema de comunicación, como la ausencia de reglas de firewall o que el servidor RADIUS no tiene una definición para el cliente.

Instrucciones de GUI

Suponiendo que la configuración de los servidores RADIUS ya esté completa, siga los siguientes pasos para la autenticación de MFA con Citrix Gateway:

Habilitar la función Autenticación, Autorización y Auditoría (AAA)

  1. Si la función AAA aún no está habilitada, vaya a Seguridad > AAA — Tráfico de aplicacionesy haga clic con el botón derecho para habilitarla.
    Enable_AAA_image

Agregar servidores de autenticación

  1. Seleccione Seguridad > AAA: tráfico de aplicaciones, directivas, autenticación, políticas base, RADIUS.
    Navigate_to_RADIUS_server_image

  2. Seleccione la pestaña Servidores y, a continuación, haga clic en “Agregar”.
    Navigate_to_radius_server_image

  3. Rellene los detalles de su servidor RADIUS

    Citrix recomienda que no apunte a un servidor RADIUS individual, sino que apunte a su servidor virtual de equilibrio de carga. Por lo tanto, utilice el VIP de RADIUS LB como IP del servidor en esta página. La clave secreta debe coincidir con el valor del servidor RADIUS para el SNIP del ADC. Enable_aaa_image

  4. Seleccione Seguridad > AAA: tráfico de aplicaciones, directivas, autenticación, políticas base, LDAP. Luego, seleccione la pestaña “Servidores” y haga clic en “Agregar”.
    LDAP_server_image

  5. Rellenar los detalles de su destino LDAP
    Al igual que RADIUS, Citrix recomienda utilizar un servidor virtual de equilibrio de carga (LB) local como destino. Por lo tanto, utilice la VIP de su servidor virtual LDAP LB como la IP del servidor en esta página. RADIUS_server_details1_image RADIUS_server_details2_image

Agregar políticas de autenticación avanzadas

  1. Seleccione Seguridad > AAA: tráfico de aplicaciones, directivas, autenticación, políticas avanzadas, política. Luego, haga clic en “Agregar”.
    RADIUS_select_advanced_image

  2. Complete los detalles de la política como se muestra y, a continuación, haga clic en “Crear”.
    RADIUS_server_details_image

  3. Repita el paso para crear otra política para RADIUS y, a continuación, haga clic en “Crear”.
    LDAP_auth_pol_image

Creación de un servidor virtual AAA

  1. Vaya a Configuración > Seguridad > AAA - Tráfico de aplicaciones > Servidores virtuales.
    RADIUS_auth_pol_image

  2. Haga clic en “Agregar” para crear un servidor virtual de autenticación.
    AAA_servidor virtual_add_image

  3. Introduzca la siguiente información y haga clic en Aceptar.
    • Nombre: nombre del servidor virtual AAA.
    • Tipo de dirección IP: cambie el tipo de dirección IP a No direccionable, ya que este servidor virtual solo se usa para Citrix Gateway.
      AAA_server_details_image virtual
  4. En Certificado, seleccione “Sin certificado de servidor”.
    AAA_servidor virtual_cert1_image

  5. Haga clicen “Haga clic para seleccionar” para seleccionar el certificado de servidor
    AAA_Cert_Binding_Image

  6. Haga clic en el botón de opción junto a un certificado para el servidor virtual AAA y, a continuación, haga clic en “Seleccionar”. El certificado elegido no importa porque no se puede acceder directamente a este servidor.
    AAA_cert_binding2_image

  7. Haga clic en “Bind”.
    AAA_cert_binding3_image

  8. Haga clic en “Continuar” para cerrar la sección Certificado.
    AAA_cert_binding4_image

  9. Haga clic en “Sin política de autenticación” dentro de “Directivas de autenticación avanzadas”.
    AAA_server_auth_image virtual

  10. Haga clicen “Haga clic para seleccionar” en el campo de “Seleccionar política”.
    AAA_servidor virtual_auth2_image

  11. Seleccione la política “LDAP_pol” y haga clic en “Seleccionar”.
    AAA_servidor virtual_auth3_image

  12. Haga clicen “Haga clic para seleccionar” en el campo de “Seleccionar factor siguiente”.
    AAA_servidor virtual_auth4_image

  13. Haga clic en “Agregar” dentro de “Etiquetas de directiva de autenticación”.
    AAA_servidor virtual_auth5_image

  14. Introduzca un nombre para la etiqueta de directiva que el ADC utiliza para activar la autenticación RADIUS y haga clic en “Continuar”.
    AAA_servidor virtual_create_pol_image

  15. Haga clicen “Haga clic para seleccionar” en el campo de “Seleccionar política”.
    AAA_servidor virtual_pols1_image

  16. Seleccione la política “RADIUS_POL” y haga clic en “Seleccionar”.
    AAA_servidor virtual_pols2_image

  17. Haga clic en “Vincular” en la parte inferior de la pantalla “Crear etiqueta de directiva de autenticación”.
    AAA_servidor virtual_create_pol_image

  18. Haga clic en “Listo” en la parte inferior de la pantalla “Etiqueta de directiva de autenticación”.
    AAA_servidor virtual_radius_pol1_image

  19. Haga clic en “Seleccionar”.
    AAA_servidor virtual_radius_pol2_image

  20. Haga clic en “Bind” en la parte inferior de la pantalla “Policy Binding”.
    AAA_imagen de servidor virtual

Aplicar un esquema de inicio de sesión que presente al usuario un campo de nombre de usuario, contraseña y código de acceso

  1. Haga clic en “Esquemas de inicio de sesión” en el menú “Configuración avanzada” del lado derecho.
    AAA_servidor virtual_cert6_image

  2. Haga clic en “Sin esquema de inicio de sesión” para mostrar una ventana para seleccionar el esquema.
    AAA_servidor virtual_loginschema_image

  3. Haga clicen “Haga clic para seleccionar” en “Seleccionar política”.
    AAA_servidor virtual_loginschema_binding_image

  4. Seleccione la política integrada “lschema_dual_factor_builtin” y haga clic en “Seleccionar”.
    AAA_servidor virtual_loginschema_binding2_image

  5. Haga clic en “Enlazar” y seleccione “Listo” para salir del menú de configuración del servidor virtual AAA.
    AAA_servidor virtual_loginschema_binding3_image

Nota: La política “lschema_dual_factor_builtin” se agregó en el firmware de ADC 13.0. Si utilizas una versión anterior, necesitas crear una política. Puede encontrar instrucciones que explican cómo crear una política aquí.

Configure el servidor virtual Gateway para usar el nuevo servidor AAA

  1. Seleccione “Citrix Gateway, Virtual Servers”, luego seleccione el servidor virtual Gateway y haga clic en”Modificar”.
    Imagen de servidor virtual de puerta de enlace

  2. Seleccione “Perfil de autenticación” en el menú “Configuración avanzada” del lado derecho.
    Gateway_servidor virtual1_image

  3. Seleccione “Agregar” en la sección “Perfil de autenticación”.
    Gateway_servidor virtual2_image

  4. Introduzca un nombre para el nuevo perfil de autenticación como se muestra y, a continuación, haga clicen “Haga clic para seleccionar” en “Servidor virtual de autenticación”.
    Gateway_servidor virtual3_image

  5. Seleccione el servidor virtual AAA que creamos anteriormente y haga clic en “Seleccionar”.
    Gateway_servidor virtual 4_image

  6. Haga clic en “Crear”.
    Gateway_servidor virtual 5_image

  7. Haga clic en “Aceptar”.
    Gateway_servidor virtual 6_image

  8. Haga clic en “Listo”.
    Gateway_servidor virtual 7_image

Realizar pruebas

Ahora está listo para usar la autenticación multifactor en su servidor virtual de Citrix Gateway. Gateway_servidor virtual 8_image

Si se encuentra con algún problema de autenticación, consulte la sección de solución de problemas de este documento.

Instrucciones de CLI

Si prefiere configurar el ADC mediante la CLI, el siguiente script de configuración completa todos los pasos necesarios.

# 1. Enable AAA
en ns feature aaa

# 2. Creating LDAP Server
add authentication ldapAction LDAP_for_Gateway -serverIP LDAP_LB_IP -serverPort 636 -ldapBase "DC=citrix,DC=lab" -ldapBindDn readonly@citrix.lab -ldapBindDnPassword PASSWORD -ldapLoginName sAMAccountName -groupAttrName memberOf

# 3. Creating LDAP Policy
add authentication Policy LDAP_Pol -rule true -action LDAP_for_Gateway

# 4. Creating RADIUS Server
add authentication radiusAction RADIUS_Server -serverIP 192.168.1.100 -serverPort 1812 -radKey sharedsecret

# 5. Create RADIUS Policy
add authentication Policy RADIUS_Pol -rule true -action RADIUS_Server

# 6. Create a PolicyLabel triggering the RADIUS Policy
add authentication policylabel RADIUS_PolicyLabel -loginSchema LSCHEMA_INT
bind authentication policylabel RADIUS_PolicyLabel -policyName RADIUS_Pol -priority 100

# 7. Create the AAA virtual server
add authentication vserver nFactorAuthvServer SSL 0.0.0.0

# 8. Bind an SSL certificate to the AAA virtual server
bind ssl vserver nFactorAuthvServer -certkeyName "Example Cert"

# 9. Bind the LDAP policy and RADIUS PolicyLabel to the AAA virtual server
bind authentication vserver nFactorAuthvServer -policy LDAP_Pol -priority 100 -nextFactor RADIUS_PolicyLabel -gotoPriorityExpression NEXT

# 10. Bind the builtin Login Schema for dual factor authentication to the AAA virtual server
bind authentication vserver nFactorAuthvServer -policy lschema_dual_factor_builtin -priority 100 -gotoPriorityExpression END

# 11. Create an Authentication Profile attached to the AAA virtual server
add authentication authnProfile MFA_Authentication_Profile -authnVsName nFactorAuthvServer

# 12. Configure your existing Gateway virtual server to use the Authentication Profile
set vpn vserver "Steven Demo Gateway" -authnprofile "MFA_Authentication_Profile"
<!--NeedCopy-->