
Hoy veremos las capacidades de configuración de VPN que nos ofrece NSX Edge.
En general, podemos dividir las tecnologías de VPN en dos tipos clave:
- VPN de sitio a sitio. IPSec se usa con más frecuencia para crear un túnel seguro, por ejemplo, entre la red de la oficina principal y una red en una ubicación remota o en la nube.
- VPN de acceso remoto. Se utiliza para conectar a usuarios individuales a redes privadas de organizaciones a través de software de cliente VPN.
NSX Edge nos permite utilizar ambas opciones.
La configuración se realizará mediante un entorno de prueba con dos NSX Edge, un servidor Linux con el demonio y una computadora portátil con Windows para probar la VPN de acceso remoto.
IPsec
- En la interfaz de vCloud Director, vamos a la sección Administración y seleccionamos vDC. En la pestaña Gateways de Edge, elegimos el Edge que necesitamos, hacemos clic derecho y seleccionamos Servicios de Gateway de Edge.

- En la interfaz de NSX Edge, vamos a la pestaña VPN-IPsec VPN, luego a la sección Sitios de IPsec VPN y hacemos clic en + para agregar un nuevo sitio.

- Llenamos los campos necesarios:
- Enabled – activa el sitio remoto.
- PFS – garantiza que cada nueva clave criptográfica no esté relacionada con ninguna clave anterior.
- Local ID y Local Endpoint– dirección externa de NSX Edge.
- Local Subnets– redes locales que utilizarán IPsec VPN.
- Peer ID y Peer Endpoint – dirección del sitio remoto.
- Peer Subnets – redes que utilizarán IPsec VPN en el lado remoto.
- Encryption Algorithm – algoritmo de cifrado del túnel.

- Authentication – cómo autenticaremos al par. Se puede utilizar una clave precompartida o un certificado.
- Pre-Shared Key – indicamos la clave que se utilizará para la autenticación y debe coincidir en ambos lados.
- Diffie-Hellman Group – algoritmo de intercambio de claves.
Después de completar los campos necesarios, hacemos clic en Keep.

- Listo.

- Después de agregar el sitio, vamos a la pestaña Estado de activación y activamos el servicio IPsec.

- Una vez aplicados los ajustes, vamos a la pestaña Estadísticas → IPsec VPN y comprobamos el estado del túnel. Vemos que el túnel se ha levantado.

- Comprobemos el estado del túnel desde la consola del gateway de Edge:
- show service ipsec – verificar el estado del servicio.

- show service ipsec site – información sobre el estado del sitio y los parámetros acordados.

- show service ipsec sa – verificar el estado de la Asociación de Seguridad (SA).

