Windows полноценно, без дополнительных настроек, поддерживает только аутентификацию
сервера по сертификату из списка публичных центров сертификации. Сертификат может быть бесплатным, например, вполне подойдёт Let's Encrypt или вовсе ZeroSSL, который можно выписать на IP-адрес, а не домен.
Аутентификация
клиента может быть по логину и паролю (EAP-MSCHAPv2), как вы и хотите.
Настройка производилась на Ubuntu 20.04
Установка:
apt install strongswan libcharon-extra-plugins
Получить сертификат на IP-адрес в ZeroSSL, поместить certificate.crt в
/etc/ipsec.d/certs/server.crt
, private.key в
/etc/ipsec.d/private/server.key
, ca_bundle.crt в
/etc/ipsec.d/cacerts/ca_bundle.crt
Содержимое
/etc/ipsec.conf
conn %default
dpdaction=clear
dpddelay=35s
dpdtimeout=300s
fragmentation=yes
rekey=no
ike=aes128gcm16-aes256gcm16-sha1-sha256-sha384-modp1024,3des-aes128-aes192-aes256-sha1-sha256-sha384-modp1024,aes256-sha1-sha256-sha384-modp2048
# left - local (server) side
left=%any
leftauth=pubkey
leftcert=server.crt
leftsendcert=always
leftsubnet=0.0.0.0/0
# right - remote (client) side
right=%any
rightauth=pubkey
rightsourceip=192.168.155.0/24
rightdns=8.8.8.8
conn ikev2-eap-mschapv2
keyexchange=ikev2
rightauth=eap-mschapv2
eap_identity=%any
auto=add
Содержимое
/etc/ipsec.secrets
:
: RSA server.key
user1 : EAP "password1"
Остаётся только настроить маршрутизацию и NAT.
В Windows нужно настроить подключение IPsec IKEv2 на этот IP-адрес, с именем user1 и паролем password1.