ืžื ื”ืจืช IPSec ื‘ื™ืŸ Strongswan ืžืื—ื•ืจื™ NAT โ€‹โ€‹ื•-VMWare NSX Edge

ืžืžืกืคืจ ืกื™ื‘ื•ืช, ื”ื™ื” ืฆื•ืจืš ืœืืจื’ืŸ ื—ื™ื‘ื•ืจ VPN ื‘ื™ืŸ ื”ืจืฉืช ื‘-VMWare Cloud Director ืœื‘ื™ืŸ ืžื›ื•ื ืช ืื•ื‘ื•ื ื˜ื• ื ืคืจื“ืช ื‘ืขื ืŸ. ื”ืคืชืง ืื™ื ื• ืžืชื™ื™ืžืจ ืœื”ื™ื•ืช ืชื™ืื•ืจ ืžืœื, ื”ื•ื ืจืง ื”ื“ืจื›ื” ืงื˜ื ื”.

ืžื ื”ืจืช IPSec ื‘ื™ืŸ Strongswan ืžืื—ื•ืจื™ NAT โ€‹โ€‹ื•-VMWare NSX Edge

ื”ืžืืžืจ ื”ื™ื—ื™ื“ ื‘ื ื•ืฉื ื–ื” ืžืฉื ืช 2015 ื ืžืฆื ื‘ืื™ื ื˜ืจื ื˜ "ืืชืจ ืœืืชืจ IPSEC VPN ื‘ื™ืŸ NSX Edge ื•-Linux strongSwan".

ืœืžืจื‘ื” ื”ืฆืขืจ, ืœื ื ื™ืชืŸ ื”ื™ื” ืœื”ืฉืชืžืฉ ื‘ื• ื™ืฉื™ืจื•ืช, ื›ื™... ืจืฆื™ืชื™ ื”ืฆืคื ื” ืืžื™ื ื” ื™ื•ืชืจ, ืœื ืชืขื•ื“ื” ื‘ื—ืชื™ืžื” ืขืฆืžื™ืช, ื•ื”ืชืฆื•ืจื” ื”ืžืชื•ืืจืช ืœื ื”ื™ื™ืชื” ืขื•ื‘ื“ืช ืžืื—ื•ืจื™ NAT.

ืœื›ืŸ ื ืืœืฆืชื™ ืœืฉื‘ืช ื•ืœื”ืชืขืžืง ื‘ืชื™ืขื•ื“.

ื›ื‘ืกื™ืก, ืœืงื—ืชื™ ืงื•ื ืคื™ื’ื•ืจืฆื™ื” ื‘ื” ื”ืฉืชืžืฉืชื™ ื›ื‘ืจ ื”ืจื‘ื” ื–ืžืŸ, ืฉืžืืคืฉืจืช ืœื™ ืœื”ืชื—ื‘ืจ ื›ืžืขื˜ ืžื›ืœ ืžืขืจื›ืช ื”ืคืขืœื”, ื•ืคืฉื•ื˜ ื”ื•ืกืคืชื™ ืœื” ืงื˜ืข ืฉืžืืคืฉืจ ืœื™ ืœื”ืชื—ื‘ืจ ืœ-NSX Edge.

ืžื›ื™ื•ื•ืŸ ืฉื”ืชืงื ื” ื•ื”ื’ื“ืจื” ืžืœืื” ืฉืœ ืฉืจืช Strongswan ื”ื™ื ืžืขื‘ืจ ืœืชื—ื•ื ืฉืœ ื”ืขืจื” ื–ื•, ื”ืจืฉื• ืœื™ ืœื”ืชื™ื™ื—ืก ืœ ื—ื•ืžืจ ื˜ื•ื‘ ื‘ื ื•ืฉื ื–ื”.

ืื– ื‘ื•ืื• ื ืขื‘ื•ืจ ื™ืฉื™ืจื•ืช ืœื”ื’ื“ืจื•ืช.

ื“ื™ืื’ืจืžืช ื”ื—ื™ื‘ื•ืจ ืฉืœื ื• ืชื™ืจืื” ื›ืš:

ืžื ื”ืจืช IPSec ื‘ื™ืŸ Strongswan ืžืื—ื•ืจื™ NAT โ€‹โ€‹ื•-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!

ืชืฆื•ืจื” ืž-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

ืžืกืš
ืžื ื”ืจืช IPSec ื‘ื™ืŸ Strongswan ืžืื—ื•ืจื™ NAT โ€‹โ€‹ื•-VMWare NSX Edge
ืžื ื”ืจืช IPSec ื‘ื™ืŸ Strongswan ืžืื—ื•ืจื™ NAT โ€‹โ€‹ื•-VMWare NSX Edge

ื”ืชืงื ื” ืžืกื˜ืจื•ื ื’ืกื•ืืŸ:

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

ืื ื™ ืžืงื•ื•ื” ืฉื”ื”ืขืจื” ื”ืงื˜ื ื” ื”ื–ื• ืžื•ืขื™ืœื” ื•ื—ื•ืกื›ืช ืœืžื™ืฉื”ื• ื›ืžื” ืฉืขื•ืช.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”