Cerrar
InicioAzureConexión VPN con autenticación RADIUS + AzureMFA

Conexión VPN con autenticación RADIUS + AzureMFA

Siempre se ha tenido como referencia de seguridad una conexión VPN mediante Internet para acceder a servicios “privados” de nuestras infraestructuras, pero no es muchas ocasiones se ha tenido en cuenta la seguridad de la cuenta con la que accedemos a dicha VPN. En los inicios de las VPN se utilizan usuarios y contraseña específicos  para este servicio, siendo diferentes de las credenciales que utilizábamos en el resto de servicios (inicios de sesión en servidores y estaciones de trabajo por ejemplo). Más adelante se configuraban sistemas Radius para “delegar” la autenticación de acceso a las VPN y/u otros sistemas de acceso externo (Proxies, etc..) a sistemas LDAP o bases de datos de usuarios externas, en el caso de entornos Microsoft al Directorio Activo. Esto nos permitía que cuando iniciábamos una conexión VPN  y nos solicitaba credenciales, pudiéramos iniciar sesión con nuestras credenciales del Directorio Activo.

Hasta aquí todo parecía “ideal”, pero según avanzan los tiempos, también los ataques sufridos a todas las infraestructuras del mundo por grandes o pequeñas que sean, todas son atacadas en diferentes niveles de magnitudes. Dicho esto, ya no nos vale el utilizar únicamente un sistema único de autenticación (usuario y contraseña), sino, que además un sistema adicional para asegurar que somos nosotros quienes queremos iniciar sesión en dichos servicios. Esto se llamada sistemas de doble factor de autenticación, en Microsoft contamos con AzureMFA, lo que nos permite establecer a los usuario que puedan validarse con sus credenciales de acceso y además, con un código de acceso único en cada inicio de sesión. Además, hasta la fecha podíamos configurar MFA para servicios en nube, por ejemplo en O365 y las aplicaciones registradas en AzureAD, pero .. que pasa con los accesos VPN para conectarnos con nuestras oficinas/data centers? Pues .. que no teníamos nada (sencillo) para implementar un sistema de doble factor de autenticación, pero desde hace casi un año y medio podemos configurar nuestras VPN y exigir que los usuarios una vez ingresen su usuario y contraseña se le envíe una solicitud de doble factor de autenticación.

En este artículo voy a explicar como configurar autenticación de doble factor para nuestros servidores VPN Microsoft (Windows Server 2008 R2 SP1 o superior), lo que nos permitirá que nuestros usuarios habilitados en AzureAD para utilizar la autenticación condicional también la tengamos disponible en las conexiones VPN.

Lo primero, como casi siempre, una pequeña infografía de una red corporativa con servicios de VPN tanto On-Premises y AzureAD (Site-to-Site y Point-to-Site) en donde configuraremos AzureMFA:

Para poder implementar autenticación radius con AzureMFA en nuestro servido VPN, MSFT ha publicado hace casi un año y medio una extensión NPS para utilizar la autenticación AzureMFA. Simplemente debemos instalarlo en nuestro servidor NPS y realizar una sencilla configuración, pero antes debemos contar con los siguientes requisitos:

Este servicio no es compatible con el reenvío de la autenticación proxy radius

