Ikev2 настройка сервера windows

Время на прочтение5 мин

Количество просмотров194K

Сейчас все вокруг настраивают 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-сертификат
  • логин
  • пароль

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

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

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

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

Настройка macOS

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

image

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

image

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

image

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

image

Настройка iOS

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

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

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

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

На предыдущем шаге мы выяснили, что для настройки подключения достаточно логина и пароля. Но как клиенту проверить, что подключение не прослушивается, не подменяются данные и сервер действительно тот, за кого себя выдает? Для этого используются обычные SSL-сертификаты, которые мы привыкли использовать для веб-сайтов и HTTPS.

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

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

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

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

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

Мы будем использовать один из наиболее удачных вариантов скриптов автонастройки github.com/jawj/IKEv2-setup
Этот скрипт хорош тем, что использует сертификаты от Lets Encrypt и автоматически генерирует валидный сертификат.

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

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

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

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

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

# запуск автоматической установки сервера IKEv2 
wget https://raw.githubusercontent.com/jawj/IKEv2-setup/master/setup.sh
chmod u+x setup.sh
./setup.sh
....
# Введите имя домена направленного на IP-адрес сервера
# используйте сервис sslip.io если у вас нет домена
Hostname for VPN: 123-45-67-89.sslip.io
# Имя пользователя VPN
VPN username: coolguy
# пароль 
VPN password (no quotes, please):
....
# скрипт запрос создать нового SSH-пользователя, этот шаг нельзя пропускать.

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

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

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

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

# nano /etc/ipsec.secrets
123-45-67-89.sslip.io : RSA "privkey.pem"
coolguy : EAP "C00lPassword"
badguy : EAP "bAdP$$word"

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

Заключение

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

In this blog we’ll create VPN server wich will be leveraging IPsec Tunnel Mode with Internet Key Exchange version 2 (IKEv2).With the functionality provided by the IKEv2 Mobility and Multihoming protocol (MOBIKE), this tunneling protocol offers inherent advantages in scenarios where the client moves from one IP network to another (for example, from WLAN to WWAN).For example, this permits a user with an active IKEv2 VPN tunnel to disconnect a laptop from a wired connection, walk down the hall to a conference room, connect to a wireless network, and have the IKEv2 VPN tunnel automatically reconnected with no noticeable interruption to the user.

Installing Certificates to VPN server and VPN client 

Creating certificate templates

In Certification Authority (CA),from CA console,right click Certificate Templates-Manage

1 (1)

Right-Click IPSec template-Duplicate template

1.png

On Request Handling tab click Allow private key to be exported

Click Extension tab-Application Policies-Edit

Remove IP Security IKE intermediate

then click Add and choose Server Authentication

1-1.png

Click Key Usage-Edit

Ensure that Digital signature is selected. If it is, click Cancel. If it is not, select it, and then click OK.

In the security tab-click Object Types-Computers-Add Domain Computers

3

Make sure Read,Enroll and Auto-Enroll is selected

In General tab give template a name

Now,right click Certification Template-New-Certificate Template to issue

6

Choose new template

7.png

Enrolling certificate on VPN server

On VPN server:start-run-mmc-Add/remove snap-in

1-1

Click Certificates-Add-Computer Account

8.png

Right click Personal-All tasks-Request New Certificate

1-1.png

Check certificate templates-Properties

10

Click Subject tab-Subject Name-Common name (from drop-down menu)-FQDN for VPN server-Add

Alternative Name-choose DNS-set FQDN for VPN server-ADD

11

New certificate should be created

12.png

This certificate should be exported and then imported to client machine

Exporting certificate

Right-click certificate-All tasks-Export

1-1.png

Export private key

1-1.png

Set password and specify file in which certificate should be saved.

Copy file to client computer

Importing file on client machine

This certificate should be imported to Trusted Root Certification Authority on client.

Start-run-mmc-add Certificate snap-in-local computer

Right click Trusted Root Certification Authorities-All task-import

1-1.png

Browse to copied file and enter password

Installing Roles

On Server install Network Policy Server and Remote Access roles

1-1.png

Open Routing and Remote Access console-right click server icon-Configure and Enable Routing and Remote Access

13

Remote access (dial-up or VPN)

14

Check VPN

15

Select internet facing interface

16.png

Define VPN address pool

17

We are not using RADIUS,intead we’ll use NPS

