Tunnel IPSec tra Strongswan dietro NAT e VMWare NSX Edge

Per vari motivi, è stato necessario organizzare una connessione VPN tra la rete in VMWare Cloud Director e una macchina Ubuntu separata nel cloud. Questa nota non pretende di essere una descrizione completa, ma è solo un piccolo howto.

Tunnel IPSec tra Strongswan dietro NAT e VMWare NSX Edge

Nella rete è stato trovato un unico articolo del 2015 su questo argomento «Site to Site IPSEC VPN tra NSX Edge e Linux strongSwan».

Purtroppo, non è stato possibile utilizzarlo direttamente, poiché volevo una crittografia più sicura, non un certificato autofirmato, e per di più la configurazione descritta non avrebbe funzionato dietro NAT.

Pertanto, ho dovuto sedermi e analizzare la documentazione.

Ho preso come base una configurazione che utilizzo da tempo, che consente di connettersi praticamente da qualsiasi sistema operativo e ho semplicemente aggiunto un pezzo che consente la connessione a NSX Edge.

Poiché l'installazione e la configurazione completa del server Strongswan vanno oltre l'ambito di questa nota, mi permetto di fare riferimento a un buon materiale su questo argomento.

Quindi, passiamo direttamente alle configurazioni.

Lo schema della connessione sarà il seguente:

Tunnel IPSec tra Strongswan dietro NAT e VMWare NSX Edge

dal lato VMWare l'indirizzo esterno 33.33.33.33 e la rete interna 192.168.1.0/24
dal lato Linux l'indirizzo esterno 22.22.22.22 e la rete interna 10.10.10.0/24
sarà inoltre necessario configurare il certificato Let's Encrypt per l'indirizzo vpn.linux.ext
PSK da entrambe le parti: ChangeMeNow!

Configurazione dal lato NSX Edge:

Testo

Abilitato: sì
Abilita perfect forward secrecy (PFS): sì
Nome: VPN_strongswan (qualunque, a vostra scelta)
ID locale: 33.33.33.33
Punto finale locale: 33.33.33.33
Sottoreti locali: 192.168.1.0/24
ID peer: vpn.linux.ext
Punto finale peer: 22.22.22.22
Sottoreti peer: 10.10.10.0/24
Algoritmo di crittografia: AES256
Autenticazione: PSK
Chiave condivisa: ChangeMeNow!
Gruppo Diffie-Hellman: 14 (2048 bit — un compromesso accettabile tra velocità e sicurezza. Ma se desiderate, potete impostarne uno maggiore)
Algoritmo di digestione: SHA256
Opzione IKE: IKEv2
Solo rispondente IKE: no
Tipo di sessione: Sessione basata su policy

Screenshot
Tunnel IPSec tra Strongswan dietro NAT e VMWare NSX Edge
Tunnel IPSec tra Strongswan dietro NAT e VMWare NSX Edge

Configurazione dal lato 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!"

dopo di che è sufficiente rileggere la configurazione, avviare la connessione e verificare che sia stabilita:

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

Spero che questa piccola nota si riveli utile e faccia risparmiare a qualcuno un paio d’ore.

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster