ICM / conectividad / Securizar entorno de trabajo con MFA

Securizar entorno de trabajo con MFA

20 diciembre 2020 | Carlos Calvo

En el pasado artículo en el que hablamos sobre la autenticación multifactor o MFA, comentábamos por qué desde ICM pensamos que es importante implementarlo para cada trabajador. También mencionamos la necesidad de securizar todas las conexiones realizadas contra nuestra infraestructura OnPremise desde fuera de la red de la organización. Hoy ahondaremos un poco más en cómo securizar nuestro entorno de trabajo mediante MFA.

Partiendo de la base de que existen multitud de soluciones de terceros, generalmente de pago, (nosotros utilizaremos MFA de Microsoft Azure) hoy vamos a explicar con un poco más en detalle, pero sin perdernos en tecnicismos, cómo llegar a implementar una solución que desde ICM nos parece un buen primer paso para securizar tanto la entrada al entorno del trabajo, como la solicitud de conexión al mismo a nivel de red.

Recordad que no vamos a meternos en tecnicismos, ni en reglas de Firewall de cada máquina. Sólo pretendo dar una visión general de cómo funciona el servicio. Cuando montéis esto en un entorno de producción, sed muy cuidadosos con las reglas de Firewall y haced que las máquinas sólo se vean entre sí a través de los puertos estrictamente necesarios.

 securizar el entorno de trabajo con MFA

Ejemplo práctico de cómo securizar el entorno de trabajo con MFA

Supongamos que queremos lograr que un trabajador, el señor X, sea capaz de conectarse a su entorno de trabajo, ofrecido desde un Microsoft Remote Desktop Gateway que es sólo accesible desde la red corporativa. O a través de una conexión VPN y que queremos securizar totalmente el acceso a la plataforma.

La OrganizaciónG, utiliza una infraestructura OnPremise para dar los servicios requeridos a sus trabajadores. Además, sincroniza parte de la información de esa infraestructura con Microsoft Office 365 a través de la aplicación ADConnect.* Aplicación descargable desde aquí.

Además, el departamento de IT de OrganizaciónG se ha preocupado por la seguridad de sus trabajadores y ha activado MFA para todos ellos. Cada empleado tiene la aplicación Microsoft Authenticator en su dispositivo móvil y hace uso de esta para acceder a sus recursos Online de Office365.

El SeñorX trabaja en la OrganizaciónG. Esta tiene ya infraestructura OnPremise desde la que SeñorX trabajaba antes de llegará el COVID. Pero ahora, debe conectarse a sus recursos OnPremise desde casa. Para ello, OrganizaciónG le ha los siguientes recursos:

  1) Un cliente VPN

  2) Un fichero .rdp

Hasta ahora, OrganizaciónG ya validaba los accesos de sus usuarios a través de un Active Directory, así que usaremos ese componente para continuar realizando la validación de los usuarios. Sólo que vamos a insertar una pieza en medio, entre el usuario y el sistema de validación. Para ello, vamos a montar un Windows Sever 2019 en nuestra infraestructura OnPremise. Esta nueva máquina debe tener visibilidad hacia el Active Directory y también desde dos puntos: el servidor VPN que da acceso a los usuarios y el servidor RDS Gateway a través del que los trabajadores se conectan a su escritorio RDP.

NPS (Network Policy Server)

En la nueva máquina, que llamaremos NPS como el servicio, debemos instalar y configurar el servicio Network Policy Server (NPS) de Microsoft. Una vez configurado correctamente y registrado en el Active Directory de OrganizaciónG, instalaremos el plugin «NPS Extension for Azure MFA». La última versión del plugin se puede descargar desde aquí.

El objetivo de este plugin es hacer de conector contra nuestro tenant de Azure Active Directory. El plugin se debe configurar mediante la ejecución de un Script en Powershell, generalmente ubicado en «C:\Program Files\Microsoft\AzureMfa\Config\AzureMfaNpsExtnConfigSetup.ps1».

seguridad

Definir políticas de conexión para securizar el entorno de trabajo mediante NPS-MFA

Una vez configurado el plugin NPS-MFA correctamente, deberemos disponer en el servidor NPS las políticas de petición de conexión y las políticas de red. Aquí definiremos tantas políticas de petición de conexión como sean necesarias y añadiremos los filtros específicos para que sólo los usuarios que queremos puedan usar este servicio. Configurando las políticas de red, se podrá designar quién está autorizado a conectarse a la red y las circunstancias en las que pueden o no conectarse.

Ahora deberemos instalar también en el servidor NPS los clientes RADIUS que permitiremos que realicen peticiones a nuestro NPS. Esos clientes los definiremos más adelante en dos de nuestros servicios a securizar, la VPN y el acceso al entorno RDS Gateway.

Hasta aquí, ya tenemos montado nuestro servidor NSP con un plugin de MFA configurado contra nuestro TenantID y con una serie de políticas de acceso que garantizarán que SeñorX pueda acceder a sus recursos, validando contra un Active Directory que ya teníamos. Aunque nos falta conectar los mecanismos de autenticación contra este nuevo servidor NPS.

Lo primero que vamos a hacer es conectar la VPN a este servicio. Aquí cada fabricante es un mundo, pero muchos incorporan clientes de RADIUS para llevar a cabo de forma opcional la autenticación.

Configuración OPENVPN y RDS GATEWAY

Lo que haremos es configurar openvpn para que realice la autenticación mediante el plugin de RADIUS, que apuntaremos a nuestro nuevo servidor NPS en el que previamente habíamos configurado los clientes de RADIUS que harían peticiones. Uno es nuestro servidor openvpn. La configuración de estos servicios no es trivial, pero con un poco de paciencia podrá llegar a configurarlo correctamente.

Ahora vamos a hacer lo propio con nuestro servidor RDS Gateway. Queremos que cuando reciba una petición el SeñorX para conectarse, en lugar de autenticar la cuenta contra Active Directory, la autentique contra nuestro nuevo servidor NSP. Para ello, en el servidor que hace de Gateway, deberemos instalar también el servicio NSP (sin extensión MFA) y crear políticas de solicitud de conexión para que cuando llegue una petición de login, ésta sea redireccionada al servidor NPS a través de un cliente RADIUS. Este también lo deberemos configurar en el Gateway y que deberemos haber configurado como cliente RADIUS en el servidor NPS. De este modo, las solicitudes de login en el servidor Gateway serán reenviadas al servidor NPS, que validará el usuario y, de ser correcto, comenzará la secuencia de MFA para el usuario.

Una vez realizado este montaje que insistimos, hemos pasado solamente por encima para ver cada paso desde una perspectiva muy amplia, habremos conseguido generar la siguiente secuencia de eventos ante una solicitud de login del SeñorX.

Solución final

Cada mañana, el SeñorX se levanta y arranca su cliente VPN. Escribe sus credenciales correctas. El servidor VPN envía esas credenciales al servidor NPS. Éste valida al usuario contra Active Directory según las políticas de acceso de NPS y, posteriormente, lanza un challenge MFA. El usuario recibe una notificación en su teléfono para aceptar o denegar la solicitud de entrada. SeñorX acepta la solicitud. Esta aceptación llega al plugin MFA de NPS que notifica a NPS que el challenge MFA fue respondido con un «permitir», así que se notifica al servidor VPN que el resultado de la validación de SeñorX es satisfactoria y el cliente VPN acaba conectando al SeñorX a la red de OrganizaciónG.

Ahora debe conectarse a su escritorio remoto. Para ello, ejecuta el fichero .rdp proporcionado por OrganizaciónG. El usuario es preguntado por sus credenciales como cada día y éste escribe sus credenciales correctas. Esta petición llega al Gateway que valida al usuario contra Active Directory. Como las credenciales son correctas, se pasa a través del cliente RADIUS generado en el Gateway la petición al servidor NPS que, nuevamente, lanzará un challenge MFA. El usuario volverá a recibir una notificación en su teléfono. Al aceptarla, el plugin MFA de NPS responde al gateway con un intento de login satisfactorio. En ese momento, se establece la conexión RDP contra el Gateway y el usuario entra a su entorno de trabajo.

Autenticaciones para securizar el entorno de trabajo con MFA

4 autenticaciones para acceder: 2 (usuario/password y MFA) para conectarse a la VPN y otras 2 (nuevamente, usuario/password y MFA) para conectarse a su entorno de trabajo mediante RDP.

Hemos comentado openvpn porque es un software disponible de forma gratuita y con el que cualquiera puede montar un laboratorio para probar estos mecanismos de autenticación.  Pero fabricantes como Cisco, Fortinet u otros incorporan nativamente clientes RADIUS con los que podríamos hacer exactamente lo mismo sin necesidad de instalar plugins como el de openvpn.

Aunque hemos explicado las piezas a grandes rasgos, como he comentado un poco más atrás, no es trivial realizar todo el montaje. No obstante, si os interesa el tema, os recomiendo empezar con la lectura del siguiente artículo de Microsoft para tener un buen punto de partida.