Vpn ikev2 настройка windows

Обновлено: 06.07.2024

Доброго времени суток, коллеги. Сегодня пишу заметку по настройке VPN-сервер IKEv2 на MikroTik. По окончании настройки к нему смогут подключиться клиенты с Windows, Android, Apple а также получим рабочий туннель для объединения 2-х офисов по схеме Site 2 Site в ситуации, когда белый IP-адрес лишь у одного микрота (сервера) либо когда он пингуется по DNS-имени. Авторизовываться будем по сертификатам, которые сгенерируем на Site-1.

Я ни в коем случае не претендую на звание ГУРУ. То, что я здесь излагаю является не более, чем записной книжкой и пособием по настройке оборудования. Если это послужит кому-нибудь подспорьем, то добро пожаловать

В создании данной статьи я руководствовался официальной документацией и выступлениями Никиты Тарикина в Малазии, Москве и Индонезии, за которые огромное ему СПАСИБО!

После написания 3-х предыдущих заметок вся настройка будет происходит в терминале с минимумом комментариев и картинок.

1. Настройка VPN-сервера (Site-1)

Настраиваем часовой пояс, NTP-клиента.

Добавляем бридж и вешаем пул адресов на него же

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

Генерируем корневой сертификат:

Генерируем сертификат VPN-сервера:

Создаём шаблон для дальнейшего создания сертификатов через копирование с шаблона:

Сертификат для схемы Site 2 Site (для микротика Site-2):

Для первого клиента:

Для второго клиента, а остальные по той же схеме:

Далее экспортируем сгенерированные ключи, но обратите внимание, что сертификаты экспортируются в разных форматах (pem и pkcs12). Обязательно установите пароль при экспорте, т.к. при его отсутствии ошибок не будет, но работать VPN тоже не будет. Ни в коем случае не экспортируйте CA-сертификат с паролем, т.к. тогда экспортируется и закрытый ключ.

Скачиваем экспортированные сертификаты и сохраняем в одну папку. Я еще и переименовал скаченные сертификаты для удобства, удалив начало cert_export_.

Чуть настроим FireWall и изменим MSS. Правила размещайте перед запрещающими. Я расположу их в самом начале списка (place-before=0)

Добавим правила NAT и поместим их над правилом основного маскарада:

Настраиваем параметры IPSec. Настройка едина как для конфигурации Client 2 Site, так и для Site 2 Site:

Сразу добавим GRE-туннель, который в дальнейшем позволит нам легко настроить маршрутизацию между офисами:

На этом настройку VPN-сервера можно считать законченной и пора переходить на сторону клиента.

2. Настройка клиента Windows.

Первым на очереди комп с установленной Windows 10 Pro x64 версия 1903.
В винде кликаем правой кнопкой мыши на значок сетевого подключения и выбираем пункт ОТКРЫТЬ ПАРАМЕТРЫ СЕТИ И ИНТЕРНЕТ.

Слева выбираем раздел VPN и справа ДОБАВИТЬ VPN ПОДКЛЮЧЕНИЕ:

Импортируем сертификат:
Расположение хранилища: Локальный компьютер
Пароль на сертификат: который вы выбрали при экспорте сертификата
Далее все по умолчанию

Далее кликаем правой кнопкой мыши на значок сетевого подключения и выбираем пункт ОТКРЫТЬ ПАРАМЕТРЫ СЕТИ И ИНТЕРНЕТ.
В правой части левый клик на пункте НАСТРОЙКА ПАРАМЕТРОВ АДАПТЕРА и в открывшемся окне правый клик на созданном VPN-подключении -> СВОЙСТВА.
В разделе БЕЗОПАСНОСТЬ пункт ШИФРОВАНИЕ ДАННЫХ - самое стойкое (отключиться, если нет шифрования)
- выбираем

В случае если вам не нужно выходить в интернет через шлюз подключенной через VPN сети, то выбираем вкладку СЕТЬ, двойной левый клик на IP версии 4, в открытом окне ДОПОЛНИТЕЛЬНО и далее во вкладке ПАРАМЕТРЫ IP и снимаем галку ИСПОЛЬЗОВАТЬ ОСНОВНОЙ ШЛЮЗ В УДАЛЕННОЙ СЕТИ.

3. Настройка MikroTik по схеме Site 2 Site (Site-2).

Настраиваем часовой пояс, NTP-клиента.

и импортируем их по порядку. Обратите внимание, что импортировать нужно сначала CRT, а затем KEY.

Настроим FireWall, параметры IPsec, добавим GRE-туннель и добавим маршрут в сеть Site-1:

Если вы всё сделали по инструкции, то на данном этапе туннель должен заработать! Если же это не так, то попробуйте отключить запрещающие правила на FireWall на обоих маршрутизаторах.

Для настройки клиента на устройствах под управлением Android и и продуктов фирмы Apple предлагаю проследовать на сайт официальной документации, дублировать которую просто не вижу смысла.

Нюансы Windows 10

Небольшое дополнение: При подключении с ПК под управлением Windows (в моем случае Windows10 x64 1903) к разным микротам VPN-подключение непонятным образом выбирает CA-сертификат. Решение подсказали на форуме и состоит оно в принудительном указании соответствия сертификата подключению, используя powerShell.

Также случается, что на винде не получается автоматически маршрут к удаленной сети. Эта проблема также решается через powerShell добавлением маршрута после подключения определенного VPN.

Также рекомендую снять галочку "использовать основной шлюз в удаленной сети" в свойствах VPN-подключения -> вкладка СЕТЬ -> TCP/IPv4 -> Дополнительно -> вкладка "Параметры IP", чтобы не маршрутизировать ваш доступ к WWW через шлюз подключаемой сети.

Нюансы Windows 7

Настройка VPN-подключения в Windows 7 ничем не отличается от Windows 10 кроме процесса импорта сертификатов в хранилище.
Итак: нажимаете Windows + R и в строке пишем mmc и нажимаем Enter.

Меню Файл - > Добавить или удалить оснастку.


В левой части открывшегося окна ищем пункт Сертификаты и нажимаем кнопку Добавить .


В следующем окне нужно выбрать учетной записи компьютера


И жмём Далее -> Готово -> ОК .

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

Сертификаты -> Правой кнопкой мыши по Личное -> Все задачи -> Импорт -> и выбираем наш сертификат p12 .

После импорта настоятельно рекомендую проверить, чтобы клиентский серт был в личном, а СА в доверенных.

Надеюсь, что у вас всё получилось.
Если же нет, то добро пожаловать в раздел КОНТАКТЫ

IKEv2 — современный и надёжный протокол. Поддерживается операционной системой Windows по умолчанию, но только начиная с версии Windows 7.

Настройка значительно сложнее, чем L2TP и PPTP, но если строго следовать пошаговой инструкции, всё получится.

Для начала скачайте необходимые ключи и сертификаты для подключения.

Очень важно сделать это именно следующим способом и никак иначе.

1. Распакуйте архив с сертификатами IKEv2.

2. Нажмите Пуск → Служебные → Windows → Командная строка, введите mmc, нажмите Enter.

VPN настройка ikev2

VPN настройка ikev2

3. Нажмите Файл → Добавить или удалить оснастку (или Ctrl+M).

4. Выберите "Сертификаты", затем кнопку Добавить, "учетной записи компьютера".

VPN настройка ikev2

Далее, "локальным компьютером", Готово.

6. В появившемся списке разверните категорию Сертификаты.

VPN настройка ikev2

7. Правой кнопкой по Личное → Все задачи → Импорт.

8. Далее - Обзор - выберите формат *.p12 - укажите *.p12 файл из архива.

10. Введите пароль из файла p12_password.txt из архива.

VPN настройка ikev2

11. Далее → Далее → Готово → ОК.

12. В списке разверните категорию Личное → Сертификаты.

13. Найдите HideMy.name CA, перетащите его в раздел Доверенные корневые центры сертификации.

VPN настройка ikev2

14. На этом Консоль можно закрыть, на предложение сохранять текущий вид нажмите Нет.

VPN на ikev2

Создать сразу IKEv2 нельзя, поэтому сначала создадим PPTP, а затем отредактируем. Так у нас появится новое IKEv2 подключение.

1. Откройте Панель управления → Центр управления сетями и общим доступом

Создание IKEv2 подключения

2. Нажмите Настройка нового подключения или сети

Создание IKEv2 подключения

3. Выберите Подключение к рабочему месту → Создать новое подключение → Использовать мое подключение к Интернету (VPN)

Создание IKEv2 подключения

4. В поле Интернет-адрес впишите IP адрес выбранного сервера. Список серверов есть в архиве в файле servers.txt

5. В поле Имя можно ввести любое название для соединения

Создание IKEv2 подключения

6. Установите галочку Не подключаться сейчас, и нажмите Далее

7. Ничего не заполняя, нажмите Создать, затем Закрыть

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

9. Найдите созданное подключение, правой кнопкой → Свойства

10. Вкладка Безопасность, Тип VPN → IKEv2, Проверка подлинности → Использовать сертификаты компьютера

Создание IKEv2 подключения

12. Снова правой кнопкой по соединению → Подключить

Создание IKEv2 подключения

Если подключилось — поздравляем, вы всё сделали правильно :-)

Можно как создавать новые подключения с другими серверами, так и редактировать уже созданное подключение просто вписывая другие IP-адреса серверов.

Для этого отключитесь, зайдите в свойства соединения, вставьте IP-адрес требуемого сервера и подключитесь снова.


Сейчас все вокруг настраивают 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. Не заставляйте своих пользователей устанавливать лишние программы, если все необходимое уже есть на их компьютере. Это удобнее, безопаснее и намного прогрессивнее.

VPN L2TP & IKEv2

У IKEv2 такой проблемы нет, поэтому это единственный вариант подключить Windows Phone к корпоративной сети.
В данной статье я буду рассматривать не самую сложную сетевую инфраструктуру. Все роли можно объеденить на одном сервере, но я отделю роль NPS, для демонстрации настройки RADIUS клиентов. Тестовый стенд:


DC1 - 2016 TP5, контроллер домена, AD CS для сертификатов, RAS для VPN, DHCP
NPS1 - 2016 TP5, сервер сетевый политик для RADIUS сервера
NAT - 2012 R2, для эмуляции роутера
Windows 10 как клиент VPN

Для чего нужен RADIUS сервер. Без него мы можем лишь разрешать или запрещать VPN подключение. С ним мы можем указывать каким группам пользователей можно подключаться, к каким ресурсам в сети они имеют доступ.

Роль AD CS нужна для выдачи сертификата серверу VPN, который будет использоваться для IKEv2. L2TP будет работать по упрощённой схеме с общим секретным ключом. С сертификата и начнём.

Для начала необходимо создать новый шаблон на основании шаблона "Компьютер". Делается это в оснастке Certification Authority:



В который мы вносим два обязательных изменения: Subject Name и IP security IKE intermediate.


Необязательное изменение, необходимое только если VPN сервер установлен на контроллере домена: Право на выдачу сертификата для контроллеров домена.


Выпускаем новый шаблон:


Открываем оснастку Certificates и запрашиваем персональный сертификат для сервера.


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


В итоге должно выглядеть так:


В свойствах VPN сервера выбираем этот сертификат:


На изображении выше видно, что нельзя выбрать провайдеров аутентификации. Это будет только в том случае, когда NPS роль установлена на тот же сервер, где установлена роль RAS. Теперь перейдём к настройке RADIUS сервера. Для начала надо определить клиентов RADIUS (когда NPS установлен на отдельном сервере):


И указать VPN серверу в оснастке RRAS, что аутентификация будет проходить через RADIUS сервер (когда NPS установлен на отдельном сервере):



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

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


Разрешаем подключение:


Определяем методы Аутентификации, в том числе и порядок:


Задаём уровень шифрования. Я выбираю максимальный:


Всё. Политика настроена, теперь лишь нужно в ней включить игнорирование настроек пользоватильской учётной записи.


Закончим настройку VPN сервера, разрешив использование сертификата для IKEv2, а так же задав общий секретный ключ для L2TP:


По умолчанию Клиент VPN получит IP адрес от доменного DHCP сервера.


Если задать выдачу VPN адресов не из DHCP, то тогда на каждом клиенте необходимо будет добавить статические маршруты в другие сети, которые используются в доменной сети. С DHCP это гораздо проще. Нужно лишь заполнить опцию 121 (которая, к сожалению, криво работает c Debian 8):


Теперь настроим NAT на проброс портов для L2TP и IKEv2. На Windows Server это делается так:


Далее необходимо создать VPN подключение на клиенте. Для этого я буду использовать PowerShell:

Каждое подключение создаётся для всех пользователей компьютера. Нужно это для одновременного входа в систему и подключения VPN. Если этого не надо, то удалите ключ -AllUserConnection .

Если нужно, чтобы весь трафик, включая интернет, шёл через VPN сервер, то удалите ключ -SplitTunneling . Для IKEv2 необходимо использование только имени сервера, с IP адресом работать не будет (хотя можно попытаться засунуть IP адрес в CN сертификата). На клиенте задаём вручную общий секретный ключ и перезагружаем клиент, если была произведена правка реестра:






А вот так выглядят подключения в оснастке RRAS:


Клиент "а" подключился дважды, по этому для подключения по IKEv2 отбражается его IP адрес, полученный с подключением по L2TP.
Тип аунтентификации EAP - это Windows клиенты. MS CHAP V2 - Apple OS X.

Хотите знать кто, когда и откуда подключался к VPN сервера? Тогда вам в эту тему.
Хотите кластер из VPN? Тогда вам в эту тему. С её помощью я настраивал свой первый VPN, а потом всё резюмировал в свой статье.

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