- show service ipsec – verificar el estado del servicio.
- Verificación de conectividad con el sitio remoto:
root@racoon:~# ifconfig eth0:1 | grep inet inet 10.255.255.1 netmask 255.255.255.0 broadcast 0.0.0.0 root@racoon:~# ping -c1 -I 10.255.255.1 192.168.0.10 PING 192.168.0.10 (192.168.0.10) from 10.255.255.1 : 56(84) bytes of data. 64 bytes from 192.168.0.10: icmp_seq=1 ttl=63 time=59.9 ms --- 192.168.0.10 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 59.941/59.941/59.941/0.000 msArchivos de configuración y comandos adicionales para diagnóstico desde el servidor Linux remoto:
root@racoon:~# cat /etc/racoon/racoon.conf log debug; path pre_shared_key "/etc/racoon/psk.txt"; path certificate "/etc/racoon/certs"; listen { isakmp 80.211.43.73 [500]; strict_address; } remote 185.148.83.16 { exchange_mode main,aggressive; proposal { encryption_algorithm aes256; hash_algorithm sha1; authentication_method pre_shared_key; dh_group modp1536; } generate_policy on; } sainfo address 10.255.255.0/24 any address 192.168.0.0/24 any { encryption_algorithm aes256; authentication_algorithm hmac_sha1; compression_algorithm deflate; } === root@racoon:~# cat /etc/racoon/psk.txt 185.148.83.16 testkey === root@racoon:~# cat /etc/ipsec-tools.conf #! /usr/sbin/setkey -f flush; spdflush; spdadd 192.168.0.0/24 10.255.255.0/24 any -P in ipsec esp/tunnel/185.148.83.16-80.211.43.73/require; spdadd 10.255.255.0/24 192.168.0.0/24 any -P out ipsec esp/tunnel/80.211.43.73-185.148.83.16/require; === root@racoon:~# racoonctl show-sa isakmp Destination Cookies Created 185.148.83.16.500 2088977aceb1b512:a4c470cb8f9d57e9 2019-05-22 13:46:13 === root@racoon:~# racoonctl show-sa esp 80.211.43.73 185.148.83.16 esp mode=tunnel spi=1646662778(0x6226147a) reqid=0(0x00000000) E: aes-cbc 00064df4 454d14bc 9444b428 00e2296e c7bb1e03 06937597 1e522ce0 641e704d A: hmac-sha1 aa9e7cd7 51653621 67b3b2e9 64818de5 df848792 seq=0x00000000 replay=4 flags=0x00000000 state=mature created: May 22 13:46:13 2019 current: May 22 14:07:43 2019 diff: 1290(s) hard: 3600(s) soft: 2880(s) last: May 22 13:46:13 2019 hard: 0(s) soft: 0(s) current: 72240(bytes) hard: 0(bytes) soft: 0(bytes) allocated: 860 hard: 0 soft: 0 sadb_seq=1 pid=7739 refcnt=0 185.148.83.16 80.211.43.73 esp mode=tunnel spi=88535449(0x0546f199) reqid=0(0x00000000) E: aes-cbc c812505a 9c30515e 9edc8c4a b3393125 ade4c320 9bde04f0 94e7ba9d 28e61044 A: hmac-sha1 cd9d6f6e 06dbcd6d da4d14f8 6d1a6239 38589878 seq=0x00000000 replay=4 flags=0x00000000 state=mature created: May 22 13:46:13 2019 current: May 22 14:07:43 2019 diff: 1290(s) hard: 3600(s) soft: 2880(s) last: May 22 13:46:13 2019 hard: 0(s) soft: 0(s) current: 72240(bytes) hard: 0(bytes) soft: 0(bytes) allocated: 860 hard: 0 soft: 0 sadb_seq=0 pid=7739 refcnt=0 - Todo está listo, el VPN IPsec site-to-site está configurado y funcionando.
En este ejemplo, utilizamos PSK para la autenticación del par, pero también se puede optar por la autenticación mediante certificados. Para ello, debe ir a la pestaña de Configuración Global, habilitar la autenticación por certificados y seleccionar el propio certificado.
Además, en la configuración del sitio será necesario cambiar el método de autenticación.


Cabe destacar que la cantidad de túneles IPsec depende del tamaño del Edge Gateway desplegado (lea sobre esto en nuestro ).
SSL VPN
SSL VPN-Plus es una de las opciones de Remote Access VPN. Permite a usuarios remotos individuales conectarse de manera segura a redes privadas detrás del gateway NSX Edge. El túnel cifrado en el caso de SSL VPN-Plus se establece entre el cliente (Windows, Linux, Mac) y NSX Edge.
- Vamos a comenzar la configuración. En el panel de control de servicios de Edge Gateway, vamos a la pestaña SSL VPN-Plus, luego a Configuración del Servidor. Elegimos la dirección y el puerto en el que el servidor escuchará las conexiones entrantes, habilitamos el registro y seleccionamos los algoritmos de cifrado necesarios.

Aquí también se puede cambiar el certificado que utilizará el servidor.
- Una vez que todo esté listo, activamos el servidor y no olvidamos guardar la configuración.

