Ikev2 windows 7 не получает маршруты

Обновлено: 03.07.2024

Может я не умею искать, но никак не могу найти ни одного описания по настройке Mikrotik в качестве IKEv2+IPSEC сервера, с авторизацией по паролю.
Именно по паролю.
Не авторизация по сертификатам, которая описывается во всех статьях, которые я нашел.

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

Изучив разные типы VPN выбор пал на IKEv2+IPSEC из-за:
1) Поддержка нескольких одновременных подключений VPN за одним NAT'ом
2) Нативная поддержка встроенными клиентами всеми устройствами, и операционными системами, без надобности установки стороннего ПО.
3) Возможность доставки маршрутов до пользователя.

Авторизация по паролю, и категорический отказ от авторизации по сертификатам:
1) Пользователь не должен вообще никак возиться со скачиванием и установкой сертификатов. Он должен ввести свой логин и пароль от корпоративной учетной записи Windows, и все. (ну плюс пароль IPSEC). В данный момент пользователи у меня так авторизуются через RADIUS+AD
.
2) Установка соединения должна быть простой, понятной для обычных юзеров настолько, что при подключении к VPN очередного устройства юзер смог бы сам повторить подключение, не вникая в подробности, куда ставить сертификат, и зачем он вообще нужен.

Единственные мануалы и описания, что я нашел в данной связке, это сервер на основе PFSense, но его использовать как я думаю в моей ситуации не очень этично, так как во-первых в парке серверов у нас нет ни одной линукс-машины, кроме астериска, и не планируется. Конечно я пытаюсь на основе настроек PFSense что-то соорудить похожее на Mikrotik, но это не так просто. Да и микротик, который смотрит в интернет, и раздаёт L2TP поддерживает аппаратное шифрование для VPN, и вообще он загружен на 0%, в пике рабочего дня на 1%.

Думаю, это все же возможно, так как в вики по вышеприведенной ссылке есть раздел
Simple mutual PSK XAuth configuration, который я так понимаю мне как раз и нужен.

Буду признателен всем отзывам, советам, а может кто-то поделится опытом в настройке такой же конфигурации.

Доброго времени суток, коллеги. Сегодня пишу заметку по настройке 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 .

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

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

Центр управления сетями в Windows 7

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

Использовать мое подключение к Интернету

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

Посмотреть список IKEv2 VPN серверов

  1. Адрес IKEv2 VPN сервера
  2. Любое название подключения
  3. Отметьте Не подключаться сейчас

IP адрес IKEv2 VPN сервера в Windows 7

  1. Логин VPN
  2. Пароль VPN
  3. Отметьте Запомнить этот пароль

Логин и пароль VPN сервера в Windows 7

IKEv2 VPN настроен в Windows 7

Выберите Подключение к IKEv2 VPN серверу в Windows 7.

Подключение к IKEv2 VPN серверу в Windows 7

Свойства IKEv2 VPN подключения в Windows 7

Уберите галку с Включать домен входа в Windows.

Отключить домен входа в Windows 7

Выберите протокол IKEv2 и обязательное шифрование.

Протокол IKEv2 и обязательно шифрование в Windows 7

Подключитесь к IKEv2 VPN серверу в Windows 7.

Кнопка Подключение к IKEv2 VPN серверу в Windows 7

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

Успешное подключение к IKEv2 VPN в Windows 7

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

Настройка VPN IKEv2 сервера Mikrotik


В этой инструкции описана настройка VPN сервера IKEv2 на Mikrotik на базе ключей, без паролей. Это максимально безопасный вариант VPN, подбирать пароль в этом случае бессмысленно. Это затрудняет начальную настройку сервера, требует отправки клиенту сформированных сертификатов, что в некоторых случаях может быть менее удобным. Но, как и всегда, действует правило "вам шешчки или ехать?" - больше безопасности - меньше удобства. Это верно почти всегда.

Освоить MikroTik Вы можете с помощью онлайн-куса «Настройка оборудования MikroTik». Курс основан на официальной программе MTCNA. Автор курса – официальный тренер MikroTik. Подходит и тем, кто уже давно работает с микротиками, и тем, кто еще их не держал в руках. В курс входит 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.


IKE означает "Internet Key Exchange" и чтобы было, чем обмениваться, это надо сначала настроить. В общем, весь процесс настройки VPN сервера состоит из двух частей, по большому счету: выпуск и экспорт ключей и сертификатов и настройка IPSec. Дополнительно приведен пример firewall. Итак, есть микротик, VPN IKEv2 будем "вешать" на IP адрес 1.2.3.4. Можно и по доменному имени, а можно по публичному IP-адресу, без доменного имени. Рассмотрю вариант, когда доменного имени нет.

1. Точное время

Настройка времени важна для любого VPN, поэтому сразу проверим/настроим часовой пояс и синхронизацию времени:

Mikrotik - NTP

2. Сертификаты и ключи

Наш микротик будет:
а) выдавать и удостоверять ключи для себя (сервер VPN) и удаленных клиентов, для чего сначала будет настроен CA ("удостоверяющий центр"),
б) выполнять роль VPN-сервера.

CA ("удостоверяющий центр" - выдает заверенные сертификаты сервера и клиентов):

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

Mikrotik - CA

Не забывайте подписывать все выпускаемые сертификаты! CA подписывает сам себя, а потом CA подписывает все остальные сертификаты!

Серверный сертификат:

Mikrotik - VPN server certificate

Клиентский сертификат:

Внимательно и аккуратно заполняйте поля Common Name и Subject Alt. Name - на основании этих полей на клиенте будет происходить проверка пользователя! Если допустить опечатку на этом месте, потом придется перевыпускать этот сертификат, а это немного заморочный процесс - выпуск, экспорт, скопировать, перенести и т.д.

Либо по стечению обстоятельств, либо это реально такое ограчение, но при выпуске сертификата, в левой части которого (до символа @) были заглавные буквы, Windows не подключалась к серверу с ошибкой 13801 "Неприемлемые учетные данные проверки подлинности ike".

Mikrotik VPN Client Certificate

В итоге, у нас есть ключи и сертификаты "cacert" (CA, выпускает и подписывает сертификаты), "Mikrotik" (VPN сервер), "vpnuser1" (клиент).

Экспорт ключей

Для установки на клиентский компьютер/смартфон надо экспортировать сертификат и ключ клиента, защитив пакет паролем:

Mikrotik VPN - Export Client Key and Certificate

/certificate export-certificate vpnuser1@1.2.3.4 type=pkcs12 export-passphrase=p@ssw0rd555

и сертификат CA "cacert" (только сертификат, БЕЗ ПРИВАТНОГО КЛЮЧА!):

Mikrotik Export Server Certificate (PEM)

На картинке опечатка закралась, экспорт происходит именно cacert, а не Mikrotik.

/certificate export-certificate cacert type=pem

Скачайте из Files файлы "cert_export_cacert.crt" и "cert_export_vpnuser1@1.2.3.4.p12" на клиентский компьютер и импортируйте сертификат и закрытый ключ в Личные сертификаты (если это Windows). Сертификат "ca" надо установить в "Доверенные корневые центры сертификации".

Сертификат должен стать для клиента VPN (неважно, Mac, Win, iPhone, Android) ДОВЕРЕННЫМ! Для этого и нужно экспортировать cacert и сделать его доверенным сертификатом CA на клиенте.

3. IKE VPN

3.1) Pool:
Клиентам VPN лучше всегда давать отдельные IP-адреса, отличные от основного диапазона. Создадим пул адресов для VPN:

Address pool

/ip pool add name="ike_vpn_pool" ranges="10.0.100.2-10.0.100.30"

3.2) Modeconfig:

IPSec - Mode Config

/ip ipsec mode-config add name="modeconfig_ikev2" address-pool="ike_vpn_pool" address-prefix-length=32 split-include=0.0.0.0/0 static-dns=10.0.100.1 system-dns=no

/ip ipsec mode-config add address-pool="ike_vpn_pool" address-prefix-length=32 name="modeconfig_ikev2" split-include=192.168.88.0/24 static-dns=10.0.100.1 system-dns=no

