[Tutorial] Microsoft Azure | Configuración de Red Virtual y VPN Site-To-Site con Mikrotik paso a paso
Las Redes Virtuales de Azure (Azure Virtual Networks) permiten crear y configurar segmentos de red internos en Azure, permitiendo interactuar entre equipos virtuales y sitios web a través de un esquema de redes y subredes de comunicación aislada dentro del tenant de una organización.
Además, las Redes Virtuales de Azure permiten extender nuestra red privada local (Local Area Network) hacia la nube de -Azure a través de una VPN Site-To-Site basada en IPSec. Esto agrega la posibilidad de integrar en una conexión transparente infraestructura local con infraestructura de Azure posibilitando escenarios de resguardo, recuperación hasta escenarios donde ciertos servicios críticos estén en la nube y sean accesibles para toda la organización por un canal seguro de comunicación a través de Internet.
En esta publicación vamos a conocer, paso a paso, como configurar una Red de Azure, crear Subredes, y permitir tener una VPN Site-To-Site desde nuestra organización local hacia dicha red para interconectar servicios. En este ejemplo, nuestro EndPoint local será un Mikrotik.
[toc]
Introducción
Objetivo
Esta publicación tiene como objetivo demostrar a Organizaciones y Administradores de IT cómo pueden generar una Red en Azure para que Equipos Virtuales y Sitios Web puedan tener direcciones internas y evitar “bindings públicos”.
Adicionalmente, también tiene como objetivo demostrar cómo es una configuración modelo de una VPN Site-To-Site entre un sitio local y Azure, en pos de extender la infraestructura local hacia la nube y por ende poder extender la llegada de servicios locales hacia Azure.
Audiencia
Este documento está dirigido a Consultores, Profesionales IT y personas que desarrollan tareas de Consultoría, Administración y Soporte o que simplemente están interesados en leer e investigar sobre la tecnología alcanzada por esta publicación.
Comentarios y Corrección de Errores
Hemos realizado nuestro mejor esfuerzo para no cometer errores, pero al fin y al cabo somos seres humanos. Si deseás reportar algún error o darnos feedback de qué te pareció esta publicación, por favor no dejes de comunicarte con nosotros a través de correo electrónico a la siguiente dirección: info@tectimes.net.
Alcance Técnico
Entender cuál es el alcance de la publicación nos ayuda a tener una expectativa real de lo que encontraremos en la misma, de modo tal que quién lo lee no espere ni más ni menos de lo que encontrará. Vamos a describir el objetivo técnico, tecnologías alcanzadas, escenario de trabajo y plan de trabajo en alto nivel.
Objetivo Técnico
El objetivo técnico de este tutorial es:
-
Crear una Red de Azure (Azure Network) con un segmento de red de 16 bits:
- Vamos a trabajar en crear una red con el Espacio de Direcciones 10.100.0.0/16
-
Crear Subredes de ejemplo basadas en la Red de Azure anteriormente creada:
- 10.100.0.0/24 llamada Subnet-1.
- 10.100.1.0/24 llamada Subnet-2.
- 10.100.2.0/29 llamada Gateway.
- Agregar a la Red de Azure anteriormente creada la posibilidad de marcado VPN y configurar una VPN Site-To-Site entre una infraestructura local con un EndPoint Mikrotik y la Red de Azure creada.
Tecnologías Alcanzadas
Las tecnologías alcanzadas por esta publicación son las siguientes:
- Microsoft Azure.
- Redes de Azure.
- EndPoint Mirkotik.
Escenario de Trabajo
El escenario de trabajo que da marco a esta publicación es el siguiente:
- Suscripción activa de Azure con crédito suficiente para poder generar el laboratorio.
- Un EndPoint Mikrotik con capacidades de marcado VPN basado en IPSec.
- Conexión a Internet.
Plan de Trabajo
El plan de trabajo a desarrollar en esta publicación es el siguiente:
- Creación de una Red Virtual en Azure y Configuración de SubRedes.
- Creación de un Gateway para conectividad VPN Site-To-Site.
- Configuración de un EndPoint local con sistema Mikrotik.
- Prueba de Conectividad.
Desarrollo
Vamos a recorrer los pasos necesarios para generar una Red de Azure, permitir marcado VPN Site-To-Site a dicha red y, por último, configurar un EndPoint Mikrotik para conectarse a dicha red desde una infraestructura local utilizando Internet. ¡Manos a la obra!
Creación de Red y VPN Site-To-Site en Azure
Debemos comenzar creando una Red en Azure. Esta Red tendrá las definiciones de ámbito y subredes necesarias para la organización, y además tendrá los parámetros configurados para indicar que queremos llegar a ella mediante marcado VPN.
En un Proyecto de Implementación de Azure en una organización, es vital que durante la Fase de Planeamiento se realice el relevamiento y diseño necesarios y éstos sean lo suficientemente consistentes para que las definiciones de Red contengan todos los casos de uso. Un error en el Diseño de una Red en Azure no es una catástrofe, pero si nos genera los suficientes dolores de cabeza y posibles disrupciones de servicio para corregirlos. ¡Especial Atención a este punto!
Como veníamos comentando, la Red en Azure tendrá un ámbito, y dentro de él podremos configurar las subredes que necesitemos. Durante este proceso de creación, además, debemos indicar que tipos de Marcados VPN soportaremos: Site-To-Site y/o Point-To-Site. Esta publicación cubre el primer escenario, donde conectamos una organización local a la Red de Azure no necesitando marcados de cada uno de los equipos que se conectarán (desde la infraestructura local).
Inicio del Asistente
Desde el Panel de Control de Azure, lo primero que debemos hacer es generar una nueva red virtual en el nodo “Networks”. En caso que no tengamos ninguna creada, la pantalla será muy similar a la siguiente:
Los pasos necesarios para completar el asistente van a depender de las funcionalidades seleccionadas durante el proceso de creación de la red. En el primer paso vamos a tener que identificar el nombre de nuestra red y la Región. Hasta no hace mucho tiempo, aquí se podía elegir un “Grupo de Afinidad”, no obstante esto fue deprecado en el Panel de Control en reemplazo con las Redes de Azure Regionales (Regional Network in Azure):
Configuración de Servidores DNS y Tipo de Conectividad VPN
En la siguiente pantalla, el asistente nos preguntará sobre dos aspectos imporantes:
- La definición de servidores DNS: en el caso que lo dejemos en blanco, la Red asignará (en el momento de asignar direcciones IP a equipos virtuales) direcciones de DNS propias de Azure. En el caso que querramos utilizar las propias (on-premise o que tendremos en Azure con el rol de DNS Server) debemos indicarlas aquí.
- La definición de Conectividad VPN: podremos elegir entre Conectividad Point-To-Site, Site-to-Site o ambas.
En el caso de este tutorial, vamos a indicar tres servidores DNS (equipos que existirán en Azure y un equipo local) y vamos a seleccionar la opción de “Configure a Site-To-Site VPN”:
Configuración de VPN Point-To-Site y Dominio de Encripción
En el próximo paso, y como hemos seleccionado conectividad VPN Site-To-Site, nos aparecerán los siguientes parámetros a configurar:
- Nombre de la Red Local: es un nombre para identificar a nuestra red local on-premise.
- Dirección IP del Dispositivo VPN que utilizaremos: IP pública de nuestro Mikrotik, en este caso, o del dispositivo que realice el marcado VPN y la IP Pública con la que saldrá y se presentará.
- Espacio de Direcciones de nuestra Red Local: aquí debemos identificar inicio y fin de nuestra red local, o el segmento de nuestra red local que permitiremos comunicación con Azure mediante la VPN. Esto es conocido como “Dominio de Encripción”, es decir todas las redes detrás del Firewall que rutearemos a través del túnel VPN.
En nuestro caso (para este ejemplo) nos quedaría de la siguiente manera:
Configuración de Espacios de Direcciones de la Red en Azure
Avanzados en el asistente, llegó el momento de identificar el Espacio de Direcciones de la red que estamos creando en Azure, como así también las Subnets que vamos a querer configurar (por supuesto, dentro del ámbito de la red creada).
En nuestro caso vamos a generar un Espacio de Direcciones 10.100.0.0/16 que será el espacio de direcciones que luego utilizaremos para generar 3 subnets:
Las subnets generadas las podremos utilizar para alojar equipos y sitios. El diseño de las subredes va a depender exclusivamente de las necesidades de negocio y técnicas asociadas a la solución. En nuestro caso hemos generado dos subredes de ejemplo y una tercera que nos sirve para ruteos del Gateway:
- 10.100.0.0/24 llamada Subnet-1: la podríamos utilizar, por ejemplo, para alojar controladores de dominio y servicios core de infraestructura (solo como ejemplo).
- 10.100.1.0/24 llamada Subnet-2: la podríamos utilizar para servidores de desarrollo y test (por ejemplo).
- 10.100.2.0/29 llamada Gateway: esta red es creada en forma obligatoria y necesita ser (por lo menos) /29. Es una subred utilizada por Azure para resolver aspectos de ruteo del Gateway que necesitamos para poder habilitar el marcado VPN.
Una vez completados todos los pasos, tendremos la red creada y lista para ingresar y continuar configurando.
Creación de Gateway para conectividad VPN Site-To-Site
Una vez creada la Red en Azure, e ingresando a la misma mediante el Panel de Control, vamos a tener que proceder a crear el Gateway. Para ello en la sección “Redes” vamos a entrar a la red creada hace minutos para configurar el Gateway:
El Gateway será el punto de contacto para el marcado VPN de nuestro dispositivo local y tendrá una dirección IP pública. Este será el look & feel de la red sin el Gateway creado:
Vamos a hacer clic en “Create Gateway” a través del botón inferior de la pantalla, y seleccionaremos el tipo de enrutador Estático. En el caso que quisiéramos elegir el tipo de enrutador dinámico, debemos estar seguros que nuestro dispositivo de marcado VPN on-premise lo soporte:
La creación del Gateway puede durar varios minutos e inclusive un par de horas, en caso que los servidores de Azure estén saturados. No obstante, normalmente tarda entre 30 y 40 minutos la creación del Gateway. Una vez generado, vamos a observar que tenemos visibilidad de la Dirección IP pública de dicho enrutador:
Obtención de la Clave para Enrutador Local
Una vez creado el Gateway, debemos obtener el “secret” que Azure pone a disposición para que utilicemos en nuestro enrutador local (en el caso de esta publicación será el Mikrotik). Para ello hacemos clic en “Manage Key”:
Allí tendremos la posibilidad de copiar al portapapeles la clave que utilizaremos, en el próximo paso, en nuestro enrutador local:
Ya hemos terminado con todas las configuraciones (iniciales) en la nube de Azure. Ahora llegó el momento de trabajar en nuestra infraestructura local para que, finalmente, podamos configurar la VPN Site-To-Site correctamente.
Configuración de EndPoint On-Premise (Mikrotik)
Vamos a proceder a realizar las configuraciones necesarias en nuestro dispositivo local. Microsoft provee una lista de dispositivos de marcado VPN compatibles con Azure. En nuestro caso, utilizaremos un dispositivo que no figura en dicha lista: Mikrotik.
Vamos a demostrar cómo realizar las configuraciones para este marcado VPN utilizando WinBox, que es la interface visual basada en Windows para administrar nuestro EndPoint. ¡Manos a la obra!
Configuración de IPSec
Los primeros aspectos que debemos configurar son los relacionados a IPSec dentro de Mikrotik. Ya logueados en el WinBox, vamos a ir a “IP / IPSec”:
Configuración de Peer
Allí vamos a ir a la solapa “Peers” y agregaremos un nuevo Peer:
Allí vamos a cargar los siguientes parámetros:
- Address: Dirección IP Pública del Gateway de Azure.
- Port: 500
- Auth. Method: pre shared key
- Secret: el Key que obtuvimos desde el Gateway de Azure.
- Exchange Mode: main
- Send Initial Contact: habilitado.
- NAT Traversal: habilitado.
- My ID User FQDN: Dirección IP Pública del EndPoint local.
- Proposal Check: obey
- Hash Algorithm: sha
- Encryption Algorithm: aes-128
- DH Group: modp 1024
- Generate Policy: lo dejamos deshabilitado.
- El resto de las opciones la dejamos tal cual vienen (revisar, no obstante, que no cambie el valor predeterminado).
Las configuraciones deberían quedar así:
Configuración de Policie
Una vez creado el Peer, vamos a crear una Policy. Para ello en la misma ventana de IPSec vamos a “Policies” y agregamos una nueva:
Vamos a generar una política IPSec con los siguientes parámetros:
- Src. Address: espacio de direcciones local. En nuestro caso, la red a la que le vamos a permitir interactuar con Azure es la 10.200.0.0/16, la cual es nuestra LAN.
- Dst. Address: espacio de direcciones en Azure, que creamos en pasos anteriores. En nuestro caso es la 10.100.0.0/16.
Como podemos observar, estamos ingresando los datos (tal cual hicimos en Azure con la red local) del Espacio de Direcciones de Azure para que la política entienda en qué casos debe generar la encriptación de paquetes y enviarlos por dicho túnel:
Y hablando de encripción, en la solapa “Action” debemos indicar la acción de esta política IPSec:
- Action: Encrypt.
- Level: Require.
- IPSec Protocols: esp
- Tunnel: habilitado.
- SA Src. Address: indicamos la dirección IP Pública de nuestro EndPoint on-premise.
- SA Dst. Address: en nuestro caso lo dejaremos en 0.0.0.0 indicando todas las redes. No obstante, en otras implementaciones este punto podría ser revisado.
- Proposal y Priority: dejaremos los valores predeterminados, solo porque no tenemos otras políticas de encriptación IPSec. En otras implementaciones debería ser revisado (en el caso que existan más).
Los valores deberían quedar como los siguientes:
Configuración de Proposal
Por último, vamos a revisar los Proposals de IPSec que se han configurado. Vamos a notar uno pre-existente en la configuración como el siguiente:
Vamos a revisar que los parámetros de configuración sean los siguientes:
- Auth. Algorithms: sha1
- Encr. Algorithms: aes-128
- PFS Group: modp 1024
El Proposal debería quedar en forma gráfica de la siguiente manera:
Con estas configuraciones hemos finalizado la parte de “IPSec” en nuestro Mikrotik. Tengamos en cuenta que si estamos trabajando con otro dispositivo que no sea Mikrotik, los parámetros serán (salvando diferencias propias de la marca) muy similares.
Avancemos ahora con las reglas de Firewall locales necesarias. ¡Ya casi terminamos!
Configuración de Reglas de Firewall
Vamos a generar las reglas de Firewall necesarias para que podamos generar el túnel IPSec entre nuestra red local y Azure. Conceptualmente, no generaremos filtros o reglas de Firewall especiales que no sean las de aceptar los tráficos entrante y saliente desde / hacia la red de Azure. En otras implementaciones productivas debemos revisar este punto, dado que para Seguridad Informática puede ser de gran valor (o un gran requerimiento) tener filtrados específicos.
Configuración de Reglas de Firewall
Vamos a ir a “IP / Firewall” en nuestro WinBox del Mikrotik:
En la solapa “Filter Rules” vamos a generar una nueva regla de filtrado:
Nuestra regla de filtrado tendrá los siguientes parámetros:
- Chain: input
- Src Address: IP Pública de nuestro Gateway de Azure.
- Action: Accept
Así quedará la solapa “General”:
Y la solapa Advanced debería quedar así:
Notaremos la regla de Firewall creada y que ya forma parte del listado de reglas:
Configuración de Reglas de NAT
Ahora vamos a generar una regla de NAT:
Generaremos la Regla NAT con los siguientes parámetros:
- Src. Address: Espacio de Direcciones de la red local. En nuestro caso: 10.200.0.0/16
- Dst. Address: Espacio de Direcciones de la Red de Azure. En nuestro caso: 10.100.0.0/16
- Action: Accept.
La solapa “General” debería quedar de la siguiente manera:
La solapa “Action” debería quedar de la siguiente manera:
Haremos exactamente otra regla de NAT pero en orden inverso:
- Src. Address: Espacio de Direcciones de la Red de Azure. En nuestro caso: 10.100.0.0/16
- Dst. Address: Espacio de Direcciones de la red local. En nuestro caso: 10.200.0.0/16
- Action: Accept.
Esto generará dos reglas (en total) que deberían tener el siguiente aspecto gráfico:
Con esto hemos terminado todas las configuraciones, en Azure y Locales, para que nuestra VPN Site-To-Site funcione. ¡Vamos a comprobarlo!
Conexión de la VPN Site-To-Site con Azure
Vamos a comprobar, desde el Panel de Control de Azure, que la VPN en pocos minutos va a figurar como Conectada:
En el caso que esto no suceda (y el Gateway y la VPN no figuren enlazados) vamos a tener que realizar troubleshooting para identificar si todas las configuraciones son adecuadas y correctas, y por otro lado comprobar que no tengamos restricciones de marcados VPN en el caso que delante de nuestro EndPoint local tengamos otros dispositivos.
Conclusiones
Hemos podido recorrer una configuración paso a paso (y de punta a punta) para generar tanto una red en Azure como para habilitar dicha red con marcado VPN Site-To-Site. En este caso hemos trabajado con un dispositivo local llamado “Mikrotik”, no obstante son muchos los dispositivos que (oficial y no oficialmente) trabajan con Azure en términos de marcado VPN.
La Red de Azure nos permite generar un entorno interconectado de dispositivos entre equipos virtuales, por ejemplo, dentro de Azure. Esto nos da mucha flexibilidad si queremos, por ejemplo, levantar un servicio de directorio (ADDS) u otras soluciones de infraestructura.
Si al punto anterior le sumamos el marcado VPN, tenemos entre manos la posibilidad de extender hacia la nube nuestra infraestructura local como LAN, y de esta forma extender servicios como si “estuvieran en nuestra LAN”.
Esperamos que este tutorial les haya ayudado a comprender el proceso de configuración de redes en Azure como también de VPN Site-To-Site. ¡Nos leemos pronto!
Referencias y Links
- Virtual Network FAQ: https://msdn.microsoft.com/en-us/library/azure/dn133803.aspx
- About VPN Devices for Virtual Network: https://msdn.microsoft.com/en-us/library/azure/jj156075.aspx
- New Windows Azure Network Security Whitepaper: http://azure.microsoft.com/blog/2014/01/07/new-windows-azure-network-security-whitepaper/