Permetent autenticació de doble factor amb SMS2 (gratuït) i NetScaler Gateway

En aquest post veurem una cosa fabulosa, veurem com habilitar 2FA o autenticació de doble factor a NetScaler Gateway, obligant els usuaris a utilitzar un Token addicional per a l'accés corporatiu a l'organització. Usarem SMS2 que és una eina gratuïta, que mitjançant RADIUS validarà els tokens dels usuaris, usarem tokens de programari mitjançant l'app Google Authenticator als mòbils, una passada!

 

El que s'ha dit, nos basaremos en el algoritmo TOTP (Time-based One-time Password), o contraseña de un solo uso basada en tiempo, normalment aquests codis se actualizan cada 30 segons. En los dispositivos móviles de los empleados bastará con instalar (per exemple) Google Authenticator y cada vez que accedan de manera externa al lloc Citrix, que presentará sus aplicacions o escritorios, pues pondremos un factor más de autenticación, un nivell més de seguridad para evitar accessos aún que conozcan la contraseña del usuario. Últimamente, estamos conociendo, cada dia més robos de contraseñas, a qué estás esperando para intentar securizar algo más tu entorno?

 

Configuración de NPS,

Deberemos tener el rol de de Servidor de directivas de redes o NPS (Network Policy Server) instalado y configurado para permitir consultas de RADIUS.

 

Instalamos “Serveis d' accés i directives de xarxes” y sus características, bien por GUI o mediante PowerShell:

[sourcecode]Install-WindowsFeature -Name npas[/sourcecode]

 

Abrimos la consola “Servidor de directivas de red. Lo primero que tendremos en cuenta será en las “Directivas de red” ir a las propiedades de la directiva “Conexiones a otros servidores de acceso”,

 

Seleccionem “Conceder acceso” y marcamos “Omitir propiedades de marcado de cuentas de usuario”,

 

Ahora debemos de dar de alta todos los clients RADIUS, o sea todas las màquines que harán consultas, en principi con la màquina on tenemos instalado el rol (para pruebas futures) y la NetScaler Subnet IP nos valdrá, ya que el NetScaler hará las consultas a NPS con dicho adaptador. Per tant, en “Clients RADIUS” > “Nou”,

 

Indicamos el nombre de la màquina y la direcció IP que usará para permitirle consultas, además indicaremos un secret que utilizarem para autenticarnos.

 

Y creamos todos los equipos, el que s' ha dit, con la IP de las màquines que harán consultas bastará, bien nosotros localmente para hacer pruebas y la dirección IP SNIP del NetScaler.

 

Instalación y configuración de SMS2,

Wright SMS2 serà l'aplicació que utilicemos para permitir aquesta 2FA, podrem instal·lar-la en uno o diversos equips, normalment junto al NPS, o en un DC. Esta utilidad es gratuita y disponible en el seu lloc web: http://www.wrightccs.com/support/download/

 

Comenzamos la instalación, “Next”,

 

Seleccionem “Custom”,

 

Y quitamos la part de CloudSMS i verificamos que instal·lem tots els clients, o al menys el tipus que ens interessen, “Next”,

 

Posem sobre “Configurar AuthEngine”,

 

Introduïm la llicència gratuïta que ens dan, al menys hasta Diciembre de 2022, podremos descargarla de aquí o usar esta misma:

[sourcecode]<?xml version="1.0" encoding="utf-8"?>
<LicenseXml>
<AuthEngine>zslx2mEqlV+d7mf0FtgVW5+L1vUTXAE8wOvs3fxXwTQ=</AuthEngine>
</LicenseXml>[/sourcecode]

 

Deixamos la compte del Sistema Local per al servei AuthEngine, “Next”,

 

Indicamos al AuthEngine que aporta a qualsevol IP (0.0.0.0) utilitzant el port 9060. Indicamos el FQDN del nostre servidor LDAP o controlador de domini, indicamos una cuenta de usuario específica que usaremos para las consultas de RADIUS, en mi caso la llamaremos “usuario_radius”, indicamos su contraseña del AD e indicamos cual es la BaseDN que usaremos como filtro para buscar usuaris. “Next”,

 

Necesitaremos un servidor SQL por algún costat, indicaremos el seu nombre e instància, port, usuario de SQL o si volem usar autenticació integrada, además del nombre de la BD que generará. “Next”,

 

Podemos configurar aquí el servidor de correo para las alertas de mail o si queremos el token vía mail, no és el nostre cas, podemos obviarlo, “Finish”.

 

Seguimos en el asistente de instalación, ahora pulsamos enConfigure OATHCalc”,

 

Dejamos la cuenta Local System para el servicio OathCalc, “Next”,

 

Dejamos los valores predeterminados, “Finish”,

 

Seguim, vamos ahora aConfigure AdminGUI/Clients”,

 

Indicamos la dirección IP local del servidor con la que ofreceremos el servicio y el puerto 9060, “Finish”.

 

Ya podremos seguir con el asistente, “Next”,

 

Como indique que instalara todos los clientes y este trae también los ficheros del obsoleto Web Interface, podremos indicar donde queremos que nos los deje. Estos ficheros en principio no los usaremos. “Next”,

 

Y por fin, posem en “Install” para comenzar con la instalación de SMS2,

 

… esperem uns segons…

 

“Finish”, ¡Instalación correcta!

 

Debemos editar el fichero de configuración, ubicado por defecto en “%ProgramFiles%\WrithCCS2\Settings\Configuration.xml”. Normalmente haremos las siguientes modificaciones, “AuthEngineChallengeResponselo dejaremos en “False” para poder utilizar Google Authenticator, además en losAuthProvidersdeberemos deshabilitarlos todos y dejar habilitado y predeterminado OATHCalc, quedant:

[sourcecode]<Name>CloudSMS</Name>

<Enabled>false</Enabled>
<Default>false</Default>

<Name>OATHCalc</Name>

<Enabled>true</Enabled>
<Default>true</Default>

<Name>PINTAN</Name>

<Enabled>false</Enabled>
<Default>false</Default>

<Name>Email</Name>

<Enabled>false</Enabled>
<Default>false</Default>

<Name>Static</Name>

<Enabled>true</Enabled>
<Default>false</Default>
…[/sourcecode]

 

Tras los cambios, guardamos el fichero y reiniciamos los serviciosWright AuthEngine” y “Wright OATHCalc”.

 

Probando SMS2

Ya podremos abrir la consola SMS2 Administration Console. ¡Ojo! que, para abrir esta consola debe existir un grupo llamado “Administrators” en la carpeta de Built-In de nuestro Directorio Activo, si no existe el grupo (que en Directorios Activos en Español se llama Administradores) o no eres miembro de él, no podrás ver todos los usuaris. Lo primer que haremos serà al “usuario_radius” ponerle un token numèric estàtic (pej 123456) para hacer una prueba a continuación. Previamente, seleccionamos el usuario y pulsamos sobre “Opcions d'autenticació”,

 

A la pestanya “Opcions d'autenticació” posem “Static” i ponem el token numèric que ens de la gana, ho necessitaremos així que documenta. “Desa la configuració”. Y luego “Actualitza detalls del compte” per gravar els canvis en l'usuari específic.

 

Bé, vam a provar si SMS2 està funcionando correctament, per a això, podremos descargarnos NTRadPing 1.5, que és una utilitat per fer proves de RADIUS, podremos descargarla de: https://thwack.solarwinds.com/thread/14486. Esta prueba la haremos des d'una de les màquines que hayamos dado de alta en el nostre servidor NPS, en els clients RADIUS, si os acordáis establecimos un secreto doncs, ho necessitaremos ara.

Per tant, una vez descargada, la ejecutamos e introduimos la direcció IP del nostre servidor RADIUS i el port 1812, en “Radius Secret key” indicaremos el secret que utilitzamos al definir el Client RADIUS, indicamos el nombre del usuario “usuario_radius” i en “Password” hem d'indicar el Token numèric que le acabamos de establecer en el pas anterior. Posem sobre “Send” i si tot ha anat bé, verem que validó la autenticación correctament.

 

Configurando NetScaler,

Encara que voy a deixar els passos mínims, donde crearemos unas polítiques d'autenticació que aplicarem a nuestro NetScaler Gateway, este proceso podría ser más largo, ya que se recomana monitorar con Load Balancing y oferir el servei RADIUS des d'aquí, por tanto obviare crear el Monitor, los Servicios, Servidores y Virtual Servers de LB para el servei RADIUS. Iremos directamente a crear las directivas y aplicarlas al Gateway,

 

Daremos de alta lo primero de todo al servidor RADIUS, des de “Citrix Gateway” > “Policies” > “Authentication” > “RADIUS” > “Servers > “Add”, indicamos la dirección IP del servidor RADIUS y el puerto 1812, así como el secreto que utilizamos cuando dimos de alta la Subnet IP del NetScaler en el NPS. Podemos darle aTest RADIUS Reachabilitypara probar la validación, debería de ir ok, posem en “Create”,

 

Ahora vamos a crear las políticas de RADIUS, des de “Citrix Gateway” > “Policies” > “Authentication” > “RADIUS” > “Policies” > “Add”, creamos una política para dispositivos que usen Citrix Receiver, la asociamos al servidor RADIUS recién creado e indicamos la siguiente expresión:

[sourcecode]REQ.HTTP.HEADER User-Agent CONTAINS CitrixReceiver[/sourcecode]

 

Creamos otra para los dispositivos que no usen Receiver (o Workspace), con la siguiente expresión:

[sourcecode]REQ.HTTP.HEADER User-Agent NOTCONTAINS CitrixReceiver[/sourcecode]

Y lo mismo para LDAP, crearemos dos políticas iguales, una para accesos con dispositivos Citrix Receiver, des de “Citrix Gateway” > “Policies” > “Authentication” > “LDAP” > “Policies” > “Add”, con la siguiente expresión:

[sourcecode]REQ.HTTP.HEADER User-Agent CONTAINS CitrixReceiver[/sourcecode]

Y acabamos con la última política para dispositivos que no usen Receiver,

[sourcecode]REQ.HTTP.HEADER User-Agent NOTCONTAINS CitrixReceiver[/sourcecode]

 

Y ahora iremos a nuestro Virtual Server de NetScaler Gateway y las vincularemos, crearemos autenticaciones primarias y secundarias, para atender a los usuarios que se nos conecten, dejaremos como Primaria con prioridad 100 la Politica LDAP Sin Receiver, y con prioridad 90 la política RADIUS Receiver; como autenticaciones secundarias, usaremos a la inversa, això és, con prioridad 100 la Politica RADIUS Sin Receiver, y con prioridad 90 la política LDAP Receiver.

 

Debemos modificar la politica de sesion que ya existirá y estará aplicada en nuestro Virtual Server Gateway, en mi caso la predeterminada ‘AC_OS_X.X.X.X’, ahí, a la pestanya “Client Experience”, en “Credential Index” hem de indicar “SECONDARY”. Y verificar que la otra política de sesion (que también ya existirá), en aquest cas la 'AC_WB_X.X.X.X’ usa “SECONDARY”, que será así de manera predeterminada.

 

En el NetScaler Gateway, como seguro sabemos y tenemos aplicado un tema corporativo, y si no lo has fet hauries de donar una imatge personalitzada i agradable a tus usuaris, repassa aquest post si lo necessita. Doncs el que s'ha dit, podrem personalitzar el text de los camps de texto que verán los usuaris, per indicar per exemple en el camp 2 que no pida “Contraseña 2” al usuario si no “Token” i així asimilen millor què és una contraseña i què és un Token. Esto lo dicho, ho haremos en nuestro Virtual Server, en la secció del Tema, al pulsarlo podremos añadir el “Login Page” i personalitzar dichos camps amb un millor texto.

 

Habilitant Tokens als Usuaris del Directori Actiu,

De tornada a SMS2, ja és hora de provar això! Anem a donar d'alta un usuari!

 

Ara hem de seleccionar els usuaris que ens interessa habilitar l'autenticació 2FA, per a això, obrim la ” Consola d'Administració SMS2”, sobre cada usuari que ens interessi, el seleccionem i anem a “Opcions d'autenticació”,

 

Habilitem “OATHCalc”, indiquem que utilitzi el Token de tipus TOTP, a Authenticator podem indicar directament que utilitzi Google Authenticator i polsem sobre “Generar Secret Compartit”, ens donarà un secret o un codi QR que hem d'enviar a l'usuari perquè des del seu dispositiu mòbil pugui donar d'alta el seu compte.

 

Ara ja per fi, tenint un mòbil a mà, instal·lada l'aplicació Google Authenticator i afegida el compte mitjançant el codi QR, aquest usuari sí que podria accedir al seu portal de Citrix i a part d'indicar el seu usuari i contraseña, haurà especificar el Token temporal que obtenga únicament des d'aquest dispositivo móvil. Entrada blindada a la nostra empresa! A por más!

 

Posts recomanats

Autor

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, no dubtis a contactar amb mi, us intentareu ajudar sempre que pugui, compartir és viure ;) . Gaudir dels documents!!!

Instal·lant Hassio - Home Assistant

10 de September de 2019

Posar la BD de Home Assistant a MariaDB

19 de September de 2019