Поради редица причини, беше необходимо да се организира VPN-соединение между мрежата в VMWare Cloud Director и отделен Ubuntu машина в облака. Забележката не претендира за пълно описание, а просто е малко как-то.

В мрежата намерихме единствената статия от 2015 г. на тази тема «».
За съжаление, не успяхме да я използваме директно, тъй като искахме криптиране, което е по-надеждно, а не самоподписан сертификат, и описаната конфигурация нямаше да работи зад 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=1hipsec.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 Надявам се, че тази малка забележка ще бъде полезна и ще спести на някого няколко часа.
Източник: habr.com
