NAT后的Strongswan与VMWare NSX Edge之间的IPSec隧道

由于多种原因,有必要在VMWare Cloud Director中的网络与云中单独的Ubuntu计算机之间建立VPN连接。这篇文章并不是要做完整的描述,它只是一个很小的方法。



NAT后的Strongswan与VMWare NSX Edge之间的IPSec隧道



在网络上找到了 关于该主题的2015年唯一文章“ NSX Edge和LinuxstrongSwan之间的站点间IPSEC VPN ”。



不幸的是,我们不能直接使用它,因为我想要更安全的加密,而不是自签名证书,并且所描述的配置在NAT之后不起作用。



因此,我不得不坐下来研究文档。



作为基础,我使用了很长时间使用的配置,该配置使您几乎可以从任何操作系统进行连接,并简单地添加了一个配置,即可连接至NSX Edge。



由于Strongswan服务器的安装和完整配置超出了本文的范围,因此我将允许自己参考一些有关此主题的好材料



因此,让我们直接进入设置。



连接图如下所示:





  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!


NSX Edge配置:



文本
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


屏幕截图




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


之后,重新读取配置,启动连接并检查是否已建立就足够了:



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


我希望这篇小文章对您有所帮助,并且可以节省几个小时。



All Articles