Cerrar
InicioAzureMoviendo nuestros servicios y máquinas virtuales a Azure (Parte IX)

Moviendo nuestros servicios y máquinas virtuales a Azure (Parte IX)

Para terminar de documentar las conexiones P2S de Azure, voy a explicar como configurar la autenticación de los usuarios mediante un certificado digital. En su momento había publicado un artículo de como configurar P2S pero con autenticación Radius (Moviendo nuestros servicios y máquinas virtuales a Azure (Parte VIII), pero ahora lo haré utilizando certificados de usuario emitidos por nuestra PKI de Windows Server:

A continuación os comentaré los requisitos para llevar a cabo esta solución (tal cual yo la he implementado, cada cual puede variarla todo lo que considere oportuno):

  • Infraestructura de PKI en Windows Server 2012
  • Suscripción de Azure con tu Gateway VPN para poder configurar sobre el nuestra VPN P2S (SSTP)

No son muchos los requisitos previos, pero la implementación de la PKI es algo que no voy a abordar en este artículo, pero si os dejaré un vídeo que había hecho hace unos años que os servirá como guía:

El proceso es sencillo, pero siempre y cuando tengamos todos los conceptos muy claros. El primero paso de esta configuración, sería tener nuestra Gateway configurado ya en Azure. Como esto lleva también su tiempo, os dejaré aquí algunos artículos previos de os pueden servir como referencia:

Y aquí os dejo otra configuración, la cual puede ser complementaria para este artículo, puesto que es una configuración para Azure VPN P2S pero como autenticación Radius (EAPMSCHAPv2 o EAPTLS):

Una vez que tengamos la primera parte configurada nuestra Puerta de Enlace de Red Virtual, tenemos que acceder a ella desde el grupo de recursos donde la tengamos ubicada:

Una vez dentro, nos vamos a la sección de Configuración de punto a sitio y pulsamos en Configurar ahora

La configuración es muy simple, debemos especificar un Pool de direcciones IP para asignar a los clientes que se vayan conectado vía SSTP a la puerta de enlace Puerta de Enlace de Red Virtual vía P2S y pulsamos en Guardar (de momento no voy a configurar la parte de los certificados):

Esperamos uno segundos hasta que se guarde la configuración …

Una vez que se ha guardado la configuración, debemos especificar un certificado en dicha conexión. Esta parte,  de momento la dejaremos pendiente, puesto que prefiero explicaros ahora como solicitar los certificados para los usuarios y que tipo de certificado nos solicita Azure.

Uno de los requisitos que os había comentado que era “necesario”, es la de tener una PKI implementada en nuestro AD On-Premises. Esto es así, si queréis utilizar vuestros propios certificados digitales sin tener que solicitarlos a un tercero (DigiCert, Symantec, etc…). Yo lo haré utilizando una PKI de mi Active Directory, así no incurriré en costes innecesarios. Si queréis utilizar certificados auto firmados  aquí tenéis el dos scripts de PowerShell para generarlos:

Certificado Raíz

$cert = New-SelfSignedCertificate -Type Custom -KeySpec Signature `
-Subject “CN=P2SRootCert” -KeyExportPolicy Exportable `
-HashAlgorithm sha256 -KeyLength 2048 `
-CertStoreLocation “Cert:\CurrentUser\My” -KeyUsageProperty Sign -KeyUsage CertSign

Certificado de usuarios auto firmado

New-SelfSignedCertificate -Type Custom -DnsName P2SChildCert -KeySpec Signature `
-Subject “CN=P2SChildCert” -KeyExportPolicy Exportable `
-HashAlgorithm sha256 -KeyLength 2048 `
-CertStoreLocation “Cert:\CurrentUser\My” `
-Signer $cert -TextExtension @(“2.5.29.37={text}1.3.6.1.5.5.7.3.2”)

La fuente de estos dos scripts es la siguiente: https://docs.microsoft.com/es-es/azure/vpn-gateway/vpn-gateway-certificates-point-to-site

Si tenéis una PKI implementada, podéis exportar la clave pública del certificado raíz y solicitar los certificados para los usuarios, en mi caso es lo que haré. Pero además, como los usuarios no pueden solicitar ellos mismos los certificados (cuestiones claramente no técnicas) de usuarios os mostraré como un administrador puede hacerlo por ellos. Para esto, lo primero que es el administrador o usuarios que soliciten certificados en nombre de otros, deben tener permiso para ello. Dicho permiso se concede desde servidor de CA que tengamos desplegado, para ello desde la consola de la PKI podemos realizar dicha configuración. Una vez dentro del servidor de PKI, nos vamos a las propiedades de la CA y en la pestaña de Enrollment Agents tenemos que agregar el usuario o un grupo de seguridad (mejor) a los cuales les permitamos solicitar certificados en nombre de otros:

Antes de poder solicitar certificados en nombre de otros usuarios, debemos solicitar desde la sesión del usuario que hará dichas solicitudes un certificado “especial”: Enrollment Agent

Una vez que ya lo tenemos solicitado, ya podemos empezar a solicitar certificados en nombre de otros usuarios. El proceso es el siguiente, primero abrimos la consola de certificados de usuarios para ello desde Inicio – Ejecutar escribiremos certmgr.msc y se nos abrirá la consola del almacén de certificados de usuarios. Una vez dentro, nos vamos a PersonalCertificates en donde pulsaremos con el botón secundario del ratón y pulsamos en All TasksAvanced OperationsEnroll On Behalf Of

Pulsamos en Next

Pulsamos en Next, dejamos todo por defecto

Ahora es cuando primero nos solicitará que elijamos el certificados del Agente de Solicitudes, para ello pulsaremos en Browse…

Sí solo tenemos un único certificados del agente de inscripción pulsamos en OK, si tenemos varios, elegimos el adecuado y pulsamos en OK

Una vez elegido nos muestra su nombre y pulsamos en Next

A continuación tenemos que indicar que tipo de certificado queremos solicitar, en nuestro caso de usuario (User), lo marcamos y pulsamos en Next

Ahora debemos buscar el usuario al cual vamos a hacer la solicitud del certificado en su nombre, para ello pulsamos en Browse…

Buscamos al usuario en cuestión y una vez seleccionado volvemos a la ventana anterior, únicamente que ya con el usuario preparado, pulsamos en Next para iniciar la solicitud del certificado

En cuestión de segundos ya tendremos el certificado emitido, si queremos solicitar más certificados pulsaremos en Next User de lo contrario pulsamos Close

Los certificados que marco en amarillo son los certificados que he solicitado, son certificados diferentes usuarios.

Ahora que ya tenemos los certificados de usuario, tenemos que exportarlos con su clave privada y enviárselos a los usuarios para que los puedan instalar. El proceso de exportación de los certificados es muy sencillo, simplemente tenemos que pulsar con el botón  secundario del ratón encima de cada certificado y seguir los siguientes pasos: All TasksExport …

Pulsamos en Next

Marcamos que queremos exportar la clave privada y pulsamos en Next

Estas son las dos casillas que os recomiendo habilitar

Ahora como siempre, debemos especificar una contraseña para “proteger” el certificado y que nadie lo pueda importar sino sabes dicha contraseña:

Especificamos donde se almacenará dicho certificado en nuestro equipo

Pulsamos en Finish

Y ya tenemos nuestro certificado de usuario listo para hacérselo llegar a su dueño

Esto tenemos que hacer con todos los certificados de usuario que hayamos solicitado,  pero si bien es cierto, que también podemos hacer que el usuario lo solicite él sin nuestra intervención. En este caso, me ha parecido más interesante meter la figura del Agente de Inscripción. Pues ahora nos tocar exportar la clave pública del certificado raíz, el proceso de exportación es muy similar a  cualquier otro certificado. Para exportar la clave privada del certificado raíz de nuestra CA, podemos hacerlo desde cualquier equipo unido al dominio. Para ello, tenemos que ir a Inicio – Ejecutar y escribir certlm.msc y se nos abría la consola de certificados locales del equipo. Una vez dentro de la misma, nos vamos a la sección de Trusted Root Certification Authorities, buscamos el certificado raíz en cuestión y con el botón secundario del ratón nos mostrará las siguientes opciones que debemos ir eligiendo: All TasksExport…

Pulsamos en Next

Seleccionamos la opción Base-64 encoded X.509 (.CER) y pulsamos en Next

Pulsamos en Browse para elegir la ruta de exportación del certificado y pulsamos en Next

Para completar el proceso pulsamos en Finish

Pulsamos en OK y el proceso habrá terminado, ya tenemos el certificado raíz exportado en la ubicación que la hayamos indicado

Esta clave pública de este certificado raíz, es la que configuraré  en la parte de Azure, puesto que la clave pública del la CA que ha emitido los certificados de los usuarios. Lo primero que haré, será editar el fichero .cer de la clave pública del certificado con el notepad:

Ahora copiaremos el texto que tenemos entre —– BEGIN CERTIFICATE —– y —– END CERTIFICATE —–

Este texto será el que peguemos en la casilla de Datos del Certificado Público en la configuración de VPN P2S de Azure como os muestro a continuación en la sección de certificados (en la sección de nombre ponerle algo descriptivo, pero no tiene más validez que la informativa):

Una vez que hayamos pegado el texto en la casilla correspondiente, pulsamos en Guardar y simplemente tenemos que esperar unos segundos para que se complete la configuración:

Una vez que ya hemos finalizado la configuración en Azure, lo único que nos falta es descargar la el cliente VPN desde la misma web de configuración pulsando Descargar cliente VPN:

Por la parte de Azure esto es todo, ahora tenemos que enviarle el cliente VPN y los certificados correspondientes a los usuarios  y que hagan la instalación de ambas cosas (en el orden que quieran). Yo voy a mostraros como instalar el cliente VPN sin tener el certificado de usuario instalado, así podréis ver el error que le daría a los usuarios.

El proceso es muy sencillo, de hecho el cliente VPN “únicamente” configurar una conexión SSTP con Azure pero de forma transparente para el usuario. La instalación es como cualquier otra aplicación, dentro del fichero ZIP del cliente VPN que nos hemos descargado, tenemos diferentes versiones en función de nuestro sistema operativo (x86, x64), por lo que cada uno que instale la versión que le corresponde. Además, viene un fichero XML muy interesante … donde está la configuración que cliente VPN realizará en nuestro equipo. Y como “curiosidad”, fijaros en la sección en rojo, es la entidad de certificación que el servidor VPN (porque son servidores Windows con SSTP) está utilizando en su extremo:

Ahora, lo que toca es instalar el cliente VPN, como os comentaba hay dos versiones y en mi caso la versión es la x64,  únicamente debemos iniciar la instalación ejecutando el VpnClientSetupAmd64.exe

El UAC nos alertará que el ejecutable VpnClientSetupAmd64.exe quiere hacer cambios sobre nuestro equipo, claramente pulsamos en Si

Más de  lo mismo, pulsamos en Si

Se os aparecerán y desaparecerán algunas ventanas de líneas de comando (cmd.exe) y ya tendremos la configuración hecha en el equipo. Para verla, tenéis que ir a las conexiones VPN de vuestro equipo, el nombre con el que se creará será la de la red Virtual de Azure donde está situada vuestra puerta de enlace virtual:

 

Ahora únicamente tenemos que pulsar en Conectar para establecer el túnel VPN SSTP con Azure:

Ahora volvemos a pulsar en Conectar

Habilitamos la casilla de No volver a mostrar este mensaje para esta conexión y pulsamos en Continuar

Pulsamos en SI (esto sólo nos lo pedirá la primera vez que nos conectemos)

Pero … como os comentaba antes, no había instalado el certificado de usuario en el equipo donde he instalado el cliente VPN, por lo que nos dará el siguiente error.

Lo único que tenemos que hacer es importar el certificado de usuario, para ello desde Inicio – Ejecutar escribimos certmgr.msc:

Una vez dentro de la consola de certificados de usuario, nos vamos a la sección Personal – Certificados y pulsando con el botón secundario del ratón nos mostrará el siguiente menú, en el cual tenemos que pulsar en Todas las tareasImportar …

Pulsamos en Siguiente

Ahora buscamos el certificado que queremos importar (lo hemos tenido que copiar en nuestro equipo previamente) y pulsamos en Siguiente

Ahora nos solicita la contraseña que le habíamos puesto en el momento de la exportación, la introducimos y pulsamos en Siguiente

Dejamos el destino de la instalación del certificado por defecto y pulsamos en Siguiente

Ahora pulsamos en Finalizar para completar el proceso de importación del certificado de usuario

Y por último, una vez importante nos mostrará una ventana emergente que nos indicará el resultado del proceso, si todo ha ido bien,  nos mostrará el siguiente aviso: La importación se completó correctamente

Ahora vemos que en la consola de los certificados de usuario tenemos dos, el personal y el certificado raíz (esto es así porque en la exportación del certificado de usuario le hemos dicho que exporte todas las propiedades extendidas). Esto nos viene perfecto, porque al ser una CA de implementada en nuestro dominio, sólo por defecto los equipos del dominio confían en los certificados emitidos por dicha CA. De esta forma, aunque el equipo no esté en el dominio, ya tiene el certificado raíz de nuestra CA y no tendremos problemas con la confianza del certificado de usuario.

Por último, volvemos a conectarnos a la VPN y…

Ya estamos conectados sin problema!!!

Si ahora desde una línea de comando vemos que IP tiene nuestro equipo, veremos que tiene la IP local (192.168.2020.xxx) de la interface local del equipo y otra que es la que se correponde con una IP del Pool de los clientes VPN configurado en Azure.

Ahora os preguntaréis, como resolverá los nombres de los equipos que tenemos en Azure?  pues sencillo, utilizará los servidores DNS configurados en la red virtual que tenemos en Azure. Fijaros que ahora estoy lanzando un ping (no tiene porque responder los paquetes ICMP ECHO) y se resuelve perfectamente:

Si el equipo es Windows, podemos lanzar una conexión RDP y veremos que se establece sin problemas, como veis nos pide ya las credenciales de acceso al servidor.

Si tenemos claves y acceso para ello, pues ya estamos dentro del servidor de SQL (por ejemplo)

Fin … como veis es muy sencillo securizar nuestros acceso hacia Azure vía VPN y sobre todo la autenticación de nuestros usuarios utilizando nuestros propios certificados.

Como siempre, ahora os toca a vosotros probarlo!!!

Cómo convertir disc
Microsoft Teams, con
NO HAY COMENTARIOS

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