IPSec-Tunnel zwischen Strongswan hinter NAT und VMWare NSX Edge

Aus mehreren Gründen war es notwendig, eine VPN-Verbindung zwischen dem Netzwerk in VMWare Cloud Director und einer separaten Ubuntu-Maschine in der Cloud zu organisieren. Der Hinweis erhebt keinen Anspruch auf eine vollständige Beschreibung, es handelt sich lediglich um eine kleine Anleitung.

IPSec-Tunnel zwischen Strongswan hinter NAT und VMWare NSX Edge

Der einzige Artikel zu diesem Thema aus dem Jahr 2015 wurde im Internet gefunden „Site-to-Site IPSEC VPN zwischen NSX Edge und Linux strongSwan".

Eine direkte Nutzung war leider nicht möglich, da... Ich wollte eine zuverlässigere Verschlüsselung, kein selbstsigniertes Zertifikat, und die beschriebene Konfiguration hätte hinter NAT nicht funktioniert.

Deshalb musste ich mich hinsetzen und mich mit der Dokumentation befassen.

Als Grundlage habe ich eine Konfiguration genommen, die ich schon lange verwendet habe und die es mir ermöglicht, von fast jedem Betriebssystem aus eine Verbindung herzustellen, und habe einfach einen Teil dazu hinzugefügt, der es mir ermöglicht, eine Verbindung zu NSX Edge herzustellen.

Da die Installation und vollständige Konfiguration des Strongswan-Servers den Rahmen dieses Hinweises sprengt, möchte ich darauf verweisen gutes Material zu diesem Thema.

Kommen wir also direkt zu den Einstellungen.

Unser Anschlussplan sieht folgendermaßen aus:

IPSec-Tunnel zwischen Strongswan hinter NAT und 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!

Konfiguration von NSX Edge:

Text

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

Screenshots
IPSec-Tunnel zwischen Strongswan hinter NAT und VMWare NSX Edge
IPSec-Tunnel zwischen Strongswan hinter NAT und VMWare NSX Edge

Einrichtung von 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!"

Danach lesen Sie einfach die Konfiguration erneut, starten die Verbindung und prüfen, ob sie hergestellt wurde:

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

Ich hoffe, diese kleine Notiz ist hilfreich und erspart jemandem ein paar Stunden.

Source: habr.com

Kommentar hinzufügen