Per diverse ragioni, è stato necessario organizzare una connessione VPN tra la rete in VMWare Cloud Director e una macchina Ubuntu separata nel cloud. Questa nota non intende essere una descrizione completa, ma è solo un piccolo how-to.

In rete ho trovato l'unico articolo del 2015 su questo tema «».
Sfortunatamente, non è stato possibile utilizzarlo direttamente, poiché desiderava una crittografia più affidabile, non un certificato autofirmato, e il configurazione descritta non avrebbe funzionato dietro NAT.
Pertanto, è stato necessario dedicare del tempo a esplorare 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 per connettersi a NSX Edge.
Poiché l'installazione e la configurazione completa del server Strongswan superano l'ambito di questa nota, permettimi di rimandare a .
Dunque, passiamo direttamente alle impostazioni.
Lo schema di connessione sarà così:

da parte di VMWare indirizzo esterno 33.33.33.33 e rete interna 192.168.1.0/24
da parte di Linux indirizzo esterno 22.22.22.22 e rete interna 10.10.10.0/24
sarà inoltre necessario configurare il certificato Let's Encrypt per l'indirizzo vpn.linux.ext
PSK da entrambi i lati: ChangeMeNow!Configurazione da parte di NSX Edge:
Testo
Abilitato: sì
Abilita perfetta segretezza in avanti (PFS): sì
Nome: VPN_strongswan (a scelta)
ID Locale: 33.33.33.33
Endpoint Locale: 33.33.33.33
Sottoreti Locali: 192.168.1.0/24
ID Peer: vpn.linux.ext
Endpoint Peer: 22.22.22.22
Sottoreti Peer: 10.10.10.0/24
Algoritmo di Criptazione: AES256
Autenticazione: PSK
Chiave Pre-Condivisa: ChangeMeNow!
Gruppo Diffie-Hellman: 14 (2048 bit — compromesso accettabile tra velocità e sicurezza. Ma se vuoi, puoi impostarne uno maggiore)
Algoritmo di Digest: SHA256
Opzione IKE: IKEv2
Solo Risponditore IKE: no
Tipo di Sessione: Sessione Basata su Politica Screenshot


Configurazione da parte di 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=1hipsec.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 basta 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 breve nota risulti utile e faccia risparmiare a qualcuno un paio d'ore.
Fonte: habr.com
