Creando una VPN Point-To-Site en Windows Azure

0-Logo

¡Hola a todos!

Octubre, temporada nueva y qué mejor forma de empezarla que hablando sobre Windows Azure y sus redes ¿?

Nosotros, que somos de IT, a veces nos encontramos con unas barreras de hardware tremendas para poder probar las nuevas betas de las tecnologías con las que trabajamos en nuestro día a día… Imaginémonos que queremos probar un System Center, ¿habéis visto los requerimientos de hardware?

Una locura.

Pero tranquilos, don’t panic, existe una solución conocida ya por todos que nos salvará de preparar toda la infraestructura física, Windows Azure.
Hay muchas formas para plantear el escenario deseado, a continuación os expongo uno sencillito:

Queremos montar un System Center y conectarlo con nuestras máquinas cliente que tenemos en casa, que pueden ser 2 por ejemplo.

Nos montamos toda la infraestructura en un servidor de Azure y creamos una red virtual desde el portal de management de Azure que conecte la nube con nuestra red de casa.

 

¿Qué vamos a necesitar para montar esta VPN?

  • Deberemos crear la VPN y la puerta de enlace de la misma.
  • Crear los certificados.
  • Configurar los clientes para conectarlos a la VPN.


Para montar la VPN desde el portal

Nos dirigimos al portal de administración de azure y una vez ahí, nos fijamos en la lista que encontramos en la izquierda hasta encontrar la pestaña “Networks”, la clicamos.

Panel lateral Azure

Panel lateral Azure

En este menú nos aparecerán todos los servicios referentes a las redes creadas en Windows Azure, por defecto, si no hemos creado nada, no nos aparecerá nada por lo que tendremos que pulsar sobre el botón “New” > “Network Services” > “Virtual Network” > “Custom Create”.

Creando el servicio

Creando el servicio

A continuación nos aparecerá el menú para configurar y dar valores a nuestra red, nos pedirá un nombre, la región de nuestra red, un grupo de afinidad y el nombre del mismo. El grupo de afinidad nos irá bien para juntar los servicios que vayamos a usar con otros que tengamos en el mismo datacenter.

3 Rellenando campos

Creando la VPN

En el siguiente paso nos pide que añadamos algún servidor DNS (no es obligatorio) pero si disponemos de alguno que queramos añadir, ahora sería el momento.

Además, en esta pantalla es donde se decide entre crear una conexión Point-To-Site, Site-To-Site, las dos o ninguna. En nuestro caso como hoy hablamos de la Point-To-Site, seleccionaremos su checkbox y seguiremos adelante.

Creando la VPN - DNS

Creando la VPN – DNS

Ahora vamos a tener que configurar la subred, si que los valores por defecto no nos vienen bien o queremos segmentar un poco más la subred en función de nuestras necesidades.

Creando la VPN - CIDR

Creando la VPN – CIDR

Por defecto, si no hemos creado ninguna subred nosotros, Azure nos creará una subred:

Creando la VPN - CIDR

Creando la VPN – CIDR

Si intentamos seguir adelante sin crear la subred para la puerta de enlace nos dará error, algo así como:

Creando la VPN - Error CIDR

Creando la VPN – Error CIDR

Por lo que vamos a tener que crearla pulsando sobre “Add Gateway subnet”, una vez hecho veremos lo siguiente:

VPN creada

VPN creada

Todo perfecto, subredes creadas y disponemos de una subred para la puerta de enlace, ya podemos proceder a seguir adelante. Podremos ver que se acaba el wizard de creación, cosa que querrá decir que ya se ha enviado la orden a Azure para que se nos cree lo que le dijimos.

Lista Networks

Lista Networks

Con la VPN creada nos falta crear la puerta de enlace en el portal de management. Para ello, accedemos a Networks > Seleccionamos la red que acabamos de crear y nos dirigimos a la pestaña “Dashboard”.

Una vez en Dashboard, deberemos pulsar sobre “Create Gateway” botón que se encuentra en la parte inferior-central de la página.

Creando Gateway

Creando Gateway

Proceso de creación

Proceso de creación

Tardará un rato hasta que se nos genere la IP de la Gateway, así que podemos ir adelantando creando los certificados.

Para crear los certificados usaremos la herramienta makecert, si somos usuarios de visual studio, podremos acceder a esa herramienta desde el VS2012 Command Prompt, sino, podemos descargarnos el SDK de Azure y ahí lo encontraremos.

Necesitaremos dos certificados, el certificado root, que subiremos al panel de Azure y el del cliente.

Para crear el certificado root, abriremos el Command Prompt como administrador, por si acaso, iremos hasta el directorio en el que nos interese guardar los certificados que crearemos y tecleamos lo siguiente:

makecert -sky exchange -r -n "CN=<Nombre_Certifiado_Root>" –pe -a sha1 -len 2048 -ss My

Si alguien tiene dudas sobre los atributos de MakeCert o se lo quiere hacer a su gusto, según sus necesidades, aquí os dejo un enlace con la ayuda del comando: MakeCert

Ahora que tenemos el certificado root, toca crear el del cliente y para ello, escribiremos lo siguiente:

makecert.exe -n "CN=<CertificadoCliente>" -pe -sky exchange -m 96 -ss My -in "<Nombre_Certifiado_Root>" -is my -a sha1

