Настроить L2TP IPSec VPN сервер для подключения Windows-клиентов.
Решение по мотивам https://www.digitalocean.com/community/tutorials/how-to-set-up-an-ikev2-vpn-server-with-strongswan-on-ubuntu-18-04-2
sudo apt-get update && sudo apt-get upgrade sudo apt-get install strongswan certbot libcharon-extra-plugins
sudo ufw allow OpenSSH sudo ufw allow http sudo ufw allow https sudo ufw allow 500,4500/udp sudo ufw enable
sudo certbot certonly --rsa-key-size 4096 --standalone --agree-tos --no-eff-email --email mikhail@xc360.ru -d testprivate.xc360.ru
копируем его в конфигурацию ipsec
sudo cp /etc/letsencrypt/live/testprivate.xc360.ru/fullchain.pem /etc/ipsec.d/certs/ sudo cp /etc/letsencrypt/live/testprivate.xc360.ru/privkey.pem /etc/ipsec.d/private/ sudo cp /etc/letsencrypt/live/testprivate.xc360.ru/chain.pem /etc/ipsec.d/cacerts/
sudo mv /etc/ipsec.conf{,.original}
https://wiki.strongswan.org/projects/strongswan/wiki/Win7EapMultipleConfig
#global configuration IPsec #chron logger config setup # charondebug="ike 1, knl 1, cfg 0" # uniqueids=no plutostart=no conn %default keyexchange=ikev2 ike=aes128-sha1-modp1024,aes128-sha1-modp1536,aes128-sha1-modp2048,aes128-sha256-ecp256,aes128-sha256-modp1024,aes128-sha256-modp1536,aes128-sha256-modp2048,aes256-aes128-sha256-sha1-modp2048-modp4096-modp1024,aes256-sha1-modp1024,a$ esp=aes128-aes256-sha1-sha256-modp2048-modp4096-modp1024,aes128-sha1,aes128-sha1-modp1024,aes128-sha1-modp1536,aes128-sha1-modp2048,aes128-sha256,aes128-sha256-ecp256,aes128-sha256-modp1024,aes128-sha256-modp1536,aes128-sha256-modp2$ dpdaction=clear dpddelay=300s rekey=no conn win7 left=%any leftsubnet=0.0.0.0/0 leftauth=pubkey leftcert=fullchain.pem leftid=@testprivate.xc360.ru right=%any rightsourceip=10.10.10.0/24 rightauth=eap-mschapv2 #rightsendcert=never # see note eap_identity=%identity auto=add
user : EAP “test”
/etc/strongswan.d/client-dns.conf
charon { dns1 = 4.2.2.4 dns2 = 8.8.8.8 }
/etc/strongswan.d/client-wins.conf
charon { nbns1 = 10.10.1.1 nbns2 = 10.10.0.1 }
sudo tail -f /var/log/syslog
https://wiki.strongswan.org/issues/1183
Если при первой попытке подключения Windows-клиент сообщает, что неверный пароль, но успешно подключается с тем же паролем со второй попытки, а в логах сервера есть такое:
user charon: 11[ENC] parsed IKE_AUTH request 2 [ EAP/RES/MSCHAPV2 ] user charon: 11[IKE] EAP-MS-CHAPv2 username: '%any' user charon: 11[IKE] no EAP key found for hosts '%any' - '%any' user charon: 11[IKE] EAP-MS-CHAPv2 verification failed, retry (1)
значит нужно установить libcharon-extra-plugins, а в конфигурации /etc/ipsec.conf должно быть прописано:
eap_identity=%identity
В логах сервера такое:
user charon: 07[IKE] received proposals inacceptable
Это значит, что сервер и клиент не могут договориться о применяемых алгоритмах шифрования. Нужно смотреть на строки:
ike=... esp=...
в них прописаны разрешенные алгоритмы шифрования