где 192.168.88.0/24 - сеть, маршрут к которой будет передан клиенту. Т.е. после установки VPN соединения клиент сможет сразу обращаться к ресурсам этой сети.

Если клиенты после подключения к удаленной сети должны иметь возможность обращаться к ресурсам удаленной сети не по IP, а по имени (например, server.office.local, а не 192.168.88.146), то надо передать клиенту не только маршрут до сети, но и сообщить ему адрес DNS сервера, отвечающего за разрешение имен в удаленной сети:

/ip ipsec mode-config add address-pool="ike_vpn_pool" address-prefix-length=32 name="modeconfig_ikev2" split-include=192.168.88.0/24 static-dns=192.168.88.1 system-dns=no

где 192.168.88.1 - IP-адрес DNS-сервера (в данном случае, это IP самого микротика).

3.3) Profile:

Касается т.н. фазы 1 (Phase 1, Security Association, SA), на которой согласовываются тип аутентификации, группа Diffie-Hellman, алгоритм шифрования. SA (фазы 1) существует определенное время, в течение которого устройства должны завершить вторую фазу. Если не успевают, то повторяется фаза 1.

IPSec Profile

/ip ipsec profile add name="profile_ikev2" dh-group=modp1024,modp1536,modp2048 enc-algorithm=aes-128,aes-192,aes-256 hash-algorithm=sha256 nat-traversal=yes proposal-check=obey

3.4) Peer (кого и куда принимаем):

IPSec - Peer

/ip ipsec peer add name="peer_ikev2" exchange-mode=ike2 address=0.0.0.0/0 local-address=1.2.3.4 passive=yes send-initial-contact=yes profile="profile_ikev2"

- принимаем всех (0.0.0.0/0) на внешний адрес микротика (1.2.3.4) - адресов-то может быть много и не обязательно это будет публичный IP.

3.5) Proposal:

IPSec Proposal

Относится к так называемой второй фазе (Phase 2, IPSec SA), когда устанавливается, как будет проходить шифрование и аутентификация (проверка, что получены именно те данные, которые были отправлены) данных, а также частота обновления ключей. По-умолчанию, ключи обновляются каждые 8 часов (это время можно менять параметром lifetime).

3.6) Policy group:

IPSec Group

/ip ipsec policy group add name=group_ikev2

3.7) Policy:

IPSec Policy

/ip ipsec policy add src-address=0.0.0.0/0 dst-address=10.0.100.0/24 protocol=all template=yes group="group_ikev2" action=encrypt ipsec-protocols=esp proposal="proposal_ikev2"

3.8) Identity (для каждого пользователя - свой):

Внимательно и аккуратно выбирайте параметры. Для сертификата "vpnuser1@1.2.3.4" указывается Remote ID "vpnuser1@1.2.3.4" и проверка того, имеет ли право удаленный пользователь подключиться или нет, будет происходить на основании данных из сертификата:

  • "Remote ID Type" определяет, какой ID ожидается от удаленного клиента. Например, тип " user fqdn ", доступный только в IKEv2, позволяет указать полное имя удаленного клиента в виде "vpnuser1@1.2.3.4".
  • "Match By" определяет, с чем сравнивать "peers identity" (ID удаленного клиента) - с сертификатом (из Remote Certificate) или с данными из поля Remote ID. Не все клиенты могут прислать кастомный ID. Например, встроенный VPN клиент в Windows не позволяет указать Remote ID, а просто предлагает "использовать сертификат компьютера".

/ip ipsec identity add auth-method=digital-signature certificate=Mikrotik remote-certificate=vpnuser1@1.2.3.4 generate-policy=port-strict match-by=certificate mode-config="modeconfig_ikev2" peer="peer_ikev2" policy-template-group="group_ikev2" remote-id=user-fqdn:vpnuser1@1.2.3.4

Дальше надо настроить firewall.

4. FIREWALL

Сферический firewall в вакууме, нужно аккуратно адаптировать эти правила в ваш firewall.

Пожалуйста, внимательно смотрите, что вы разрешаете или запрещаете в firewall. Любые сертификаты будут бессмысленны, если вы случайно разрешите input на внемнем интерфейсе.

Mikrotik VPN IKEv2 Firewall Example

INPUT (разрешить входящие на 500/udp И 4500/udp):

/ip firewall filter
add action=drop chain=input comment="invalid" connection-state=invalid
add action=accept chain=input comment="established" connection-state=established
add action=accept chain=input comment="related" connection-state=related
add action=accept chain=input connection-state=new dst-port=500 protocol=udp
add action=accept chain=input connection-state=new dst-port=4500 protocol=udp
.
add action=drop chain=input comment="drop everything else"

ЗЫ: еще пишут в примерах, что надо разрешить протокол ipsec-esp, но я проверял :) отключение ни чему не мешает, поэтому и добавлять лишнее не будем.

FORWARD:

/ip firewall filter
add action=drop chain=forward comment="invalid" connection-state=invalid
add action=accept chain=forward comment="established" connection-state=established
add action=accept chain=forward comment="related" connection-state=related
add action=accept chain=forward comment="in:ipsec" ipsec-policy=in,ipsec
add action=accept chain=forward comment="VPN-to-LAN" dst-address=\
192.168.88.0/24 ipsec-policy=in,ipsec src-address=10.0.100.0/24

NAT

Чтобы VPN-клиенты могли выходить в интернет, настроим NAT:

Mikrotik Firewall NAT IPSec

/ip firewall nat
add action=src-nat chain=srcnat ipsec-policy=out,none out-interface=ether1-gateway src-address=10.0.100.0/24 to-addresses=1.2.3.4
add action=masquerade chain=srcnat comment="default" out-interface=ether1-gateway

5. Настройка клиентов

iPhone

Передать сертификаты в iPhone можно следующими способами:

1) по email (сертификаты как вложение), открыть вложенный cacert и vpnclient1 программой Mail и установить профиль;
2) по ссылке открыть в Safari и установить профиль
3) передать по AirDrop с MacBook, к примеру.

Стоит подумать, как лучше, потому что в данном случае передается ключ для доступа, а не какая-то ерунда. При отправке по email потом надо удалить письмо из отправленных, входящих, из корзины и еще где там может осесть письмо - автоархив какой-нить. Если передать надо удаленному клиенту, вариантов не много. Но если настраивается устройство, доступное локально - стоит заморочиться.

Например, можно на компе открыть микро-веб сервер, например, с помощью Python:

Установите сертификаты и ключ через профили (там все интуитивно, описывать, думаю, не стоит). А саму настройку VPN IKEv2 - просто приведу картинку-скрин экрана:

Обратите внимание на то, что локальный ID повторяет имя (Name, Common Name, Subject Alternative Name) клиентского сертификата.

Аутентификация пользователя происходит автоматически, на основании данных из сертификата.

iPhone IKEv2 VPN Settings

MacOS

Суть процесса: открываете "Связка ключей", в ней импортируете сначала cacert (доверенный центр сертификации), а потом сертификат vpnuser1. В "Системные настройки" в пункте "Сеть" добавляете VPN подключение, тип IKEv2, поля заполняете так же как в iOS (картинка выше), выбираете сертификат и все. Готово.

Windows 7/10

Суть такая - сертификат устанавливается в учетную запись компьютера, а не пользователя (по-умолчанию, certmgr.msc предлагает именно Пользователя). mmc.exe - Сертифкаты - Учетная запись компьютера.

Там уже добавляете в доверенные корневые cacert, а в Личные - vpnuser1 (Сертификаты - Личное - Сертификаты, правой мышкой - Все задачи - Импорт).

Ну и настраиваете IKEv2 VPN стандартно.

Что меня в этом месте бесит прямо-таки сильно - сертификат доступен ЛЮБОЙ учетной записи на компьютере. Например, установили вы так VPN в учетке user1. Потом зашли под другой учеткой в windows, а сертификат там уже есть. А вариант, когда сертификат устанавливается в Личные пользовательские сертификаты, не сработает, потому что это уже потребует EAP-TLS аутентификации (протокол расширенной проверки подлинности), а, как это часто бывает в мелочах, микротик как сервер не поддерживает EAP.

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

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