เบญเบธเป‚เบกเบ‡ IPSec เบฅเบฐเบซเบงเปˆเบฒเบ‡ Strongswan เบซเบฅเบฑเบ‡ NAT เปเบฅเบฐ VMWare NSX Edge

ะ’ ัะธะปัƒ ั€ัะดะฐ ะฟั€ะธั‡ะธะฝ, ะฟะพั‚ั€ะตะฑะพะฒะฐะปะพััŒ ะพั€ะณะฐะฝะธะทะพะฒะฐั‚ัŒ VPN-ัะพะตะดะธะฝะตะฝะธะต ะผะตะถะดัƒ ัะตั‚ัŒัŽ ะฒ VMWare Cloud Director ะธ ะพั‚ะดะตะปัŒะฝะพะน ะผะฐัˆะธะฝะพะน Ubuntu ะฒ ะพะฑะปะฐะบะต. ะ—ะฐะผะตั‚ะบะฐ ะฝะต ะฟั€ะตั‚ะตะฝะดัƒะตั‚ ะฝะฐ ะฟะพะปะฝะพั†ะตะฝะฝะพะต ะพะฟะธัะฐะฝะธะต, ัั‚ะพ ะฟั€ะพัั‚ะพ ะฝะตะฑะพะปัŒัˆะพะต howto.

เบญเบธเป‚เบกเบ‡ IPSec เบฅเบฐเบซเบงเปˆเบฒเบ‡ Strongswan เบซเบฅเบฑเบ‡ NAT เปเบฅเบฐ VMWare NSX Edge

ะ’ ัะตั‚ะธ ะฝะฐัˆะปะฐััŒ ะตะดะธะฝัั‚ะฒะตะฝะฝะฐั ัั‚ะฐั‚ัŒั 2015 ะณะพะดะฐ ะฝะฐ ัั‚ัƒ ั‚ะตะผัƒ ยซSite to Site IPSEC VPN between NSX Edge and 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

ะะฐัั‚ั€ะพะนะบะฐ ัะพ ัั‚ะพั€ะพะฝั‹ 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

ะะฐะดะตัŽััŒ, ัั‚ะฐ ะฝะตะฑะพะปัŒัˆะฐั ะทะฐะผะตั‚ะบะฐ ะพะบะฐะถะตั‚ัั ะฟะพะปะตะทะฝะพะน ะธ ััะบะพะฝะพะผะธั‚ ะบะพะผัƒ-ะฝะธะฑัƒะดัŒ ะฟะฐั€ัƒ ั‡ะฐัะพะฒ.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™