Tunel IPSec między Strongswan za NAT a VMWare NSX Edge

Z powodu kilku przyczyn konieczne było zorganizowanie połączenia VPN między siecią w VMWare Cloud Director a oddzielną maszyną Ubuntu w chmurze. Notatka nie pretenduje do pełnego opisu, jest to po prostu mały przewodnik.

Tunel IPSec między Strongswan za NAT a VMWare NSX Edge

W sieci znalazłem jedyny artykuł z 2015 roku na ten temat „Site to Site IPSEC VPN between NSX Edge and Linux strongSwan».

Niestety, nie udało się go użyć bezpośrednio, ponieważ chciałem bardziej niezawodnego szyfrowania, a nie certyfikatu samopodpisanego, i za NAT-em opisana konfiguracja by nie zadziałała.

Dlatego musiałem usiąść i przejrzeć dokumentację.

Za podstawę wziąłem konfigurację, której od lat używam, umożliwiającą połączenie z praktycznie każdej platformy i po prostu dodałem do niej fragment, który pozwala na połączenie z NSX Edge.

Ponieważ instalacja i pełna konfiguracja serwera Strongswan wykraczają poza zakres tej notatki, pozwolę sobie odwołać się do niezłego materiału na ten temat.

Przejdźmy zatem bezpośrednio do ustawień.

Schemat połączenia będzie wyglądał następująco:

Tunel IPSec między Strongswan za NAT a VMWare NSX Edge

z strony VMWare adres zewnętrzny 33.33.33.33 i wewnętrzna sieć 192.168.1.0/24
z strony Linux adres zewnętrzny 22.22.22.22 i wewnętrzna sieć 10.10.10.0/24
będzie także potrzebna konfiguracja certyfikatu Let's Encrypt dla adresu vpn.linux.ext
PSK z obu stron: ChangeMeNow!

Konfiguracja po stronie NSX Edge:

Tekst

Włączone: tak
Włącz doskonałą tajność (PFS): tak
Nazwa: VPN_strongswan (dowolne, według własnego wyboru)
Lokalny Id: 33.33.33.33
Lokalny punkt końcowy: 33.33.33.33
Lokalne podsieci: 192.168.1.0/24
Id partnera: vpn.linux.ext
Punkt końcowy partnera: 22.22.22.22
Podsieci partnera: 10.10.10.0/24
Algorytm szyfrowania: AES256
Autoryzacja: PSK
Klucz pre-shared: ChangeMeNow!
Grupa Diffiego-Hellmana: 14 (2048 bitów – akceptowalny kompromis między szybkością a bezpieczeństwem. Ale jeśli chcesz, możesz ustawić większą)
Algorytm haszujący: SHA256
Opcja IKE: IKEv2
Tylko responder IKE: nie
Typ sesji: Sesja oparta na polityce

Zrzuty ekranu
Tunel IPSec między Strongswan za NAT a VMWare NSX Edge
Tunel IPSec między Strongswan za NAT a VMWare NSX Edge

Konfiguracja po stronie 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!"

po tym wystarczy przeczytać konfigurację, uruchomić połączenie i sprawdzić, czy zostało nawiązane:

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

Mam nadzieję, że ta mała notatka okaże się przydatna i zaoszczędzi komuś kilka godzin.

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster