Прежде всего, дам ссылку на  первоисточник, на основе которого и будет произведена вся работа. — тынц Сразу скажу, что я, будучи еще вообще зеленым новичком в Linux, смог  пройти весь описанный там путь от начала до конца, и все успешно работало. Но меня всегда смущало, как такое подключить  любимой девушке,  сестре, etc. Знакомый подсказал другой путь, который и был взят за основу. 

Предполагается что у вас уже есть настроенная  впс на основе ubuntu 20.04, я проверял  на ней неоднократно, — все стабильно работает.


1. Установка Strongswan

sudo apt update

sudo apt install strongswan strongswan-pki libcharon-extra-plugins libcharon-extauth-plugins

2. Создание домена 

Идем на сайт вроде ydns.io делаем там себе регу, переходим на вкладку Host> New host

вводим там свое будущее красивое (или нет) доменное имя и привязываем его к ip-адресу своей VPS.

и жмем Create Host 

Готово, вы восхитительны. У вас есть  доменное имя типа mysuperpupervpn.ydns.eu  по которому и будет в дальнейшем идти авторизация к вашему ikev2 vpn-серверу.

Для создания своей собственной доменной зоны могу еще посоветовать www.cloudns.net  там до 500000 бесплатных днс запросов в месяц, чего более чем достаточно в любительских целях.







3. Настройка Strongswan. 

Необязательный шаг — создаем копию файла  настроек

sudo mv /etc/ipsec.conf{,.original}

Открываем в редакторе файл настроек 

sudo nano /etc/ipsec.conf

Приводим его  к следующему виду:

config setup 

      charondebug="ike 1, knl 1, cfg 0»

       uniqueids=no 

conn ikev2-vpn

     auto=add

     compress=no

      type=tunnel 

      keyexchange=ikev2

      fragmentation=yes

      forceencaps=yes 

      dpdaction=clear

      dpddelay=300s

      rekey=no 

      left=%any

      leftid=@server_domain_or_IP

      leftcert=server-cert.pem

      leftsendcert=always 

      leftsubnet=0.0.0.0/0

      right=%any

      rightid=%any

      rightauth=eap-mschapv2

      rightsourceip=10.10.10.0/24

      rightdns=8.8.8.8,8.8.4.4 

      rightsendcert=never

      eap_identity=%identity

        ike=chacha20poly1305-sha512-curve25519-prfsha512,aes256gcm16-sha384-prfsha384-ecp384,aes256-sha1-modp1024,aes128-sha1-modp1024,3des-sha1-modp1024! esp=chacha20poly1305-sha512,aes256gcm16-ecp384,aes256-sha256,aes256-sha1,3des-sha1!  

ВАЖНОЕ  —  leftid=@server_domain_or_IP — подставляем наше  доменное имя  после @

                        leftcert =fullchain.pem — Это будет файл   от бесплатного центра сертификации Let's Encrypt

Можете еще сменить гугловские днс на какие-то свои другие, это не принципиально

Сохраняем файл Ctrl +O, Enter, Ctrl +X 

P. S. Полностью конченная табуляция и форматирование текста, так что скопируйте лучше в блокнот с сайта digitalocean  и замените строки как показано в ВАЖНОЕ

4. Настройка аутентификации нашего VPN

sudo nano /etc/ipsec.secrets

Приводим к такому виду:

# This file holds shared secrets or RSA private keys for authentication.# RSA private key for this host, authenticating it to any other host# which knows the public part.

: RSA «privkey.pem» 

ADMIN: EAP «очень сложный пароль не менее 10 знаков»   

ADMIN,  как совершенно нетрудно догадаться, —будущий логин подключения к вашему Ikev2 vpn'у

Все дальнейшие пароли добавлять сюда, по такому же шаблону с сохранением синтаксиса. Из минусов- надо будет  перезапускать сервис.

  Сохраняем файл Ctrl +O, Enter, Ctrl +X   и перезапустим впн

sudo systemctl restart strongswan-starter 


5. Устанавливаем бесплатный certboot

С его помощью мы будем управлять SSL-сертификатами от Let's Encrypt.

sudo apt install certbot

и сразу  привязываем сертификат к своему доменному имени

sudo certbot certonly --standalone --agree-tos -m ваш е-mail -d ваш домен

порты 80,443/tcp  на сервере должны быть открыты, иначе каменный цветок не выйдет.

После этого в домашней директории создаем файл renew.sh c  вот таким кодом.

touch renew.sh

sudo nano renew.sh

#! /bin/sh certbot certonly --standalone --agree-tos -m ваш email -d ваш домен 

sudo cp /etc/letsencrypt/live/ваш домен /fullchain.pem /etc/ipsec.d/certs/fullchain.pem

 sudo cp /etc/letsencrypt/live/ваш домен /privkey.pem /etc/ipsec.d/private/privkey.pem 

sudo cp /etc/letsencrypt/live/ваш домен /chain.pem /etc/ipsec.d/cacerts/chain.pem 

 systemctl restart ipsec.service

  Сохраняем файл Ctrl +O, Enter, Ctrl +X 

Данный файл понадобится для обновления сертификата, если по каким-то причинам он не обновится автоматически, простым запуском *renew.sh, сделав его сейчас исполняемым командой:

sudo chmod u+x renew.sh


 6. Выполняем весь 6-й пункт из основной справки по Ikev2

Перезапускаем сервис командой

sudo systemctl restart strongswan-starter

можно заодно и глянуть   его статус

  sudo systemctl restart strongswan-starter  

Собственно, на этом и все.  Сервис запущен. С форматированием на данном сайте  как-то не алле, и я не нашел куда прятать код как на форумах, например. Как всегда в линуксах, важно делать все вплоть до запятой, ибо это ж блин, юзерфрендли (сарказм). Я на начальном этапе из-за этого испытывал много боли и страданий). Вроде ничего не забыл.

Процесс подключения на основных платформах описан у меня на сайте.