Túnel IPSec entre Strongswan detrás de NAT y VMWare NSX Edge

Por diversas razones, fue necesario organizar una conexión VPN entre la red en VMWare Cloud Director y una máquina Ubuntu separada en la nube. Esta nota no pretende ser una descripción completa, es simplemente un pequeño how-to.

Túnel IPSec entre Strongswan detrás de NAT y VMWare NSX Edge

En la red, se encontró un único artículo de 2015 sobre este tema «Site to Site IPSEC VPN between NSX Edge and Linux strongSwan».

Desafortunadamente, no se pudo usar directamente, ya que se deseaba un cifrado más seguro que un certificado autofirmado, y además, la configuración descrita no funcionaría detrás de un NAT.

Por lo tanto, tuve que sentarme y revisar la documentación.

Tomé como base una configuración que he estado usando durante mucho tiempo, que permite la conexión desde prácticamente cualquier sistema operativo, y simplemente añadí un fragmento que permite conectarse al NSX Edge.

Dado que la instalación y configuración completa del servidor Strongswan van más allá del alcance de esta nota, me permitiré referirme a un buen material sobre este tema.

Así que pasemos directamente a la configuración.

El esquema de conexión será el siguiente:

Túnel IPSec entre Strongswan detrás de NAT y VMWare NSX Edge

por el lado de VMWare la dirección externa 33.33.33.33 y la red interna 192.168.1.0/24
por el lado de Linux la dirección externa 22.22.22.22 y la red interna 10.10.10.0/24
también será necesario configurar un certificado de Let's encrypt para la dirección vpn.linux.ext
PSK de ambos lados: ChangeMeNow!

Configuración desde NSX Edge:

Texto

Enabled: yes
Enable perfect forward secrecy (PFS): yes
Name: VPN_strongswan (cualquiera, a tu elección)
Local Id: 33.33.33.33
Local Endpoint: 33.33.33.33
Local Subnets: 192.168.1.0/24
Peer Id: vpn.linux.ext
Peer Endpoint: 22.22.22.22
Peer Subnets: 10.10.10.0/24
Encryption Algorithm: AES256
Authentication: PSK
Pre-Shared Key: ChangeMeNow!
Diffie-Hellman Group: 14 (2048 bit — un compromiso aceptable entre velocidad y seguridad. Pero si lo deseas, puedes poner uno mayor)
Digest Algorithm: SHA256
IKE Option: IKEv2
IKE Responder Only: no
Session Type: Policy Based Session

Capturas de pantalla
Túnel IPSec entre Strongswan detrás de NAT y VMWare NSX Edge
Túnel IPSec entre Strongswan detrás de NAT y VMWare NSX Edge

Configuración desde Strongswan:

ipsec.conf

# /etc/ipsec.conf
config setup

conn %default
	dpdaction=clear
	dpddelay=35s
	dpdtimeout=300s

	fragmentation=yes
	rekey=no

	ike=aes256gcm16-aes256gcm12-aes128gcm16-aes128gcm12-sha256-sha1-modp2048-modp4096-modp1024,aes256-aes128-sha256-sha1-modp2048-modp4096-modp1024,3des-sha1-modp1024!
	esp=aes128gcm12-aes128gcm16-aes256gcm12-aes256gcm16-modp2048-modp4096-modp1024,aes128-aes256-sha1-sha256-modp2048-modp4096-modp1024,aes128-sha1-modp2048,aes128-sha1-modp1024,3des-sha1-modp1024,aes128-aes256-sha1-sha256,aes128-sha1,3des-sha1!

	left=%any
	leftsubnet=10.10.10.0/24
        leftcert=certificate.pem
	leftfirewall=yes
	leftsendcert=always

	right=%any
	rightsourceip=192.168.1.0/24
	rightdns=77.88.8.8,8.8.4.4

	eap_identity=%identity

# IKEv2
conn IPSec-IKEv2
	keyexchange=ikev2
	auto=add

# BlackBerry, Windows, Android
conn IPSec-IKEv2-EAP
	also="IPSec-IKEv2"
	rightauth=eap-mschapv2

# macOS, iOS
conn IKEv2-MSCHAPv2-Apple
	also="IPSec-IKEv2"
	rightauth=eap-mschapv2
	leftid=vpn.linux.ext

# Android IPsec Hybrid RSA
conn IKEv1-Xauth
	keyexchange=ikev1
	rightauth=xauth
	auto=add

# VMWare IPSec VPN
conn linux-nsx-psk
	authby=secret
	auto=start
	leftid=vpn.linux.ext
	left=10.10.10.10
	leftsubnet=10.10.10.0/24
	rightid=33.33.33.33
	right=33.33.33.33
	rightsubnet=192.168.1.0/24
	ikelifetime=28800
	keyexchange=ikev2
	lifebytes=0
	lifepackets=0
	lifetime=1h

ipsec.secret

# /etc/ipsec.secrets
: RSA privkey.pem

# Create VPN users accounts
# ВНИМАНИЕ! После логина сначала пробел, потом двоеточие.

user1 : EAP "stongPass1"
user2 : EAP "stongPass2"
%any 33.33.33.33 : PSK "ChangeMeNow!"

después de eso, es suficiente con volver a leer la configuración, iniciar la conexión y comprobar que se ha establecido:

ipsec update
ipsec rereadsecrets
ipsec up linux-nsx-psk
ipsec status

Espero que esta pequeña nota sea útil y ahorre unas pocas horas a alguien.

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster