IPSec-tunnel tussen Strongswan achter NAT en VMWare NSX Edge

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.

IPSec-tunnel tussen Strongswan achter NAT en VMWare NSX Edge

Er was één artikel uit 2015 over dit onderwerp gevonden: “Site to Site IPSEC VPN tussen NSX Edge en Linux strongSwan».

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 een goed materiaal over dit onderwerp.

Laten we nu overgaan tot de instellingen.

De verbindingsschema ziet er als volgt uit:

IPSec-tunnel tussen Strongswan achter NAT en VMWare NSX Edge

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
IPSec-tunnel tussen Strongswan achter NAT en VMWare NSX Edge
IPSec-tunnel tussen Strongswan achter NAT en VMWare NSX Edge

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=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!"

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

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster