Terowongan IPSec antara Strongswan di belakang NAT dan VMWare NSX Edge

Untuk sejumlah alasan, perlu untuk membuat koneksi VPN antara jaringan di VMWare Cloud Director dan mesin Ubuntu terpisah di cloud. Posting ini tidak dimaksudkan sebagai deskripsi lengkap, ini hanya petunjuk kecil.



Terowongan IPSec antara Strongswan di belakang NAT dan VMWare NSX Edge



Satu-satunya artikel tahun 2015 tentang topik ini ditemukan di jaringan " Situs ke Situs IPSEC VPN antara NSX Edge dan Linux strongSwan ".



Sayangnya, kami tidak dapat menggunakannya secara langsung, karena Saya menginginkan enkripsi yang lebih aman, bukan sertifikat yang ditandatangani sendiri, dan konfigurasi yang dijelaskan tidak akan berfungsi di belakang NAT.



Oleh karena itu, saya harus duduk dan mempelajari dokumentasi.



Sebagai dasar, saya mengambil konfigurasi yang telah saya gunakan untuk waktu yang lama, yang memungkinkan Anda terhubung dari hampir semua OS, dan hanya menambahkan sepotong ke dalamnya yang memungkinkan Anda terhubung ke NSX Edge.



Karena instalasi dan konfigurasi lengkap server Strongswan berada di luar cakupan artikel ini, saya akan mengizinkan diri saya untuk merujuk ke beberapa materi bagus tentang topik ini .



Jadi, langsung saja ke setting.



Diagram koneksi akan terlihat seperti ini:





  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!


Konfigurasi NSX Edge:



Teks
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


Screenshot




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


setelah itu, cukup membaca ulang konfigurasi, memulai koneksi dan memeriksa apakah sudah dibuat:



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


Saya harap posting kecil ini akan berguna dan menyelamatkan seseorang dari beberapa jam.



All Articles