Citrix NetScaler Gateway con OTP (One Time Password)

Bueno, hacía tiempo que quería dejaros este post, donde vamos a ver cómo habilitar una de las grandes novedades de Citrix NetScaler 12, que es la posibilidad de utilizar autenticaciones de tipo OTP (One Time Password) o contraseña de un solo uso de forma nativa y sin tener que depender de fabricantes de terceros!

 

 

 

Desde la versión NetScaler 12.0 FR1 y si tenemos la versión Enterprise o Platinum, tendremos totalmente integrada la posibilidad de habilitar y configurar el requerir de un doble factor de autenticación OTP. Podremos hacer que los usuarios con su dispositivo móvil y mediante la app de Google Authenticator tengan que proporcionar para entrar en nuestro portal corporativo a parte de su contraseña una clave aleatoria OTP, y así aseguraremos que entra quien queremos en nuestra empresa y a ningún usuario le han robado su contraseña.

 

En este documento veremos todos los pasos necesarios, crearemos además un vServer para que los usuarios primeramente registren su dispositivo (usarán este Portal cada vez que quieran registrar un nuevo dispositivo). También veremos las configuraciones necesarias para habilitar en nuestro Gateway dicha autenticación OTP.

 

Tendremos en cuenta que actualmente Citrix Receiver no lo soporta, si no que será de uso exclusivo (por ahora) con navegador web, así que el usuario deberá descargarse la app de Google Authenticator (por ejemplo) y registrarse para luego ya poder acceder de forma habitual a su portal de aplicaciones o escritorios, validándose con su contraseña de siempre y el código aleatorio generado que obtenga de la app.

 

Importante, antes de empezar, asegúrate que tienes el servicio de hora NTP configurado. Se da por hecho que ya tienes un NetScaler Gateway configurado correctamente que valida contra tu dominio mediante una política y un servidor LDAP, esto lo usaremos para que los usuarios accedan al portalmanageotpy puedan gestionar su dispositivo.

 

Autenticación LDAP

 

 

DesdeSecurity” > “AAA – Application Traffic” > “Polices” > “Authentication” > “Advanced Policies” > “Actions” > “LDAP” > “Add…”, creamos un nuevo Servidor LDAP. En mi caso le llamare “192.168.1.250_LDAP_OTP_sin_auth”, cumplimentamos los datos de IP y puerto como es habitual, desmarcamosAuthentication”, enAdministrator Bind DNdeberemos incluir una cuenta que tenga privilegios de modificar el atributo de OTP en las cuentas de nuestro Directorio Activo. Añadiremos, (de la derecha) el campoOTP Secret estableceremos cuál será el atributo que usará en las cuentas de usuario para almacenar el secreto OTP (podemos usar por ejemplo userParameters o el que más gusto nos de). Pulsamos enCreatepara crearlo.

 

 

 

Bien, creamos otro Servidor LDAP, en este caso le llamare “192.168.1.250_LDAP_OTP_valida_sin”, será igual que la anterior pero con un cambio en el filtro de búsqueda, añadimos en Search Filter el valor userParameters>=#@ y pulsamos en Create.

 

Vamos aSecurity” > “AAA – Application Traffic” > “Policies” > “Authentication” > “Advanced Policies” > “Policyy pulsamos sobreAddpara crear unas políticas de autenticación.

 

Le indicamos un nombre, en mi caso “192.168.1.250_LDAP_adv”, en Action Type indicamosLDAP”, seleccionamos en Action nuestro Servidor LDAP normal, el que ya teníamos inicialmente en nuestro entorno. En Expression indicamos true & pinchamos en Create!

 

Creamos otra politica nueva, esta se usará para la gestión del OTP, la llamo “192.168.1.250_LDAP_OTP_sin_auth_adv”, en Action Type seleccionamosLDAP”, en Action la asociamos con el servidor LDAP que no tiene auth y tampoco el filtro configurado, que es el primero que hemos creado, en mi caso es “192.168.1.250_LDAP_OTP_sin_auth”. Y en Expression indicamos: HTTP.REQ.COOKIE.VALUE(“NSC_TASS”).EQ(“manageotp”) y pulsamos en Create.

 

 