- A continuación, necesitamos configurar un grupo de direcciones que otorgaremos a los clientes al conectarse. Esta red está separada de cualquier subred existente en su entorno NSX, y no necesita ser configurada en otros dispositivos en las redes físicas, excepto en las rutas que apuntan a ella.
Vamos a la pestaña Grupos de IP y presionamos +.

- Elegimos las direcciones, la máscara de subred y la puerta de enlace. Aquí también se pueden cambiar las configuraciones para los servidores DNS y WINS.

- El grupo resultante.

- Ahora agregaremos las redes a las que tendrán acceso los usuarios conectados a la VPN. Accedemos a la pestaña Redes Privadas y hacemos clic en +.

- Rellenamos:
- Red: la red local a la que tendrán acceso los usuarios remotos.
- Enviar tráfico, tiene dos opciones:
— a través del túnel: enviar tráfico a la red a través del túnel,
— evitar túnel: enviar tráfico a la red directamente sin pasar por el túnel. - Habilitar optimización TCP: marcar si se eligió la opción a través del túnel. Cuando la optimización está activada, se pueden indicar los números de puerto para los que es necesario optimizar el tráfico. El tráfico para los demás puertos de esta red en particular no será optimizado. Si no se indican números de puerto, el tráfico de todos los puertos será optimizado. Lea más sobre esta función en .

- A continuación, vamos a la pestaña Autenticación y presionamos +. Para la autenticación utilizaremos un servidor local en el mismo NSX Edge.

- Aquí podemos elegir políticas para generar nuevas contraseñas y configurar opciones para bloquear cuentas de usuario (por ejemplo, la cantidad de intentos fallidos al ingresar la contraseña).


- Dado que utilizamos la autenticación local, es necesario crear usuarios.

- Además de cosas básicas como nombre y contraseña, aquí podemos, por ejemplo, prohibir al usuario cambiar la contraseña o, por el contrario, obligarlo a cambiarla en su próximo inicio de sesión.

- Una vez que todos los usuarios necesarios han sido agregados, pasamos a la pestaña Paquetes de Instalación, hacemos clic en + y creamos el instalador que el empleado remoto descargará para su instalación.

- Hacemos clic en +. Elegimos la dirección y el puerto del servidor al que se conectará el cliente, y las plataformas para las que necesitamos generar el paquete de instalación.

A continuación, en esta ventana se pueden especificar los parámetros del cliente para Windows. Elegimos:- iniciar cliente al iniciar sesión – el cliente VPN se añadirá al inicio automático en la máquina remota;
- crear ícono en el escritorio – creará un ícono del cliente VPN en el escritorio;
- validación del certificado de seguridad del servidor – validará el certificado del servidor al conectarse.
La configuración del servidor ha finalizado.

- Ahora descargaremos el paquete de instalación que creamos en el último paso en la PC remota. Durante la configuración del servidor, indicamos su dirección externa (185.148.83.16) y puerto (445). Es a esta dirección a la que debemos acceder en el navegador web. En mi caso es :445.
En la ventana de inicio de sesión, es necesario ingresar las credenciales del usuario que creamos anteriormente.

- Después de iniciar sesión, se nos presenta una lista de los paquetes de instalación creados, disponibles para su descarga. Solo creamos uno, y lo descargaremos.

- Hacemos clic en el enlace y comienza la descarga del cliente.

- Descomprimimos el archivo descargado y ejecutamos el instalador.

- Después de la instalación, iniciamos el cliente, en la ventana de inicio de sesión hacemos clic en Iniciar sesión.

- En la ventana de verificación del certificado, seleccionamos Sí.

- Ingresamos las credenciales del usuario que creamos anteriormente y vemos que la conexión se ha completado con éxito.


- Verificamos la estadística del cliente VPN en la computadora local.


- En la línea de comando de Windows (ipconfig /all) vemos que ha aparecido un adaptador virtual adicional y hay conexión con la red remota, todo funciona:


