Om verschillende redenen was het nodig om een VPN-verbinding op te zetten tussen het netwerk in VMWare Cloud Director en een aparte Ubuntu machine in de cloud. Deze notitie pretendeert geen volledige beschrijving te zijn, het is gewoon een kleine howto.

Er was één artikel uit 2015 over dit onderwerp gevonden: “».
Helaas kon ik het niet rechtstreeks gebruiken, omdat ik een veiligere encryptie wilde dan een zelfondertekend certificaat, en bovendien zou de beschreven configuratie niet werken achter NAT.
Daarom moest ik gaan zitten en in de documentatie duiken.
Als basis heb ik een configuratie genomen die ik al lange tijd gebruik en er een stuk aan toegevoegd dat verbinding kan maken met NSX Edge.
Aangezien de installatie en volledige configuratie van de Strongswan-server buiten het bereik van deze notitie valt, verwijs ik naar .
Laten we nu overgaan tot de instellingen.
De verbindingsschema ziet er als volgt uit:

aan de zijde van VMWare het externe adres 33.33.33.33 en het interne netwerk 192.168.1.0/24
aan de zijde van Linux het externe adres 22.22.22.22 en het interne netwerk 10.10.10.0/24
ook moet een Let's Encrypt-certificaat worden ingesteld voor het adres vpn.linux.ext
PSK aan beide zijden: ChangeMeNow!Instelling aan de zijde van NSX Edge:
Tekst
Enabled: ja
Enable perfect forward secrecy (PFS): ja
Name: VPN_strongswan (ieder, naar keuze)
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 — een redelijke compromis tussen snelheid en veiligheid. Maar als je wilt, kun je het hoger instellen)
Digest Algorithm: SHA256
IKE Option: IKEv2
IKE Responder Only: nee
Session Type: Beleid Gebaseerde Sessies Screenshots


Instelling aan de zijde van 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!"na dit is het voldoende om de configuratie opnieuw te lezen, de verbinding te starten en te controleren of deze is gevestigd:
ipsec update
ipsec rereadsecrets
ipsec up linux-nsx-psk
ipsec status Ik hoop dat deze kleine notitie nuttig zal zijn en iemand enkele uren zal besparen.
Bron: habr.com
