IPSec-tunelo inter Strongswan malantaŭ NAT kaj VMWare NSX Edge

Pro kelkaj kialoj, estis necese organizi VPN-konekton inter la reto en VMWare Cloud Director kaj aparta Ubuntu-maŝino en la nubo. La noto ne ŝajnigas esti plena priskribo, ĝi estas nur malgranda howto.

IPSec-tunelo inter Strongswan malantaŭ NAT kaj VMWare NSX Edge

La sola artikolo pri ĉi tiu temo de 2015 estis trovita en la Interreto "Ejo al Ejo IPSEC VPN inter NSX Edge kaj Linukso strongSwan".

Bedaŭrinde, ne eblis rekte uzi ĝin, ĉar... Mi volis pli fidindan ĉifradon, ne memsubskribitan atestilon, kaj la priskribita agordo ne funkcius malantaŭ NAT.

Tial mi devis sidiĝi kaj enprofundiĝi en la dokumentadon.

Kiel bazo, mi prenis agordon, kiun mi uzis dum longa tempo, kiu ebligas al mi konekti de preskaŭ ajna OS, kaj simple aldonis al ĝi pecon, kiu ebligas al mi konekti al NSX Edge.

Ĉar instali kaj plene agordi la Strongswan-servilon estas ekster la amplekso de ĉi tiu noto, mi raportu al bona materialo pri ĉi tiu temo.

Do, ni movu rekte al la agordoj.

Nia koneksa diagramo aspektos jene:

IPSec-tunelo inter Strongswan malantaŭ NAT kaj VMWare NSX Edge

со стороны VMWare внешний адрес 33.33.33.33 и внутренняя сеть 192.168.1.0/24
со стороны Linux внешний адрес 22.22.22.22 и внутренняя сеть 10.10.10.0/24
также понадобится настроить Let's encrypt сертификат для адреса vpn.linux.ext
PSK с обеих сторон: ChangeMeNow!

Agordo de NSX Edge:

Teksto

Enabled: yes
Enable perfect forward secrecy (PFS): yes
Name: VPN_strongswan (любое, по вашему выбору)
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 — приемлемый компромисс между скоростью и безопасностью. Но если хотите, можете поставить больше)
Digest Algorithm: SHA256
IKE Option: IKEv2
IKE Responder Only: no
Session Type: Policy Based Session

Ekrankopioj
IPSec-tunelo inter Strongswan malantaŭ NAT kaj VMWare NSX Edge
IPSec-tunelo inter Strongswan malantaŭ NAT kaj VMWare NSX Edge

Agordo de 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.sekreto

# /etc/ipsec.secrets
: RSA privkey.pem

# Create VPN users accounts
# ВНИМАНИЕ! После логина сначала пробел, потом двоеточие.

user1 : EAP "stongPass1"
user2 : EAP "stongPass2"
%any 33.33.33.33 : PSK "ChangeMeNow!"

post tio, simple relegu la agordon, komencu la konekton kaj kontrolu, ke ĝi estas establita:

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

Mi esperas, ke ĉi tiu eta noto estas helpema kaj ŝparas al iu kelkajn horojn.

fonto: www.habr.com

Aldoni komenton