- Y por último, la verificación desde la consola Edge Gateway.

L2 VPN
L2VPN será necesario cuando se necesite unir varias redes geográficamente
distribuidas en un solo dominio de difusión.
Esto puede ser útil, por ejemplo, al migrar una máquina virtual: al mover la VM a otra ubicación geográfica, la máquina mantendrá la configuración de las direcciones IP y no perderá la conectividad con otras máquinas que estén en el mismo dominio L2.
En nuestro entorno de prueba uniremos entre sí dos sitios, a los que llamaremos A y B. Contamos con dos NSX y dos redes enrutables creadas de forma idéntica, vinculadas a diferentes Edge. La máquina A tiene la dirección 10.10.10.250/24, la máquina B – 10.10.10.2/24.
- En vCloud Director, vamos a la pestaña Administración, ingresamos al VDC que necesitamos, vamos a la pestaña Org VDC Networks y agregamos dos nuevas redes.

- Elegimos el tipo de red enrutada y vinculamos esta red a nuestro NSX. Marcamos la casilla Crear como subinterface.

- Al final, deberíamos tener dos redes. En nuestro ejemplo, se llaman network-a y network-b con configuraciones idénticas de gateway y la misma máscara.


- Ahora pasemos a la configuración del primer NSX. Este será el NSX al que está vinculada la red A. Actuará como servidor.
Regresamos a la interfaz de NSX Edge. Vamos a la pestaña VPN → L2VPN. Activamos L2VPN, elegimos el modo de funcionamiento Servidor, en la configuración Global del Servidor indicamos la dirección IP externa de NSX, donde se escuchará el puerto para el túnel. Por defecto, el socket se abrirá en el puerto 443, pero se puede cambiar. No olvidemos seleccionar la configuración de cifrado para el túnel futuro.

- Vamos a la pestaña Server Sites y añadimos un par.

- Activamos el par, asignamos un nombre, una descripción, si es necesario, y definimos un nombre de usuario y una contraseña. Estos datos nos serán necesarios más adelante al configurar el sitio del cliente.
En Egress Optimization Gateway Address, asignamos la dirección del gateway. Esto es necesario para evitar conflictos de direcciones IP, ya que el gateway de nuestras redes tiene la misma dirección. Luego hacemos clic en el botón SELECT SUB-INTERFACES.

- Aquí seleccionamos la subinterface necesaria. Guardamos la configuración.

- Vemos que en la configuración apareció el sitio del cliente recién creado.

- Ahora pasemos a la configuración de NSX desde el lado del cliente.
Accedemos al lado B de NSX, vamos a VPN -> L2VPN, activamos L2VPN, configuramos el modo L2VPN en modo cliente. En la pestaña Client Global, asignamos la dirección y el puerto de NSX A, que previamente indicamos como Listening IP y Port en el lado del servidor. También es necesario establecer configuraciones de cifrado idénticas para que coincidan al levantar el túnel.

Desplazamos hacia abajo, seleccionamos el subinterfaz a través de la cual se construirá el túnel para L2VPN.
En Egress Optimization Gateway Address asignamos la dirección del gateway. Establecemos el user-id y la contraseña. Elegimos la subinterfaz y no olvidamos guardar la configuración.
- En efecto, eso es todo. Las configuraciones del lado del cliente y del servidor son prácticamente idénticas, con excepción de algunos detalles.
- Ahora podemos verificar que nuestro túnel está funcionando, yendo a Statistics -> L2VPN en cualquier NSX.

- Si ahora accedemos a la consola de cualquier Edge Gateway, veremos en cada uno de ellos las direcciones de ambas VM en la tabla arp.

Eso es todo sobre VPN en NSX Edge. Pregunten si hay algo que no quedó claro. También esta es la última parte de la serie de artículos sobre el funcionamiento con NSX Edge. Esperamos que hayan sido útiles 🙂
Fuente: habr.com























