Y creamos una última politica nueva, se usará para la verificación, yo la llamo “192.168.1.250_LDAP_OTP_valida_sin_auth_adv”, en Action Type seleccionamosLDAP”, en Action le asociaremos el servidor LDAP que no tiene la autenticación habilitada, que sí tiene configurado el secreto OTP y el filtro de búsqueda, en este caso era “192.168.1.250_LDAP_OTP_valida_sin”. En Expression indicamos true y pulsamos en Create.

 

Login Schema,

 

Vamos aSecurity” > “AAA – Application Traffic” > “Login Schema” > “Profiles” > “Add”,

 

Crearemos aquí el esquema de login de factor simple para manageotp, Le indicamos un nombre por ejemploSingle_Manage_OTP_Login_Schemay en Authentication Schema pulsamos el lápiz para editar,

 

Filtramos y buscamos el fichero SingleAuthManageOTP.xml, y pulsamos enSelectpara seleccionar este esquema, pulsamos ya enCreate”.

 

Pulsamos en Create,

 

Creamos otro perfil de esquema de login, esta vez para el doble factor de autenticación, le llamamos como nos parezca, en este casoSingle_Manage_OTP_Login_Schemay en Authentication Schema volvemos a editar,

 

Y procedemos igual, filtramos esta vez y buscamos DualAuth.xml, pulsamos enSelecty enCreate”,

 

Pulsamos en More añadimos en Password Credential Index un 1 para indicar el campo que almacena la contraseña del usuario, pulsamos enEnable Single Sign On Credentialsy enCreate”,

 

Bien, ahora en la pestaña dePolicies vamos a crear sus políticas, pulsamos enAdd“,

 

Le damos un nombre a la política (pej:”Single_Manage_OTP_Login_Sch_Pol”) que llevará asociado el perfil que hemos creado con el esquema de login de factor simple, que eraSingle_Manage_OTP_Login_Schemay creamos una regla para que sólo muestre este portal si el usuario accedió a /manageotp. Y si queremos, también podemos añadir el rango IP local de nuestra red para que sólo se puedan registrar desde dentro de nuestra red (por los mismos motivos de seguridad), añadimos la regla:

http.req.cookie.value(“NSC_TASS”).eq(“manageotp”) && client.IP.SRC.IN_SUBNET(192.168.1.0/24)

Pulsamos enCreate”,

 

Creamos otra política, esta vez para el perfil del factor de doble autenticación, le damos un nombre, por ejemploDual_OTP_Login_Sch_Poly seleccionamos nuestro perfil previamente creado, en este ejemplo esDual_OTP_Login_Schema”. En Rule indicamos true y damos a Create!

 

Authentication Policy Labels,

 

Seguimos, ahora vamos aSecurity” > “AAA – Application Traffic” > “Policies” > “Authentication” > “Advanced Policies” > “Policy Labels” > Add

 

Se utilizará para la gestion y verificación de OTP, le indicamos un nombreOTP_Auth_Pol_Labely le asociamos en Login Schema el LSCHEMA_INT, pulsamos en Continue,

 

Pulsamos en Policy Binding,

 

Y selecccionamos la politica que no tenia la auth habilitada y sólo tenia el secreto OTP en mi caso era “192.168.1.250_LDAP_OTP_sin_auth_advy damos aSelect”,

 

 

Pulsamos enBind”,

 

Pulsamos enAdd Bindingpara añadir otra política,

 

Pulsamos en Select Policy,

 

Y seleccionamos la política que verifica el OTP en mi caso era “192.168.1.250_LDAP_OTP_valida_sin_auth_adv”, le damos aSelect”,

 

Y le damos menos prioridad que a la política de mageotp, y le damos aBind”,

 

Vamos aSecurity” > “AAA – Application Traffic”, lo habilitamos > “Virtual Servers” > “Add”,

 

Creamos un servidor de autenticacion para el OTP, no hace falta que tenga direccionamiento, le indicamos un nombre en este casoOTP_AAA_Auth”, en IP Address Type indicamosNon Addressabley pulsamos enOK”.

 

Pinchamos enNo Server Certificate”,

 

Pinchamos enSelect Server Certificate”,

 

Y escogemos el certificado que tenemos ya instalado y válido, en mi caso un Wildcard, “Select”,

 

Bind”,

 

Continue”,

 

Pinchamos donde indicaNo Authentication Policy“,

 

Pulsamos enSelect Policy”,

 

Y seleccionamos nuestra politica de autenticación LDAP habitual, la que tiene autenticación habilitada,

 

Pinchamos enSelect Next Factor”,

 

Y seleccionamos la Policy Label que hemos creado para OTP.

 

Pulsamos enBind”,

 

Pulsamos enContinue”,

 

Pulsamos en el menú de la derecha enLogin Schemasy añadimos uno desdeNo Login Schema”,

 

Pulsamos enSelect Policy”,

 

Y seleccionamos nuestra política de loginSingle_Manage_OTP_Login_Sch_Polde factor simple, “Select”,

 

Bind

 

Ahora, pulsamos enLogin SchemayAdd Binding”,

 

Pulsamos enSelect Policy”,

 

Y seleccionamos la de doble factor que en este ejemplo esDual_OTP_Login_Sch_Pol”, & “Select”,

 

Bind”,

 

En el menú derecho buscamos y añadimos un tema para el portal desdePortal Themes”, seleccionamos RfWebUI.

Pulsamos enOK”.

 

Traffic Policies,

 

Vamos aNetScaler Gateway” > “Policies” > “Traffic” > “Traffic Profiles” > “Add”,

 

Creamos un perfil de tráfico para OTP, le damos un nombre, en mi casoOTP_NS_Traffic_Profile”, en SSO Password Expression indicamos http.REQ.USER.ATTRIBUTE(1) y pulsamos enCreate”.

 

Creamos una política desdeTraffic Policies” > “Add”,

 

Le indicamos un nombreOTP_NS_Traffic_Pol”, seleccionamos el perfil que acabamos de crearOTP_NS_Traffic_Profile”, pulsamos enSwitch to Default Syntax”, dejamos como expresion true y pulsamos enCreate”,

 

Vamos a editar nuestro virtual server de NetScaler Gateway, vamos aNetScaler Gateway” > “Virtual Servers” > seleccionamos el nuestro > “Edit”. Y añadimos políticas!

 

 

EnChoose Policyescogemos de tipo Traffic, “Continue”,

 

Pulsamos enSelect Policy”,

 

Seleccionamos la política de tráfico recién creada, que eraOTP_NS_Traffic_Pol” & “Select”,

 

Bind”,

 

 

En el menú de la derecha añadimos losAuthentication Profile”,

 

Pulsamos en el más deAuthentication Profile”,

 

Creamos un perfil que lo enlazamos con el servidor de autenticación que hemos creado, le damos un nombre y pulsamos enAuthentication Virtual Server”,

 

Seleccionamos el servidor, que eraOTP_AAA_Auth” & “Select”,

 

 

Pulsamos enCreate”,

 

Pulsamos enOK”,

 

Añadimos también en el virtual server el tema del portal desdePortal Themesen la derecha,

 

Seleccionamos el portal RfWebUI,

OKy guardamos la configuración, aún que no te lo creasya está!!!! casi ná

 

Portal de gestión de OTP,

 

Como usuario, primero, deberíamos acceder a nuestro portal corporativo para registrar nuestro dispositivo móvil, pero añadiéndole /manageotp al final de la URL, por ejemplo: https://citrix.openservices.eus/manageotp, el usuario deberá validarse con sus credenciales del AD.

 

Y desde aquí podra añadir un nuevo dispositivo para usarlo como token, le daría un nombre y aAdd Device”,

 

Le saldría un código QR que debería escanear para enlazarse con su app de Google Authenticator que está disponible tanto en Android para dispositivos genéricos o en iOS para iPhone o iPad.

 

Y ya nos indicará que se registró satisfactoriamente!

 

Ahora el usuario ya podrá entrar en su portal corporativo de siempre y seguir trabajando normal, cuando acceda como vemos, tendrá que meter sus credenciales como es habitual y luego el OTP o contraseña de un solo uso que obtendrá del móvil.

 

Y listo! Este sería un pantallazo de lo que vería el usuario, ese sería el código que aleatoriamente se le genera y deberá introducir cuando necesite. Algo largo de configurar pero con grandes resultados en cuanto a obtener mucha más seguridad en nuestro entorno. Ya nunca más nos podrán robar credenciales de nuestros usuarios!

 

Posts recomendados

Autor

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, no dudes en contactar conmigo, os intentare ayudar siempre que pueda, compartir es vivir ;) . Disfrutar de los documentos!!!

Instalando Vembu BDR

4 de January de 2018