Din diverse motive, a fost necesară organizarea unei conexiuni VPN între rețeaua din VMWare Cloud Director și o mașină Ubuntu separată în cloud. Această notă nu își propune să fie o descriere completă, ci doar un mic how-to.

Am găsit un singur articol din 2015 pe această temă „».
Din păcate, nu am reușit să îl folosesc direct, deoarece doream criptare mai sigură, nu un certificat auto-semnat, iar configurația descrisă nu ar fi funcționat prin NAT.
Așa că a fost necesar să mă așez și să răsfoiesc documentația.
Am folosit ca bază o configurație pe care o folosesc de mult timp, care permite conexiuni aproape din orice sistem de operare, și am adăugat o parte care permite conectarea la NSX Edge.
Având în vedere că instalarea și configurarea completă a serverului Strongswan depășesc cadrul acestei note, mi-ar plăcea să fac referire la .
Așadar, să trecem direct la setări.
Schema de conexiune va arăta astfel:

din partea VMWare adresa externă 33.33.33.33 și rețeaua internă 192.168.1.0/24
din partea Linux adresa externă 22.22.22.22 și rețeaua internă 10.10.10.0/24
va fi nevoie să configurăm și un certificat Let's Encrypt pentru adresa vpn.linux.ext
PSK de ambele părți: ChangeMeNow!Configurarea din partea NSX Edge:
Text
Activat: da
Activare perfect forward secrecy (PFS): da
Nume: VPN_strongswan (orice, la alegerea ta)
Identificator local: 33.33.33.33
Endpoint local: 33.33.33.33
Subrețele locale: 192.168.1.0/24
Identificator peer: vpn.linux.ext
Endpoint peer: 22.22.22.22
Subrețele peer: 10.10.10.0/24
Algoritm de criptare: AES256
Autentificare: PSK
Cheie pre-partajată: ChangeMeNow!
Grup Diffie-Hellman: 14 (2048 bit — un compromis acceptabil între viteză și securitate. Dar dacă dorești, poți alege o valoare mai mare)
Algoritm de digest: SHA256
Opțiune IKE: IKEv2
Numai responder IKE: nu
Tip sesiune: Sesiune bazată pe politică Capturi de ecran


Configurarea din partea 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!"după aceasta, este suficient să recitești configurația, să inițiezi conexiunea și să verifici că a fost stabilită:
ipsec update
ipsec rereadsecrets
ipsec up linux-nsx-psk
ipsec status Sper că această mică notă va fi utilă și va economisi cuiva câteva ore.
Sursa: habr.com