19

Right click Remote Access Logging-Launch NPS

20.png

Click Network Access Policies

21

Right click Connections to Microsoft Routing and Remote Access Server-Properties

22.png

Check Grant access

23

Click Constraints-Select Microsoft:Secured password (EAP-MSCHAP v2)

24

If it’s not selected add it

1-1.png

Enable user VPN access

In ADUS right click user-Dial-in-Allow access

1-1.png

Client setting

In hosts file add entry for VPN server (name must be equal to one specified in SSL certificate)

1-1.png

Creating VPN client connection

1-1.png

1-1.png

Use my insternet connection (VPN)

1-1.png

I’ll set up an internet connection later

1-1.png

In Internet address type VPN server name

1-1.png

Specify username/password

1-1.png

In Security tab,for Type of VPN select IKEv2-Data encryption-Require encryption-Authentication:Microsoft:Secured password (EAP-MSCHAP v2)

We can see that IKEv2 is used,client got address from our VPN pool (10.10.10.3)

1-1.png

1-1

В нашем справочнике есть статья, посвящённая настройке VPN-канала с использованием образа на основе Windows Server 2019, на котором развёрнут VPN-сервер с возможностью доступа к нему с использованием протокола L2TP. Данный образ позволяет организовать VPN-подключение что называется “из коробки”. В настоящем руководстве мы разберём альтернативный способ настройки VPN-канала на основе StrongSwan IKEv2/IPSec и подключения к нему из Windows и Android.

Для создания VPN-сервера необходимо зарегистрироваться в личном кабинете, после чего во вкладке Заказать выбрать соответствующее расположение дата-центра. В нашем примере мы будем использовать Interxion, Амстердам.

Выбор дата-центра - Настройка VPN на основе StrongSwan

Далее в разделе Конфигурация укажите необходимые параметры создаваемой системы и затем в строке Шаблон сервера из списка выберите StrongSwan IKEv2/IPSec - Debian 11.

Выбор шаблона сервера - Настройка VPN на основе StrongSwan

После оплаты и завершения процесса установки операционной системы перейдите во вкладку Мои серверы, где в списке серверов появится новый VPS. Там вы сможете увидеть учётные данные для подключения к нему: IP-адрес, логин и пароль администратора системы. Та же информация поступит в виде сообщения на электронную почту, используемую вами для регистрации на хостинге.

Данные созданного VPS

Затем на своём локальном компьютере откройте браузер и в его адресной строке перейдите по адресу вида https://your-server-ip:5000, где your-server-ip – IP-адрес вашего сервера. При этом в открывшемся окне система попросит ввести соответствующие логин и пароль для подключения.

Подключение к веб-интерфейсу VPN-сервера

После успешной авторизации вы получите доступ к веб-интерфейсу VPN-сервера. Здесь для завершения его настройки кликните на ссылку произвести инициализацию. В результате VPN-сервер применит текущую конфигурацию и создаст сертификат для подключения.

Веб-интерфейс VPN-сервера

Подключение к VPN из Windows

Для подключения к созданному VPN-каналу из Windows на подключаемом компьютере установите сгенерированный сертификат. Для этого в веб-интерфейсе VPN-сервера кликните в корневой сертификат crt, после чего откройте загруженный файл сертификата. В открывшемся окне нажмите Установить сертификат.

Сертификат - Настройка VPN на основе StrongSwan

Затем в разделе Расположение хранилища выберите опцию Локальный компьютер, после чего нажмите Далее.

Мастер импорта сертификатов

В следующем окне укажите опцию Поместить все сертификаты в следующее хранилище и при помощи кнопки Обзор из списка выберите Доверенные корневые центры сертификации. Для продолжения нажмите Далее.

Выбор хранилища сертификатов

Для того, чтобы завершить процесс импорта сертификата, нажмите Готово.

Завершение мастера импорта сертификатов

После завершения работы мастера нажмите ОК.

Далее в стартовом меню откройте Параметры и там перейдите Сеть и Интернет 🠒 VPN.

Сеть и Интернет - Настройка VPN на основе StrongSwan

Здесь в разделе Подключения VPN нажмите Добавить VPN.

Добавление VPN - Настройка VPN на основе StrongSwan

В открывшемся окне заполните следующие поля:

  • Имя подключения – название создаваемого подключения (может быть любым);
  • Имя или адрес сервера – IP-адрес виртуального сервера;
  • Тип VPN – необходимо выбрать IKEv2;
  • Тип данных для входа – выберите Имя пользователя и пароль;
  • Имя пользователя – указано в разделе Логин и пароль для доступа (EAP) веб-интерфейса VPN-сервера;
  • Пароль – также указан в разделе Логин и пароль для доступа (EAP) веб-интерфейса VPN-сервера.

После чего нажмите Сохранить.

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

Подключение к VPN-серверу - Настройка VPN на основе StrongSwan

Подключение к VPN из Android

Для подключения Android-устройства к VPN-серверу необходимо загрузить и установить на гаджет клиентское приложение StrongSwan.

StrongSwan в Google Play

Найти его можно воспользовавшись либо поиском в Google Play, либо ссылкой из веб-интерфейса VPN-сервера.

Веб-интерфейс VPN-сервера

После установки StrongSwan перейдите в веб-интерфейс VPN-сервера и скачайте конфигурацию sswan для дальнейшей загрузки её в клиентское приложение.

Веб-интерфейс VPN-сервера

В клиенте StrongSwan перейдите в главное меню и выберите Import VPN profile.

Импорт профиля VPN

Затем укажите приложению загруженный ранее файл конфигурации, введите логин, указанный в веб-интерфейсе VPN-сервера, и нажмите IMPORT.

Ввод данных для VPN-подключения

Теперь для подключения к VPN кликните в добавленный профиль, введите пароль и нажмите СОЕДИНИТЬ.

Ввод пароля для VPN-подключения

В результате ваш гаджет подключиться к VPN-серверу.

Подключение к VPN-серверу

Создание дополнительного пользователя

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

Веб-интерфейс StrongSwan

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

Чтобы добавить в StrongSwan дополнительного пользователя, подключитесь к виртуальной машине по SSH и перейдите в каталог /etc. Здесь откройте для редактирования файл ipsec.secrets.

# cd /etc
# nano ipsec.secrets

И в этот файл дополнительной строкой добавьте нового пользователя, например youruser : EAP "Password1". В данном случае замените youruser на имя создаваемого пользователя, а Password1 – на его пароль.

После чего закройте файл с сохранением внесённых изменений и перезапустите службу StrongSwan.

# systemctl restart strongswan-starter.service

После чего проверьте корректность добавления учётной записи, обновив страницу веб-интерфейса.

Веб-интерфейс StrongSwan

С этого момента вы сможете использовать нового пользователя для подключения к своему VPN-каналу.

Ссылки

https://interface31.ru/tech_it/2020/04/nastraivaem-ikev2-vpn-server-na-routerah-mikrotik.html

Настройка

Настройка Mikrotik IKEv2 VPN Server

Настройка сертификатов на VPN-Сервере Mikrotik

При создании сертификатов с использованием доменного имени подключиться с клиента по IP-адресу будет невозможно
Сервер IKEv2-VPN для подключения по внешнему IP-адресу сделать можно, но при изменении внешнего IP на микротике использовать этот VPN сервер будет невозможно

cloud.cless.pro — доменное имя, привязанное к внешнему IP-адресу микротика-впн-сервера, к которому будут подключаться VPN-клиенты

Создадим корневой центр сертификации

/certificate add name=ikev2_ca common-name=ikev2_ca days-valid=3650 key-usage=crl-sign,key-cert-sign key-size=2048

Подписываем корневой центр сертификации

192.168.17.8 — локальный адрес микрота как идентификатор

/certificate sign ikev2_ca ca-crl-host=192.168.17.8

Выпустим и подпишем сертификат сервера

/certificate add name=cloud.cless.pro common-name="cloud.cless.pro" subject-alt-name=DNS:"cloud.cless.pro" key-size=2048 days-valid=3650 key-usage=tls-server

/certificate sign cloud.cless.pro ca=ikev2_ca

Выпустим и подпишем сертификат клиента (пользователя VPN)

/certificate add name=SmirnovaMV common-name="SmirnovaMV" key-size=2048 days-valid=3650 key-usage=tls-client

/certificate sign SmirnovaMV ca=ikev2_ca

Экспортируем сертификат клиента в файл ОБЯЗАТЕЛЬНО С ПАРОЛЕМ