Podemos comprobar que los certificados se han creado correctamente con la herramienta certmgr.

Nota: Es preferible usar un solo certificado cliente por cada máquina que vaya a conectarse.

 

Una vez creados los certificados, los extraemos para poder subirlos/instalarlos en sus sitios respectivamente.

Para ello, usaremos la herramienta certmgr.msc; encontraremos los certificados en la carpeta personal.

Lista certificados

Lista certificados

Cuando hayamos localizado los certificados, empezaremos con el “root”, que será el que vamos a subir a Azure. El procedimiento es muy sencillo y repetitivo, clicaremos con el botón derecho sobre el certificado root en cuestión > All tasks > Export…

Exportando certificados

Exportando certificados

Cuando exportemos el certificado Root, es importante que no exportemos la “private key”.
Deberemos guardar el nombre del certificado como *.cer.

Certificado Root

Certificado Root

Justo después de este paso, nos pedirá que seleccionemos entre las distintas opciones de formato que tenemos disponibles, acorde con su encriptación, en cualquier caso como dije unas líneas más arriba, debemos seleccionar el .cer .

Por último, después de elegir la localización de la carpeta donde vamos a guardar el certificado, veremos este dialogo:

Exportación finalizada

Exportación finalizada

El procedimiento para exportar el certificado del cliente es exactamente lo mismo, pero vamos a tener en cuenta que aquí sí que debemos exportar la “private key” y que el formato deberá ser *.pfx.

Exportación certificado cliente

Exportación certificado cliente

Exportación certificado cliente

Exportación certificado cliente

Debo señalar que después de seleccionar el formato de salida de nuestro certificado, nos aparecerá la opción de añadirle contraseña para que el usuario poseedor del certificado, cuando lo intente instalar le pida una contraseña, por razones de seguridad obvias, lo recomiendo.

Password Certificado Cliente

Password Certificado Cliente

Fin exportación

Fin exportación

¡Ahora ya tenemos los certificados Ready to upload/install!

Para subir el certificado root vamos a ir nuevamente al “panel de Azure > Networks > Seleccionamos nuestra red > Certificates” y veremos que nos pide subir un certificado.

Subiendo el certificado Root

Subiendo el certificado Root

Clicamos sobre “Upload a root certificate” y nos saldrá un dialogo como el que os muestro a continuación, buscamos la ruta donde lo tengamos y aceptamos.

Buscando certificado Root

Buscando certificado Root

Una vez subido nos aparecerá por pantalla:

Certificado subido

Certificado subido

Nos falta instalar el certificado del cliente sobre nuestra máquina, para ello, buscamos el certificado, pulsamos dos veces sobre el mismo, escribimos la contraseña y listo.

Instalando certificado cliente

Instalando certificado cliente

Ahora ya sólo nos queda crear y descargar el paquete de configuración que nos genera Azure desde su portal de management. Para poder crearlo y descargarlo, nos desplazaremos hasta la pestaña Dashboard de Networks. (“Networks > Seleccionamos nuestra red > Dashboard”).

Deberemos fijarnos en la parte de la derecha de la pantalla que nos da la opción de descargar el client VPN Package, seleccionamos el que nos interese en función de nuestra arquitectura.

Descarga paquete configuración VPN

Descarga paquete configuración VPN

Cuando lo tengamos descargado, lo ejecutamos pese a las advertencias de seguridad.

Instalando config pack

Instalando config pack

Una vez instalado, si nos dirigimos a nuestras redes, tendremos la opción de conectarnos a la VPN que hemos creado.

Conectando

Conectando

Ya no hay excusa para no usar Windows Azure :)

¡Espero que os sea de utilidad!

Héctor Martínez Tobar
@hmartineztobar

  • Pingback: Creando una VPN Point-To-Site en Windows Azure ← Apuntes Técnicos()

  • Pingback: Bitacoras.com()

  • Pingback: Creando una VPN Point-To-Site en Windows Azure | Apuntes técnicos()

  • Pingback: Creando una VPN Point-To-Site en Windows Azure | Apuntes técnicos()

  • Guest

    Hector, gracias por la explicación, soy nueva en el uso de Azure y tengo algunas dudas, ¿es posible utilizar los mismos certificados para redes distintas?

    • Hola!

      No lo he probado, pero la teoría y la lógica me dicen que no puedes usar los mismos certificados para redes distintas, como bien dice la palabra, cada certificado, certifica cada red.

      Un saludo,

      Héctor

  • Lluis

    Hola Hector!

    Muy buen tutorial! Una preguntita que tengo, como podría hacer que mi MV en Azure se conectara a mi Active Directory de mi red local después de montar la VPN???

    Muchas Gracias,

    Lluis

  • Pablo García

    Yo he probado lo que explicas aquí y funciona. Pero yo tengo un problema, yo quiero unir mi portátil a mi DC en Azure y claro con esto no puedo configurar el TCP/IP de mi conexión y no puedo logearme contra el DC porque no puedo poner que el primer DNS apunte le apunte desde mi Portatil.

  • Daniel Luján

    Buenas Hector!

    Muchas gracias por el tutorial!, he podido montar el VPN entre un servidor en Azure y otro físico en nuestras instalaciones, Solo anotar que aunque no lo expliques ahi, yo instale el certificado cliente tanto en el Azure, como en el servidor físico y corrí el VPN package en ambos también.