IPSec Ρ‚ΡƒΠ½Π΅Π» ΠΌΠ΅ΠΆΠ΄Ρƒ Strongswan Π·Π°Π΄ NAT ΠΈ VMWare NSX Edge

ΠŸΠΎΡ€Π°Π΄ΠΈ Ρ€Π΅Π΄ΠΈΡ†Π° ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΈ бСшС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° сС ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π° VPN Π²Ρ€ΡŠΠ·ΠΊΠ° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° във VMWare Cloud Director ΠΈ ΠΎΡ‚Π΄Π΅Π»Π½Π° Ubuntu машина Π² ΠΎΠ±Π»Π°ΠΊΠ°. Π‘Π΅Π»Π΅ΠΆΠΊΠ°Ρ‚Π° Π½Π΅ ΠΏΡ€Π΅Ρ‚Π΅Π½Π΄ΠΈΡ€Π° Π΄Π° бъдС пълно описаниС, тя Π΅ само малък Π½Π°Ρ€ΡŠΡ‡Π½ΠΈΠΊ.

IPSec Ρ‚ΡƒΠ½Π΅Π» ΠΌΠ΅ΠΆΠ΄Ρƒ Strongswan Π·Π°Π΄ NAT ΠΈ VMWare NSX Edge

ЕдинствСната статия Π½Π° Ρ‚Π°Π·ΠΈ Ρ‚Π΅ΠΌΠ° ΠΎΡ‚ 2015 Π³. бСшС Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π° Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ β€œSite to Site 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

Настройка ΠΎΡ‚ 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

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€