Ich versuche, einen Strongswan-VPN-Server zu betreiben, um ihn mit Windows-10-Clients unter Verwendung ihrer integrierten VPN-Funktion zu verwenden (um es den Client-Benutzern einfacher zu machen).
Beim Verbindungsversuch zeigt Windows an, dass der Benutzername/das Passwort akzeptiert wurden, dann wird die Verbindung hergestellt und dann schlägt sie fehl. Das Serverprotokoll zeigt einen Fehler an: „Halb geöffnete IDE_SA wird gelöscht … nach Timeout“.
Ausgabe von „sudo systemctl status strongswan.service“ mit den letzten 10 Zeilen des Protokolls:
strongswan.service - strongSwan IPsec IKEv1/IKEv2 daemon using ipsec.conf
Loaded: loaded (/lib/systemd/system/strongswan.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2020-12-04 13:15:05 GMT; 1min 38s ago
Main PID: 1859 (starter)
Tasks: 18 (limit: 4915)
CGroup: /system.slice/strongswan.service
ââ1859 /usr/lib/ipsec/starter --daemon charon --nofork
ââ1873 /usr/lib/ipsec/charon
Dec 04 13:15:34 raspberrypi ipsec[1859]: 09[IKE] authentication of 'CN=vpn.example.com' (myself) with RSA signature successful
Dec 04 13:15:34 raspberrypi ipsec[1859]: 09[IKE] sending end entity cert "CN=vpn.example.com"
Dec 04 13:15:34 raspberrypi ipsec[1859]: 09[ENC] generating IKE_AUTH response 1 [ IDr CERT AUTH EAP/REQ/ID ]
Dec 04 13:15:34 raspberrypi ipsec[1859]: 09[ENC] splitting IKE message (1948 bytes) into 2 fragments
Dec 04 13:15:34 raspberrypi ipsec[1859]: 09[ENC] generating IKE_AUTH response 1 [ EF(1/2) ]
Dec 04 13:15:34 raspberrypi ipsec[1859]: 09[ENC] generating IKE_AUTH response 1 [ EF(2/2) ]
Dec 04 13:15:34 raspberrypi ipsec[1859]: 09[NET] sending packet: from 192.168.2.9[4500] to 109.41.64.240[6977] (1248 bytes)
Dec 04 13:15:34 raspberrypi ipsec[1859]: 09[NET] sending packet: from 192.168.2.9[4500] to 109.41.64.240[6977] (768 bytes)
Dec 04 13:15:34 raspberrypi charon[1873]: 14[IKE] sending keep alive to 109.41.64.240[6977]
Dec 04 13:15:43 raspberrypi charon[1873]: 15[JOB] deleting half open IKE_SA with 109.41.64.240 after timeout
Ich schaue mir einige Beiträge zu Strongswan und Windows immer wieder an, kann aber keinen Fehler finden. Habe diese Frage jetzt überarbeitet, da systemctl restart die Konfiguration anscheinend nicht erneut analysiert hat. Ich habe immer dieselbe Ausgabe erhalten, egal, was ich geändert habe. Ein Stop-and-Start-Vorgang scheint zu helfen.
(wird derzeit im lokalen Netzwerk versucht, daher sind alle IPs im Bereich 192.168.*. Der VPN-Bereich sollte 172.17.0.0/16 sein.
/etc/ipsec.conf ist dies:
# ipsec.conf - strongSwan IPsec configuration file
config setup
strictcrlpolicy=no
uniqueids=never
# Add connections here.
# Sample VPN connections
conn %default
keyexchange=ikev2
ike=aes256-sha1-modp1024!
esp=aes256-sha1!
dpdaction=clear
rekey=no
dpddelay=300s
fragmentation=yes
conn win7
compress=no
type=tunnel
left=%any
# leftid=192.168.2.9
leftcert=server.cert.pem
leftsendcert=always
leftsubnet=0.0.0.0/0
leftsendcert=always
right=%any
rightip=%any
rightauth=eap-mschapv2
rightsourceip=172.17.0.128/25
rightdns=192.168.2.1
rightsendcert=never
# eap_identity=%identity
eap_identity=%any
auto=add
include /var/lib/strongswan/ipsec.conf.inc
In Windows 10 (Home) wähle ich den Verbindungsnamen „Test“, die Serveradresse 192.168.2.9, den VPN-Typ „Automatisch“ und die Anmeldeart „Benutzername und Passwort“.
Die Datei /etc/ipsec.secrets hat einen Benutzer namens „Benutzer“: # Diese Datei enthält gemeinsame Geheimnisse oder private RSA-Schlüssel zur Authentifizierung.
# RSA private key for this host, authenticating it to any other host
# which knows the public part.
# this file is managed with debconf and will contain the automatically created private key
#include /var/lib/strongswan/ipsec.secrets.inc
: RSA "server.key.pem"
user : EAP "testpassword_preliminary"
Ich habe die Zertifikate auf dem Server mit diesen Befehlszeilen generiert:
ipsec pki --gen --size 4096 --type rsa --outform pem > ca.key.pem
ipsec pki --self --in ca.key.pem --type rsa --dn "CN=VPN Server CA" --ca --lifetime 3650 --outform pem > ca.cert.pem
ipsec pki --gen --size 4096 --type rsa --outform pem > server.key.pem
ipsec pki --pub --in server.key.pem --type rsa | ipsec pki --issue --lifetime 2750 --cacert ca.cert.pem --cakey ca.key.pem --dn "CN=vpn.example.com" --san="vpn.example.com" --flag serverAuth --flag ikeIntermediate --outform pem > server.cert.pem