Ubuntu ikev2 client настройка

Обновлено: 07.07.2024

Server - Ubuntu 18.04

Client - Ubuntu 18.04

Шаг 1. Установка StrongSwan

Во-первых, мы установим StrongSwan, демон IPSec с открытым исходным кодом, который мы настроим как наш VPN-сервер. Мы также установим компонент инфраструктуры открытого ключа, чтобы мы могли создать центр сертификации.

Обновим пакеты и установим нужные компоненты:

Шаг 2. Создание центра сертификации

Для идентификации клиентов серверу IKEv2 нужны сертификаты. Поэтому strongswan-pki поставляется с утилитой для генерирования центра сертификации и сертификатов сервера. Для начала создадим каталог для хранения всех этих компонентов. Заблокируем доступ к этому каталогу.

Теперь у нас есть отдельный каталог для сертификатов. Сгенерируем root ключ – 4096-битный RSA-ключ, с помощью которого вы сможете подписать root-сертификат.

Теперь можно создать ЦС и использовать ключ для подписи сертификата root:

Мы можем изменить параметры флага —dn (distinguished name) и указать свою страну, организацию и имя.

Шаг 3. Генерирование сертификата для VPN сервера

Создадим сертификат и ключ для сервера VPN, с помощью которого клиенты смогут проверить его подлинность.

Для начала создадим закрытый ключ для VPN сервера:

Затем создадим сертификат для VPN-сервера и подпишем его с помощью ЦС, который мы получили в предыдущем разделе. Запустим следующий набор команд, предварительно указав в параметрах CN (Common Name) и SAN (Subject Alternate Name) доменное имя или IP-адрес сервера.

Теперь, когда мы сгенерировали все файлы TLS / SSL, которые нужны StrongSwan, мы можем переместить их нв /etc/ipsec.d:

Теперь у нас есть сертификаты, которые защитят взаимодействие клиента и сервера. Кроме того, с их помощью клиенты смогут подтвердить подлинность VPN-сервера.

Шаг 4. Настройка StrongSwan

У StrongSwan есть стандартный конфигурационный файл. Прежде чем внести какие-либо изменения, создадим его резервную копию, чтобы иметь доступ к параметрам по умолчанию, если что-то пойдет не так:

Создадим новый файл:

Настроим регистрацию состояний демона (это пригодится при отладке и устранении неполадок) и разрешим резервные соединения:

Затем мы создадим раздел конфигурации для нашего VPN. Мы также сообщим StrongSwan создать VPN-туннели IKEv2 и автоматически загружать этот раздел конфигурации при запуске. Добавьте следующие строки в файл:

Мы также настроим обнаружение мертвых узлов, чтобы очистить любые «висячие» подключения в случае неожиданного отключения клиента. Добавьте эти строки:

Затем мы настроим параметры IPSec сервера:

Примечание. При настройке идентификатора сервера (leftid) используйте символ @, если ваш VPN-сервер будет идентифицирован по имени домена:

Если сервер будет идентифицирован по его IP-адресу, просто введите IP-адрес:

Затем мы можем настроить параметры IPSec на стороне клиента, такие как диапазоны частных IP-адресов и DNS-сервера:

Наконец, мы сообщим StrongSwan запросить у клиента учетные данные пользователя при подключении:

Файл конфигурации должен выглядеть так:

Не забудьте заменить @server_domain_or_IP на IP адрес сервера.

Сохраните и закройте файл, как только вы убедитесь, что настроили все как показано.

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

Наш VPN-сервер теперь настроен на прием клиентских подключений, но у нас еще не настроены учетные данные. Нам нужно сконфигурировать файл ipsec.secrets:

Нам нужно сообщить StrongSwan, где найти закрытый ключ для нашего сертификата сервера, чтобы сервер мог проходить проверку подлинности для клиентов.

Нам также необходимо настроить список пользователей, которым будет разрешено подключаться к VPN.

Для начала отредактируем файл:

Сначала мы сообщим StrongSwan, где найти наш закрытый ключ:

Затем мы определим учетные данные пользователя:

Теперь, когда мы закончили работу с параметрами VPN, мы перезапустим службу VPN, чтобы применить нашу конфигурацию:

Теперь, когда VPN-сервер полностью настроен пришло время перейти к настройке наиболее важной части: настройке firewall.

Шаг 6. Настойка брандмауэра и IP forwarding

Если вы еще не настроили UFW, вы можете создать базовую конфигурацию и включить ее:

Теперь добавьте правило, разрешающее UDP-трафик на стандартные порты IPSec, 500 и 4500:

Далее мы откроем один из файлов конфигурации UFW, чтобы добавить несколько низкоуровневых политик для маршрутизации и пересылки пакетов IPSec.Перед тем, как изменить этот файл, мы должны найти публичный интерфейс сети (public network interface). Для этого наберите команду:

Публичный интерфейс должен следовать за словом “dev”. Например, в нашем случае этот интерфейс называется eth0.

В верхней части файла (перед строкой *filter ) добавьте следующий блок конфигурации:

Измените eth0 в приведенной выше конфигурации на тот, который вы нашли с помощью ip route .

Далее, после блока *filter добавьте еще один блок конфигурации:

Прежде чем перезапустить брандмауэр, мы изменим некоторые параметры сетевого ядра, чтобы разрешить маршрутизацию от одного интерфейса к другому. Откроем файл конфигурации параметров ядра UFW:

Нам нужно настроить несколько вещей:

  • Во-первых, мы включим пересылку пакетов IPv4.
  • Мы отключим обнаружение Path MTU для предотвращения проблем фрагментации пакетов.
  • Мы также не принимаем перенаправления ICMP и не отправляем перенаправления ICMP для предотвращения атак man-in-the-middle.

Для применения настроек наберите команду:

Теперь мы можем применить все наши изменения, отключив и повторно включив брандмауэр:

Шаг 7. Настройка клиентов

Первым делом мы должны скопировать сертификат сервера на клиентское устройство.

Для передачи файла воспользуемся командой SCP.

Далее установим необходимые пакеты:

Перейдем в папку, где содержится скаченный ca-cert.pem .

Подключитесь к VPN-серверу с помощью charon-cmd, используя сертификат CA сервера, IP-адрес VPN-сервера и настроенное вами имя пользователя:

При подключении надо указать пароль пользователя VPN.

Теперь мы должны быть подключены к VPN. Для отключения надо нажать CTRL + C и дождаться закрытия соединения.

Эта инструкция подходит только для операционной системы Ubuntu 17.

Ubuntu 16 содержит устаревшие пакеты, которые работают не корректно.
Рекомендуем настроить OpenVPN подключение на Ubuntu 16.

Зайдите в раздел Все программы.

Все программы Ubuntu 17

Введите в строку поиска: terminal и запустите Терминал.

Терминал на Ubuntu 17

Введите команду. Возможно потребуется ввод пароля.

Обновление на Ubuntu 17

Выполните следующую команду для установки приложений.

Установка IKEv2 на Ubuntu 17

Зайдите в VPN Settings.

Настройки IKEv2 VPN на Ubuntu 17

Нажмите на знак +.

Создать IKEv2 VPN подключение на Ubuntu 17

Выберите IPSec/IKEv2 (strongswan).

IKEv2 VPN на Ubuntu 17

В разделе Подписки посмотрите домен для IKEv2 VPN, а также Логин и Пароль VPN.

Список IKEv2 VPN серверов

Выполните следующие шаги:

  1. Напишите любое название подключения
  2. Домен IKEv2 VPN сервера из раздела Аккаунт
  3. Аутентификация EAP
  4. Логин VPN
  5. Нажмите на иконку пользователя для сохранения пароля
  6. Пароль VPN
  7. Поставьте галку
  8. Поставьте галку
  9. Нажмите Add

Логин и Пароль для IKEv2 VPN на Ubuntu 17

Подключитесь к IKEv2 VPN на Ubuntu 17.

Подключение к IKEv2 VPN на Ubuntu 17

IKEv2 VPN подключение успешно установлено.

Успешное подключение к IKEv2 VPN на Ubuntu 17

Также можно подключиться к IKEv2 VPN через верхнее меню.

Подключение к IKEv2 VPN через меню на Ubuntu 17

Отключитесь от VPN сети при необходимости.

Отключение от IKEv2 VPN через меню на Ubuntu 17

VPN и прокси сервис защищает своих клиентов с 2006 года, используя надежные технологии в области анонимности передачи данных в Интернете.

IKEv2 зарекомендовал себя как чрезвычайно безопасный VPN протокол, который демонстрирует достаточно высокую стабильность и скорость соединения.

Более подробную информацию о функциях и преимуществах IKEv2 протокола вы можете найти в статье Что такое IKEv2?

Данная инструкция поможет вам настроить IKEv2 VPN клиент на самых популярных платформах, таких как iOS, macOS и Windows. Давайте начнем!

Скачайте VPN Unlimited!

Скачайте VPN Unlimited прямо сейчас и сделайте вашу работу в сети максимально безопасной, приватной и без каких-либо границ!

Прежде всего, вам необходимо создать файлы конфигурации для ручной настройки VPN. Для этого выполните несколько простых шагов, которые описаны в этой инструкции.

Обратите внимание, что создание файла с VPN конфигурациями эквивалентно 1 активному устройству и занимает 1 слот.

Теперь, выберите вашу платформу и выполните следующие действия.

Способ 1

1. При создании конфигураций для ручной настройки IKEv2 VPN клиента, вам необходимо выбрать ОС Windows, так как вам понадобится сертификат, который будет автоматически загружен при выборе этой платформы.


2. Чтобы установить плагин strongSwan NetworkManager, откройте Терминал и выполните в нем следующую команду:


3. Перейдите на вкладку Settings > Network и нажмите + в разделе VPN.


4. Выберите IPSec/IKEv2 (strongswan).


5. Заполните поля следующим образом:

Connection name: введите любое название на ваш выбор, например, VPN-Unlimited (IKEv2)

Address: скопируйте значение IPS из Личного кабинета

Certificate: выберите файл, который был загружен на ваше устройство

Authentication: выберите параметр EAP

Username: скопируйте значение Login из раздела Device Config вашего Личного кабинета

Request an inner IP address: отметьте это поле галочкой

После того как вы закончите, нажмите Add.


6. Чтобы установить VPN соединение, включите соответствующий переключатель и введите Password из раздела Device Config. Ваше IKEv2 VPN соединения будет установлено уже через пару секунд.


Способ 2

1.Установите StrongSwan и некоторые другие связанные пакеты.

2. Настройте параметры соответствующим образом. В качестве примера мы взяли настройки для VPN сервера в Сиднее, Австралия. Вам необходимо просто заменить выделенные данные вашими значениями.

3. Чтобы записать ваши учетные данные в /etc/ipsec.secrets, выполните следующую команду. Не забудьте, что вам необходимо использовать имя пользователя и пароль, которые вы ранее создали в Личном кабинете.

4. Добавьте системное хранилище OpenSSL сертификатов, чтобы сертификат KeepSolid VPN Unlimited мог быть подтвержден.

5. Чтобы новые настройки вступили в силу, перезапустите strongswan.

6. Установите IKEv2 VPN соединение:

Чтобы сделать соединение неактивным, введите:

Для проверки статуса вашего подключения, введите:

Отлично! Вы успешно настроили IKEv2 VPN клиент на вашем устройстве.

Важно! Обратите внимание, что вы несете полную ответственность за самостоятельную настройку вашего устройства с использованием сгенерированных ручных настроек.

Готовы начать безопасное онлайн-путешествие без блокировок?

Попробуйте VPN Unlimited для Linux и пользуйтесь Интернетом анонимно и без каких-либо ограничений!


Сейчас все вокруг настраивают VPN для удаленных сотрудников. Мне больно смотреть, как люди устанавливают монструозные глючные программы, настраивают какие-то сертификаты, устанавливают драйвера TUN/TAP и делают множество сложных операций, в то время как лучшее решение уже встроено в операционную систему.

IKEv2 — это современный протокол VPN, разработанный Microsoft и Cisco. Он используется по умолчанию для новых VPN-подключений в Windows, macOS, iOS. Он быстрее и безопаснее большинства VPN-протоколов и может легко настраиваться на стороне клиента в два клика без использования сторонних программ.

Я считаю, что IPsec IKEv2 отлично подходит не только для соединения серверов, но и для обычных VPN-подключений конечных пользователей. В этом посте я постараюсь убедить вас использовать IPsec IKEv2 для обычных домашних пользователей вместо OpenVPN.

IKEv2 быстрее

При прочих равных условиях, IKEv2 будет всегда быстрее OpenVPN. Это особенно заметно на маломощных системах с медленной памятью, например на роутерах или одноплатных компьютерах.

Дело в том, что IPsec работает в контексте ядра операционной системы, а OpenVPN в контексте пользователя (userspace), и на обработку каждого пакета происходит переключение контекста между процессами ядра и процессами пользователя. Это влияет как на пропускную способность, так и на задержки.



Сравнение задержек для разных протоколов VPN.

Скриншот выше показывает разницу в задержке в два раза между IPsec и OpenVPN. Разумеется, разницу в 1мс невозможно заметить на глаз, но при нагрузке на систему эти значения могут значительно изменяться. Кроме того, реальные показатели сильно зависят от характеристик конкретной системы, поэтому я не буду приводить абсолютные цифры для сравнения двух протоколов. Задержки очень важны при использовании голосовой и видеосвязи через VPN.

По моим субъективным ощущениям IKEv2 на Windows 10 работает заметно отзывчивее чем OpenVPN. Ведь реальное использование десктопного компьютера сильно отличается от синтетических тестов VPN-протоколов. Нагрузка на процессор и память непостоянная, пользователь может запускать ресурсоемкие программы, все это будет влиять на показатели.

IKEv2 проще в настройке

Все современные операционные системы (кроме Android) поддерживают IPsec IKEv2 прямо из коробки. Не нужно устанавливать никакие программы, драйвера виртуальных адаптеров TUN/TAP и прочее. Всё управление VPN происходит из системного меню.

При этом настройку на клиенте можно упростить до трех строчек:

  • Домен — для IPsec домен обязателен, так как для него выпускается SSL-сертификат
  • логин
  • пароль

Настройка на Windows 10

Мастер настройки VPN вызывается из меню подключения к WiFi. С настройкой одного окна справится пользователь любой квалификации. Созданное подключение активируется из меню со списком WiFi-сетей.



Интерфейс настройки нового IKEv2 подключения в Windows 10

В macOS поддерживается IKEv2 начиная с версии 10.11 (El Capitan). Создание подключения происходит через меню настроек сети.

image

Добавляем новое подключение. В качестве имени подключения задаем любое произвольное имя.

image

Для проверки подлинности сертификата, нужно указать доменное имя. При этом в поле «Server Address» можно указать IP-адрес сервера, а домен только в «Remote ID», тогда для подключения не будет выполняться DNS-резолв, и оно будет происходить чуть быстрее.

image

Логин и пароль пользователя указываем из файла /etc/ipsec.secrets

image

Настройку iOS можно выполнить вручную через мастер, но намного удобнее использовать профиль автоконфигурации mobileconfig.

Ручная настройка по смыслу аналогична десктопной macOS:

Настройки -> VPN -> Добавить конфигурацию VPN

IKEv2 это безопасно


Клиент устанавливает защищенный SSL-тоннель с сервером, и уже внутри него передается логин-пароль. По умолчанию в Windows и macOS для передачи пароля используется алгоритм mschapv2. Таким образом с помощью SSL-сертификата клиент проверяет подлинность сервера, а по логину-паролю сервер проверяет подлинность клиента.

Сервер IKEv2 может использовать один и тот же сертификат вместе с веб-сервером, например от популярного Let's Encrypt. Это сильно упрощает управлением сертификатами.

Такая же модель используется в OpenVPN, и при желании в нем можно использовать сертификат от Lets Encrypt, однако администратору в любом случае потребуется передать пользователю файл для настройки VPN.

Настраиваем IKEv2 сервер

Развернуть свой IKEv2 сервер можно за пару минут с помощью скриптов автоматической установки или используя готовые контейнеры. Использовать docker не рекомендуется, так как его сетевая подсистема снижает производительность IPsec на дешевых тарифах VPS. Вы также можете настроить IKEv2-сервер вручную, на Хабре есть статьи с примерами настройки сервера Strongswan.

Шаг 1: Выбор сервера

Для запуска VPN сервера нам потребуется VDS. Подойдет самая простая конфигурация с одним ядром процессора. Скрипт из нашего примера лучше всего протестирован на Ubuntu 18.04, поэтому при создании сервера выбираем этот образ ОС.


Ждем окончания установки сервера и копируем реквизиты для подключения. Пароль root придет на почту, либо его можно задать вручную через веб-интервейс. Далее все команды мы вводим


Шаг 2: Установка Strongswan

Подключаемся SSH-клиентом и запускаем скрипт установки:

Шаг 3: Настройка клиента

Введенные реквизиты пользователя VPN теперь нужно использовать для настройки на клиенте. Важно использовать именно то доменное имя, которое вы вводили в Hostname for VPN.

Шаг 4: Добавление новых пользователей

Чтобы добавить нового пользователя в уже созданный сервер, отредактируйте файл /etc/ipsec.sectes.


После добавления пользователя выполните команду ipsec secrets чтобы Strongswan перечитал конфиг.

Заключение

Мы рассмотрели удобство IKEv2 со стороны пользователя. Администрирование такого сервера не сложнее, а иногда даже проще чем OpenVPN. Если вы только планируете организовать удаленный доступ для своих сотрудников, обязательно посмотрите в сторону IKEv2. Не заставляйте своих пользователей устанавливать лишние программы, если все необходимое уже есть на их компьютере. Это удобнее, безопаснее и намного прогрессивнее.

Читайте также: