Настройка IKEv2 VPN-сервера на MikroTik: сертификаты, логин-пароль и клиенты

Подробное руководство по настройке IKEv2 VPN-сервера на MikroTik: аутентификация по сертификатам и через встроенный RADIUS, выпуск сертификатов, конфигурация IPsec, подключение Windows и Android, частые ошибки.

Что такое IKEv2 и почему он удобен для MikroTik

IKEv2 (Internet Key Exchange version 2) — это протокол для установления защищённых VPN-соединений, работающий поверх IPsec. Он входит в состав современных операционных систем — Windows, macOS, iOS, Android — и не требует установки стороннего ПО на клиентские устройства. Это выгодно отличает его от OpenVPN, которому нужен отдельный клиент, и от устаревших PPTP и L2TP, которые имеют известные проблемы с безопасностью.

Для MikroTik IKEv2 — один из самых производительных вариантов VPN. При поддержке аппаратного ускорения IPsec на роутере скорость соединения может быть значительно выше, чем у OpenVPN, работающего в пользовательском пространстве. Кроме того, IKEv2 устойчив к разрывам соединения: при смене сети (например, переходе с Wi-Fi на мобильный интернет) туннель восстанавливается автоматически, что особенно важно для мобильных сотрудников.

Ещё одно преимущество — автоматическая передача клиенту маршрутов и DNS-серверов через mode-config. Это упрощает настройку клиентских устройств: пользователю достаточно ввести адрес сервера и учётные данные, а всё остальное VPN-сервер передаст сам.

Два способа аутентификации: сертификаты или логин-пароль

При настройке IKEv2 на MikroTik можно выбрать один из двух основных методов аутентификации клиентов.

Аутентификация по сертификатам (digital signature) — классический подход, при котором каждому клиенту выдаётся личный сертификат, подписанный центром сертификации (CA). Этот метод обеспечивает высокий уровень безопасности: пароли не передаются по сети, а подлинность сервера проверяется клиентом, что исключает атаки типа «человек посередине». Однако управление сертификатами требует усилий: нужно создать CA, выпустить сертификаты для каждого устройства, экспортировать их в формате PKCS12 и установить на клиентах. При большом количестве сотрудников это становится трудоёмким.

Аутентификация по логину и паролю (EAP-RADIUS) — более простой вариант, который стал доступен в RouterOS 7. Вместо выпуска клиентских сертификатов используется встроенный RADIUS-сервер (User Manager). Достаточно создать одного пользователя с логином и паролем, и клиент сможет подключиться, введя эти данные. При этом серверу всё равно нужен сертификат — но только один, для проверки подлинности сервера. Этот сертификат можно получить автоматически от Let's Encrypt, что избавляет от необходимости вручную создавать CA.

Выбор метода зависит от ваших задач. Если вам нужно максимально защищённое соединение и вы готовы управлять сертификатами — выбирайте digital signature. Если важна простота масштабирования и быстрое развёртывание — подойдёт EAP-RADIUS с логином и паролем.

Подготовка MikroTik: версия RouterOS и начальные условия

Перед началом настройки убедитесь, что ваш MikroTik работает под управлением RouterOS версии 7.x. Это важно, потому что встроенный RADIUS-сервер и автоматическое получение сертификатов Let's Encrypt появились именно в седьмой версии. Если у вас установлена более старая версия, обновите её через меню System → Packages или с официального сайта MikroTik.

Также необходимо подготовить:

  • Внешний IP-адрес или доменное имя (FQDN). Сервер должен быть доступен из интернета по статическому адресу или домену. Если используется динамический IP, потребуется DDNS-сервис, но для сертификатов и стабильной работы лучше иметь постоянный адрес.
  • Открытые порты. Для IKEv2 нужно разрешить входящие UDP-соединения на портах 500 и 4500 (IKE и IPsec NAT-T). Также для получения сертификата Let's Encrypt потребуется временно открыть TCP-порт 80.
  • Пул IP-адресов для VPN-клиентов. Выделите отдельный диапазон, например 192.0.2.0/24 или 172.16.200.0/24, который не пересекается с вашей локальной сетью.
  • Доступ к WinBox или SSH для управления роутером.

Если вы планируете использовать сертификаты Let's Encrypt, убедитесь, что на клиентских устройствах установлен промежуточный сертификат R3. В Windows он должен находиться в хранилище «Промежуточные доверенные центры сертификации» на уровне компьютера (Local Machine), а не пользователя. Частая ошибка — установка в хранилище пользователя, из-за чего возникает ошибка IKE с кодом 13801.

Создание центра сертификации и выпуск сертификатов на MikroTik

Если вы выбрали аутентификацию по сертификатам, первым шагом будет создание собственного центра сертификации (CA) прямо на роутере. Это позволит выпускать и подписывать сертификаты для сервера и клиентов без обращения к внешним службам.

Шаг 1. Создание корневого сертификата CA

В WinBox перейдите в System → Certificates, нажмите «+» и заполните поля:

  • Name — например, ca;
  • Common Name — тоже ca;
  • Key Size — 2048 бит или больше (меньшие ключи небезопасны);
  • Days Valid — срок действия, например 3650 дней (10 лет).

На вкладке Key Usage оставьте только флаги crl sign и key cert. sign. Нажмите Apply, затем Sign. В поле CA CRL Host укажите IP-адрес роутера (например, 127.0.0.1). После этого корневой сертификат будет создан.

Шаг 2. Выпуск серверного сертификата

Создайте новый сертификат с именем, соответствующим адресу сервера (IP или FQDN). В поле Common Name и Subject Alt. Name укажите тот адрес, по которому клиенты будут подключаться. Если используете домен, выберите тип DNS, если IP — тип IP. На вкладке Key Usage укажите только tls server. Подпишите сертификат созданным CA.

Шаг 3. Выпуск клиентских сертификатов

Для каждого клиента создайте отдельный сертификат с понятным именем (например, ФИО сотрудника). В Key Usage укажите tls client. Срок действия можно сделать меньше, например 365 дней. Подпишите сертификат CA.

Шаг 4. Экспорт клиентских сертификатов

Для установки на клиентские устройства экспортируйте сертификаты в формате PKCS12. Этот формат объединяет закрытый ключ, клиентский сертификат и корневой сертификат CA в одном файле. В WinBox выберите сертификат, нажмите Export, укажите Type = PKCS12 и задайте пароль (не менее 8 символов). Скачайте файл из раздела Files.

Настройка IPsec для IKEv2: профили, предложения, пулы

После подготовки сертификатов переходим к настройке IPsec. Этот этап одинаков для обоих методов аутентификации, за исключением некоторых параметров в Identity.

Создание профиля (Profile)

В меню IP → IPsec → Profiles создайте новый профиль с именем, например, IKEv2. Параметры можно оставить по умолчанию. Профиль определяет общие параметры соединения, такие как методы обмена ключами и таймауты.

Настройка предложений (Proposals)

Во вкладке Proposals создайте новое предложение. Уберите алгоритм 3DES, так как он устарел, и добавьте AES-128-CBC, AES-192-CBC, AES-256-CBC. Эти алгоритмы поддерживаются всеми современными ОС и обеспечивают достаточный уровень безопасности. Также рекомендуется отключить PFS (Perfect Forward Secrecy) — в терминале это делается параметром pfs-group=none. Это повышает совместимость с некоторыми клиентами.

Создание пула IP-адресов

Перейдите в IP → Pool и создайте пул для VPN-клиентов. Например, vpn-pool с диапазоном 192.0.2.1-192.0.2.254. Этот пул будет использоваться для выдачи адресов клиентам.

Настройка Mode Config

Во вкладке Mode Configs создайте новую конфигурацию. Установите флаг Responder (сервер будет отвечать на запросы клиентов). В поле Address Pool выберите созданный пул. Address Prefix Length укажите 32 — это означает, что каждый клиент получит отдельный IP-адрес. В поле Split Include укажите локальные подсети, доступ к которым нужно предоставить клиентам (например, 10.10.4.0/24). Если нужно передавать DNS-серверы, установите флаг System DNS или укажите статические DNS в поле Static DNS.

Создание групп, политик и пиров для IKEv2

Для завершения настройки IPsec необходимо создать несколько взаимосвязанных объектов.

Группа политик (Policy Group)

Во вкладке Groups создайте группу с уникальным именем, например ike2. Группа используется для связывания шаблона политики с конкретными подключениями.

Шаблон политики (Policy Template)

Во вкладке Policies создайте новую политику. В поле Src. Address оставьте 0.0.0.0/0 (разрешаем трафик с любого адреса). В поле Dst. Address укажите диапазон VPN-сети, например 192.0.2.0/24. Установите флаг Template и выберите созданную группу в поле Group. На вкладке Action выберите созданное ранее предложение (Proposal). Эта политика определяет, какой трафик будет шифроваться и направляться в туннель.

Пир (Peer)

Во вкладке Peers создайте новый пир. Установите флаг Passive (сервер будет ожидать входящие подключения, а не инициировать их). В поле Address укажите 0.0.0.0/0 — разрешаем подключение с любого IP. В поле Profile выберите созданный профиль, в поле Exchange Mode — ike2.

Identity

Во вкладке Identities создайте новую запись, которая связывает все настройки. Здесь указывается метод аутентификации:

  • Для сертификатов: auth-method=digital-signature, в поле Certificate выберите серверный сертификат.
  • Для логина-пароля: auth-method=eap-radius, в поле Certificate укажите сертификат сервера (например, от Let's Encrypt).

В поле Peer выберите созданный пир, в поле Mode Configuration — созданный mode-config, в поле Policy Template Group — созданную группу. Параметр Generate Policy установите в port-strict.

Настройка встроенного RADIUS-сервера для логина и пароля

Если вы используете аутентификацию по логину и паролю, необходимо настроить встроенный RADIUS-сервер (User Manager). Это доступно в RouterOS 7 и позволяет обойтись без внешнего RADIUS-сервера.

Сначала установите пакет user-manager, если он ещё не установлен. Скачайте архив extra-packages с сайта MikroTik, соответствующий архитектуре вашего роутера и версии RouterOS. Извлеките файл user-manager-7.x.npk, скопируйте его в корень файловой системы роутера и перезагрузите устройство. После перезагрузки в WinBox появится пункт меню User Manager.

Затем выполните настройку через терминал:

/user-manager set enabled=yes
/user-manager router add address=127.0.0.1 name=router1 shared-secret=MySuperPass1234
/user-manager user add name=user1@gw1 password=1234567890

После этого добавьте RADIUS-клиент на роутере:

/radius add address=127.0.0.1 secret=MySuperPass1234 service=ppp,ipsec
/radius incoming set accept=yes

Теперь при подключении клиент вводит логин user1@gw1 и пароль 1234567890, а MikroTik проверяет их через встроенный RADIUS. Этот метод удобен для небольших сетей, где не хочется разворачивать отдельный RADIUS-сервер.

Правила брандмауэра и доступ к локальной сети

Чтобы VPN-сервер был доступен из интернета и клиенты могли обращаться к внутренним ресурсам, необходимо добавить правила брандмауэра.

Разрешение входящих подключений

Добавьте правило в цепочку input, разрешающее UDP-трафик на портах 500 и 4500 с внешнего интерфейса:

/ip firewall filter add action=accept chain=input dst-port=500,4500 in-interface=ether1 protocol=udp

Замените ether1 на имя вашего внешнего интерфейса. Это правило должно быть выше любых запрещающих правил.

Разрешение форвардинга для VPN-клиентов

Чтобы клиенты могли получить доступ к локальной сети, добавьте правило в цепочку forward, разрешающее трафик, помеченный как IPsec:

/ip firewall filter add action=accept chain=forward in-interface=ether1 ipsec-policy=in,ipsec

Это правило также должно быть выше запрещающих правил. Если у вас есть другие ограничения, убедитесь, что они не блокируют трафик из VPN-подсети.

NAT (если необходимо)

Если VPN-клиенты должны выходить в интернет через роутер, возможно, потребуется настроить NAT для подсети VPN. Обычно это делается правилом masquerade для исходящего трафика с внешнего интерфейса.

Подключение клиентов: Windows, Android и другие устройства

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

Windows 10/11

Создайте новое VPN-подключение через Параметры → Сеть и Интернет → VPN. Укажите адрес сервера (FQDN или IP), выберите тип VPN — IKEv2. Введите логин и пароль (или укажите сертификат, если используется сертификатная аутентификация). В свойствах подключения можно настроить автоматическое использование основного шлюза.

Если используется сертификатная аутентификация, импортируйте файл PKCS12 в хранилище сертификатов Windows (Локальный компьютер → Личное). Также убедитесь, что корневой сертификат CA установлен в доверенные корневые центры.

Android

В настройках Android выберите VPN → Добавить VPN. Укажите тип IKEv2, адрес сервера, логин и пароль. Для сертификатной аутентификации импортируйте PKCS12-файл через настройки безопасности.

macOS и iOS

В macOS настройте VPN через Системные настройки → Сеть, выберите тип IKEv2. В iOS — Настройки → VPN → Добавить конфигурацию. Введите адрес сервера и учётные данные.

Проверка подключения

После подключения проверьте, что клиент получил IP-адрес из пула и может обращаться к внутренним ресурсам. На роутере можно посмотреть активные соединения в IP → IPsec → Active Peers.

Частые ошибки и способы их устранения

При настройке IKEv2 на MikroTik можно столкнуться с типичными проблемами.

Ошибка IKE 13801 в Windows

Эта ошибка обычно возникает, когда на клиенте неправильно установлен промежуточный сертификат Let's Encrypt R3. Убедитесь, что сертификат находится в хранилище «Промежуточные доверенные центры сертификации» на уровне компьютера, а не пользователя. Скачайте сертификат с официального сайта Let's Encrypt и установите его правильно.

Несоответствие адреса в сертификате

Если сертификат выпущен для FQDN, а клиент подключается по IP-адресу (или наоборот), соединение будет отклонено. Убедитесь, что адрес, который вводит клиент, точно совпадает с указанным в сертификате.

Проблемы с NAT

Если клиент находится за NAT, убедитесь, что на роутере включён IPsec NAT-T (порт 4500). В большинстве случаев это работает автоматически, но если возникают проблемы, проверьте, что UDP-порт 4500 открыт.

Неверные параметры шифрования

Если клиент не может согласовать алгоритмы шифрования, проверьте, что в Proposals указаны AES-CBC, а не только GCM. Некоторые старые клиенты не поддерживают GCM.

Брандмауэр блокирует трафик

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

Вопросы и ответы

В чём разница между IKEv2 и L2TP/IPsec на MikroTik?

IKEv2 — более современный протокол, который лучше работает при смене сети, быстрее восстанавливает соединение и поддерживает передачу маршрутов и DNS через mode-config. L2TP/IPsec требует дополнительной инкапсуляции, что снижает производительность и усложняет настройку клиентов. IKEv2 также проще в настройке на стороне клиента, так как встроен в современные ОС.

Можно ли использовать IKEv2 без сертификатов?

Да, в RouterOS 7 можно настроить аутентификацию по логину и паролю с использованием встроенного RADIUS-сервера (User Manager). При этом серверу всё равно нужен сертификат для проверки подлинности, но его можно получить автоматически от Let's Encrypt. Клиентские сертификаты при этом не требуются.

Какой размер ключа рекомендуется для сертификатов MikroTik?

Рекомендуется использовать ключи размером не менее 2048 бит. Меньшие ключи (1024 бит) считаются небезопасными и могут быть скомпрометированы. Для корневого CA и серверного сертификата используйте 2048 или 4096 бит.

Что делать, если Windows выдаёт ошибку IKE 13801?

Ошибка 13801 означает, что клиент не доверяет сертификату сервера. Убедитесь, что промежуточный сертификат Let's Encrypt R3 установлен в хранилище «Промежуточные доверенные центры сертификации» на уровне компьютера (Local Machine). Также проверьте, что корневой сертификат CA (если используете собственный CA) установлен в доверенные корневые центры.

Нужно ли открывать порт 80 для работы IKEv2?

Порт 80 нужен только для получения сертификата от Let's Encrypt через HTTP-проверку. После получения сертификата порт можно закрыть. Для самого VPN-соединения используются UDP-порты 500 и 4500.

Как добавить нового пользователя для IKEv2 с логином и паролем?

Если вы используете встроенный RADIUS (User Manager), выполните команду: /user-manager user add name=user2@gw1 password=ваш_пароль. После этого пользователь сможет подключаться, вводя логин и пароль. Убедитесь, что RADIUS-клиент настроен на роутере.

Можно ли использовать IKEv2 для доступа к интернету, а не только к локальной сети?

Да, можно. Для этого в mode-config нужно указать split-include для всех подсетей (например, 0.0.0.0/0) или настроить маршрут по умолчанию через VPN. Однако учтите, что это увеличит нагрузку на роутер и может снизить скорость интернета. Обычно IKEv2 используют для доступа к внутренним ресурсам.