При экспорте сертификата без пароля ошибок не будет, при импорте файла сертификата без пароля в Windows ошибок тоже не будет, НО VPN-клиент на Windows при подключении будет выдавать ошибку

/certificate export-certificate SmirnovaMV type=pkcs12 export-passphrase=12345678

Получили файл сертификата «cert_export_SmirnovaMV.p12», который будем использовать далее на Windows машине для создания VPN-туннеля

Настройка Firewall Для разрешения трафика IPSec на VPN-Сервере Mikrotik

Разрешаем порты IPSEC udp/500,4500 на INPUT с внешнего интерфейса

/ip firewall filter add action=accept chain=input comment=IPSEC-IKEV2 dst-port=500,4500 in-interface=ether3-wan1 ipsec-policy=in,ipsec protocol=udp

Настройка IP-POOL для клиентов VPN на VPN-Сервере Mikrotik

Пул IP для клиентов VPN, подключающихся с Windows-машин

/ip pool add name=vpn_from_out ranges=172.16.17.10-172.16.17.254

Настройка IPSEC+IKEv2 на VPN-Сервере Mikrotik

/ip ipsec profile add dh-group=modp2048,modp1024 dpd-interval=2m dpd-maximum-failures=5 enc-algorithm=aes-128,3des hash-algorithm=sha1 lifetime=1d name=ikev2 nat-traversal=yes proposal-check=obey

/ip ipsec proposal add auth-algorithms=sha1 disabled=no enc-algorithms=aes-256-cbc,aes-192-cbc,aes-128-cbc lifetime=30m name=ikev2 pfs-group=none

vpn_from_out — пул IP для клиентов VPN, подключающихся с Windows-машин

split-include=192.168.17.0/24 — подсеть офиса за микротом с VPN-сервером, маршрут до этой сети появится на клиенте для доступа к сети за микротиком-впн-сервером

/ip ipsec mode-config add address-pool=vpn_from_out address-prefix-length=32 name=ikev2-cfg split-include=192.168.17.0/24 system-dns=yes

/ip ipsec policy group add name=ikev2-policies

/ip ipsec peer add disabled=no exchange-mode=ike2 name=ikev2-peer passive=yes profile=ikev2 send-initial-contact=yes

172.16.17.0/24 — подсеть для клиентов впн, подключающихся с Windows-машин

/ip ipsec policy add disabled=no dst-address=172.16.17.0/24 group=ikev2-policies proposal=ikev2 protocol=all src-address=0.0.0.0/0 template=yes

cloud.cless.pro — сертификат сервера

/ip ipsec identity add auth-method=digital-signature certificate=cloud.cless.pro disabled=no generate-policy=port-strict mode-config=ikev2-cfg peer=ikev2-peer policy-template-group=ikev2-policies

Настройка Windows 10 IKEv2 VPN Client

Копируем файл сертификата «cert_export_SmirnovaMV.p12» из микрота на Windows машину

Настраиваем клиент VPN

Статус подключения на Mikrotik VPN сервере

После успешного подключения с Windows смотрим статус пира на микроте

/ip ipsec active-peers print

...
 #    ID                   STATE              UPTIME          PH2-TOTAL REMOTE-ADDRESS                                                          DYNAMIC-ADDRESS                                
 0 RN SmirnovaMV           established        1m23s                   1 78.132.136.195                                                          172.16.17.13
...

Нерешенные проблемы

Клиенту на Windows отдается маршрут до внутренней подсети за микротиком 192.168.17.0/24, с клиента 17 подсеть пингуется норм,

НО с микротика-впн-сервера IP адрес клиента на Windows из пула (например, 172.16.17.13) не пингуется.

Пробовал создать бридж с адресом сервера 172.16.17.1 — безрезультатно.

Возможно проблема из-за того, что клиенту выдается адрес с префиксом маски /32:

   IPv4-адрес. . . . . . . . . . . . : 172.16.17.13

   Маска подсети . . . . . . . . . . : 255.255.255.255

Не нашел как отдать префикс /24 клиенту из настроек IPsec на микроте.

Разобраться.

Provide feedback

Saved searches

Use saved searches to filter your results more quickly

Sign up

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Сканер obd2 программа для windows
  • Не обнаружен драйвер носителя при установке windows 10
  • How to install numpy for windows
  • Reload environment variables windows
  • Ограниченное управление доступом windows