Comentado esto, si tenemos ya nuestro servicio de VPN y AzureAD Connect configurado, veamos como podemos configurar las extensiones NPS para utilizar la autenticación MFA  con nuestras VPNs. Lo primero, descargar la extensión NPS de Azure (https://aka.ms/npsmfa):

Descargamos el ejecutable:

E iniciamos el proceso de instalación de las extensiones NPS para AzureMFA

Una vez instalado la extensión NPS, debemos reiniciar el servidor y una vez reiniciado, debemos iniciar una consola de PowerShell (en modo administrador) debemos acceder a C:\Program Files\Microsoft\AzureMfa\Config y ejecutar el ps1 AzureMfaNpsExtnConfigSetup.ps1

Ahora debemos iniciar sesión con algún usuario con el rol de Global Administator  de Azure:

Ahora para finalizar la configuración, no solicitará el ID de nuestro Tenant, este ID lo podemos conseguir desde la sección de Propiedades de AzureAD desde el Portal de Azure:

Una vez que lo peguemos en la ventana de PowerShell, pulsamos en Enter para finalizar el proceso:

Si vuestro Windows está en Español os encontraréis que el proceso termina “casi bien”,  como vemos indica que no ha podido darle permisos a la cuenta de servicio de red a la clave privada del certificado autofirmado generado por la ejecución del script AzureMfaNpsExtnConfigSetup.ps1. (El porqué del problema del Windows en Español es porque el script quiere dar permiso sobre la clave privada del certificado a la cuenta Network Service y no Servicio de Red)

Si tenéis este problema, tenéis que de forma manual buscar el certificado emitido para el equipo local y acceder a la opción de Administrar Claves Privadas:

Ahora pulsamos en Agregar, buscamos la cuenta de Servicio de Red de nuestro equipo y pulsamos en Aceptar:

Deberíais ver algo así y pulsamos en Aceptar:

Antes de continuar, quiero comentaros que ahora este servidor NPS sólo podrá autenticar a usuarios con MFA habilitado, al resto de usuarios les denegará el acceso. Para evitar esta situación, debemos crear una clave de registro REQUIRE_USER_MATCH con el valor FALSE  en la ruta HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AzureMfa en el servidor NPS. Si no configuramos este valor a FALSE, como os comentaba, cualquier usuario que quiera validarse no podrá sino tiene habilitado la autenticación doble factor en Azure. Tener cuidado, porque si utilizáis este servidor para autenticación Radius de vuestra red Wi-Fi no autenticará ni a los usuario ni equipos, es importante que configuréis la clave de registro REQUIRE_USER_MATCH con valor FALSE (porque el no tener valor o valor TRUE es lo mismo, exigiría MFA):

Ahora, por último, comentar que para que los usuarios puedan utilizar la autenticación MFA debe estar sincronizado el usuario con AzureAD Connect, sino tampoco podría conectarse, además de tener habilitado el usuario para MFA. No voy a explicar la configuración de RADIUS, porque esto no difiere de cualquier otra configuración para el servicio de VPN. Igualmente, aquí os dejo un artículo sobre como configurar radius para un servicio de VPN Point-to-Site de Azure:

Si ya tenemos todo configurado en cuanto a la VPN, Radius, usuarios habilitados en MFA, etc.. el proceso de configuración de las extensiones VPN es lo que habéis visto, instalación de las extensiones y ejecución del script que aprovisiona el servicio y ahora tocar probarlo:

Igualmente, la configuración de la VPN On-Premises con NPS con AzureMFA se puede configurar para las VPN Point-to-Site de Azure. La configuración de Azure VPN Point-to-Site aquí tenéis como configurarla: VPN Point-to-Site [Azure]

La configuración del NPS con las extensiones es lo mismo que con las VPN de On-Premises, sencillo, fácil y en 5 minutos lo tienes funcionando si el resto de servicios los tienes configurados.

Por último, os dejo aquí otro artículo sobre VPN en donde se pueden utilizar las cuentas de AzureAD para iniciar sesión en la VPN: Azure: Autenticación AzureAD en conexiones Azure VPN P2S (Versión Preliminar)

Como veis podemos realizar múltiples configuraciones, ahora os toca a vosotros probarlas!!

2 COMENTARIOS
  • Nacho / 31 agosto, 2022

    Hola Santiago, me estoy volviendo loco, ya que tengo configurado todo correctamente y lo único es que cuando doy a conectar a la vpn, me mandan el mensaje al móvil pero no me salta en el ordenador para poder meterlo,¿Me sabes decir que se me está escapando?

DEJA UN COMENTARIO

Este sitio web utiliza cookies. Si continúas navegando, consideramos que aceptas su uso. Puedes obtener más información en nuestra política de cookies. ACEPTAR

Aviso de cookies
Share This