Что такое IKEv2 и почему он удобен для VPN
IKEv2 (Internet Key Exchange version 2) — это протокол, входящий в семейство IPsec, который используется для установления защищённых VPN-соединений. Он был разработан как замена устаревшему IKEv1 и предлагает ряд преимуществ, делающих его привлекательным для организации удалённого доступа.
Главное достоинство IKEv2 — высокая устойчивость к разрывам соединения. При смене сети (например, переход с Wi-Fi на мобильный интернет) туннель автоматически восстанавливается без необходимости повторной аутентификации. Это особенно важно для мобильных сотрудников, которые часто перемещаются.
Протокол поддерживается всеми современными операционными системами: Windows, macOS, iOS, Android, а также Linux (через strongSwan или NetworkManager). Это означает, что для подключения не требуется устанавливать дополнительное программное обеспечение — всё настраивается встроенными средствами ОС.
IKEv2 обеспечивает надёжное шифрование и аутентификацию, что защищает данные от перехвата и атак типа «человек посередине». В отличие от PPTP, который считается небезопасным, и L2TP, который часто блокируется в корпоративных сетях, IKEv2 использует современные криптографические алгоритмы и порты, которые сложнее заблокировать.
Настройка серверной части IKEv2 на MikroTik требует определённых знаний, но результат стоит усилий: вы получаете быстрый, безопасный и удобный VPN для удалённой работы.
Способы аутентификации в IKEv2: сертификаты или логин с паролем
При настройке IKEv2 VPN-сервера на MikroTik можно использовать два основных способа аутентификации клиентов: на основе сертификатов (RSA) и на основе логина и пароля (EAP-RADIUS). Каждый из них имеет свои особенности.
Аутентификация по сертификатам считается более безопасной, так как исключает передачу паролей по сети. Вместо этого используется инфраструктура открытых ключей (PKI), где каждый клиент получает уникальный сертификат, подписанный центром сертификации (CA). Это позволяет проверять подлинность как сервера, так и клиента, что исключает атаки «человек посередине». Однако процесс выпуска и установки сертификатов на каждое устройство может быть трудоёмким, особенно при большом количестве сотрудников.
Аутентификация по логину и паролю (EAP-RADIUS) значительно упрощает управление доступом. Вместо генерации и распространения сертификатов достаточно создать учётные записи в RADIUS-сервере. Это удобно для небольших сетей или когда требуется быстро добавить нового пользователя. Минус — пароли могут быть скомпрометированы, поэтому важно использовать сложные пароли и, по возможности, включать двухфакторную аутентификацию.
В RouterOS 7 появилась возможность использовать встроенный RADIUS-сервер (User Manager), что позволяет отказаться от внешнего RADIUS-сервера. Это делает настройку ещё проще: вы создаёте пользователей прямо на MikroTik и используете их для аутентификации IKEv2.
Выбор метода зависит от ваших требований к безопасности и удобству. Для небольших команд или тестовых сред подойдёт логин/пароль, для корпоративных сетей с высокими требованиями — сертификаты.
Подготовка MikroTik: версия RouterOS и необходимые пакеты
Перед настройкой IKEv2 VPN-сервера убедитесь, что ваш MikroTik работает на актуальной версии RouterOS. Для использования всех современных функций, включая встроенный RADIUS-сервер и автоматическое получение сертификатов Let's Encrypt, рекомендуется RouterOS версии 7.x.
Если вы планируете использовать аутентификацию по логину и паролю через встроенный RADIUS, вам потребуется установить дополнительный пакет user-manager. Этот пакет не входит в стандартную поставку RouterOS, его нужно скачать с официального сайта MikroTik в разделе «Software».
При выборе пакета обратите внимание на архитектуру вашего роутера (например, ARM, MIPS, x86) и точное соответствие версии пакета версии RouterOS. Установка пакета другой версии может привести к ошибкам.
Процесс установки прост: скачайте архив extra-packages, извлеките файл user-manager-7.x.npk, скопируйте его в корень файловой системы роутера (например, через WinBox) и перезагрузите устройство. После перезагрузки в меню WinBox появится раздел «User Manager».
Для аутентификации по сертификатам дополнительных пакетов не требуется — все необходимые инструменты уже встроены в RouterOS. Однако вам потребуется создать центр сертификации (CA) и выпустить сертификаты, что мы рассмотрим далее.
Создание центра сертификации (CA) на MikroTik
Центр сертификации (CA) — это основа PKI, которая позволяет выпускать и проверять сертификаты. В MikroTik CA можно создать прямо на роутере, используя встроенные средства RouterOS.
Перейдите в меню System → Certificates и нажмите кнопку «+» для создания нового сертификата. Заполните поля:
- Name — произвольное имя, например,
ca; - Common Name — имя субъекта, обычно совпадает с Name;
- Key Size — рекомендуется 2048 бит или больше (меньшие ключи считаются небезопасными);
- Days Valid — срок действия, например, 3650 дней (10 лет).
На вкладке Key Usage оставьте только два флага: crl sign (подпись списков отзыва) и key cert. sign (подпись других сертификатов). Это необходимо, чтобы сертификат мог использоваться только для подписи других сертификатов, а не для других целей.
После заполнения нажмите Apply, затем Sign. В открывшемся окне укажите CA CRL Host — адрес, по которому будет доступен список отзыва сертификатов (CRL). Для тестовой среды можно использовать 127.0.0.1 (локальный адрес роутера). Нажмите Start, и корневой сертификат будет создан.
Теперь у вас есть CA, который можно использовать для выпуска серверных и клиентских сертификатов. Этот процесс одинаков для обоих типов сертификатов, но с разными параметрами Key Usage.
Выпуск серверного и клиентских сертификатов
После создания CA необходимо выпустить сертификат для VPN-сервера и для каждого клиента.
Серверный сертификат используется для шифрования соединения и проверки подлинности сервера клиентами. Важные требования:
- Сервер должен иметь статический IP-адрес или, лучше, доменное имя (FQDN).
- В сертификате указывается адрес, по которому клиенты будут подключаться. Если вы укажете FQDN, а клиент подключится по IP, соединение будет отклонено, и наоборот.
Для создания серверного сертификата в System → Certificates нажмите «+» и заполните:
- Name — IP-адрес или FQDN сервера (например,
vpn.example.com); - Common Name — то же значение;
- Subject Alt. Name — выберите тип (DNS или IP) и укажите адрес;
- Key Size — 2048;
- Days Valid — 3650.
На вкладке Key Usage оставьте только tls server. Подпишите сертификат с помощью созданного CA.
Клиентские сертификаты выпускаются для каждого устройства. В поле Name и Common Name укажите понятное имя, например, ФИО сотрудника. Срок действия лучше задавать меньший, например, 365 дней. На вкладке Key Usage укажите tls client.
После создания клиентского сертификата его необходимо экспортировать в формате PKCS12. Этот формат объединяет в одном файле закрытый ключ клиента, его сертификат и корневой сертификат CA. Для экспорта выберите сертификат, нажмите Export, укажите тип PKCS12 и задайте пароль (не менее 8 символов). Файл появится в разделе Files, откуда его можно скачать и установить на клиентское устройство.
Настройка IPsec для IKEv2: профили, предложения и пулы
Настройка IPsec — это ядро IKEv2 VPN. В RouterOS необходимо создать несколько сущностей: профиль, предложения (proposals), пул адресов, mode-config, группу политик, шаблон политики, пир и identity.
Профиль (Profile) задаёт параметры установления соединения. Создайте новый профиль с именем, например, IKEv2, и оставьте параметры по умолчанию. Рекомендуется не изменять профиль default, а создавать копию.
Предложения (Proposals) определяют алгоритмы шифрования и хеширования. Создайте новое предложение и в поле Encr. Algorithms уберите 3des (устарел) и добавьте aes-128-cbc, aes-192-cbc, aes-256-cbc. Это обеспечит совместимость с современными ОС и высокий уровень безопасности. Также рекомендуется отключить PFS (Perfect Forward Secrecy) в предложении, установив pfs-group=none, чтобы избежать проблем с некоторыми клиентами.
Пул адресов — диапазон IP-адресов, которые будут выдаваться VPN-клиентам. Создайте пул в IP → Pool, например, vpn-pool с диапазоном 192.0.2.1-192.0.2.254.
Mode-config — набор параметров, передаваемых клиенту при подключении: IP-адрес из пула, DNS-серверы, маршруты до внутренних сетей. Создайте mode-config с именем, например, ike2-modconf, укажите пул, префикс длины адреса (обычно 32), и в поле Split Include укажите подсети, доступ к которым должен быть через VPN (например, 10.10.4.0/24). Если нужно передавать DNS-серверы, установите флаг System DNS или укажите статические DNS.
Эти настройки являются основой для дальнейшей конфигурации.
Создание политик, пиров и identity для IKEv2
После базовых настроек IPsec необходимо создать политики, пиры и identity, которые связывают все компоненты вместе.
Группа политик — просто тег для группировки политик. Создайте группу, например, ike2.
Шаблон политики определяет, какой трафик будет шифроваться. Создайте политику с параметрами:
- Src. Address —
0.0.0.0/0(разрешить подключение с любого адреса); - Dst. Address — диапазон VPN-сети, например,
192.0.2.0/24; - Установите флаг Template;
- В поле Group укажите созданную группу;
- На вкладке Action выберите созданное предложение.
Пир (Peer) — настройка приёма подключений. Создайте пир с именем, например, peerike2, установите флаг Passive (сервер ждёт подключений), в поле Address укажите 0.0.0.0/0, в Profile — созданный профиль, а в Exchange Mode — ike2.
Identity — связывает все настройки для конкретного клиента. Здесь указывается метод аутентификации, сертификат, mode-config, группа политик и пир. Для аутентификации по сертификатам выберите digital-signature, укажите серверный сертификат, mode-config, группу политик и пир. Для аутентификации по логину/паролю выберите eap-radius и укажите сертификат сервера (например, от Let's Encrypt).
После создания identity настройка сервера почти завершена. Осталось добавить правила брандмауэра.
Настройка брандмауэра и подключение клиентов
Для работы IKEv2 VPN необходимо разрешить входящие соединения на портах IPsec и разрешить форвардинг трафика от VPN-клиентов к внутренней сети.
Добавьте правило в IP → Firewall → Filter Rules:
- Chain —
input; - Protocol —
udp; - Dst. Port —
500,4500; - In. Interface — ваш внешний интерфейс (например,
ether1); - Action —
accept.
Это разрешит входящие IKE-пакеты и ESP-трафик.
Затем добавьте правило для форвардинга:
- Chain —
forward; - In. Interface — внешний интерфейс;
- IPsec Policy —
in,ipsec; - Action —
accept.
Это позволит VPN-клиентам обращаться к внутренним ресурсам.
Подключение клиента Windows:
- Откройте «Параметры» → «Сеть и Интернет» → «VPN» → «Добавить VPN-подключение».
- Укажите имя, адрес сервера (FQDN или IP), тип VPN — IKEv2.
- Введите логин и пароль (если используется EAP-RADIUS) или выберите сертификат (если используется RSA).
- Сохраните и подключитесь.
Подключение на Android:
- Перейдите в «Настройки» → «Сеть» → «VPN» → «Добавить VPN».
- Укажите имя, тип — IKEv2/IPsec MSCHAPv2 (для логина/пароля) или IKEv2/IPsec RSA (для сертификатов).
- Введите адрес сервера, логин и пароль.
- Сохраните и подключитесь.
Если возникают ошибки, проверьте правильность установки сертификатов на клиенте и соответствие адреса в сертификате.
Использование Let's Encrypt и встроенного RADIUS для упрощения
В RouterOS 7 появилась возможность автоматически получать сертификаты Let's Encrypt, что избавляет от необходимости создавать собственный CA и вручную распространять корневые сертификаты. Это особенно удобно при использовании аутентификации по логину и паролю.
Для получения сертификата Let's Encrypt необходимо, чтобы роутер был доступен из интернета по порту 80 (HTTP). Выполните команду:
/certificate/enable-ssl-certificate dns-name=gw1.example.comЭта команда автоматически запросит и установит сертификат. Убедитесь, что на клиентских устройствах установлен промежуточный сертификат R3 от Let's Encrypt в хранилище «Промежуточные доверенные центры сертификации» компьютера, иначе возникнет ошибка IKE с кодом 13801.
Встроенный RADIUS-сервер (User Manager) позволяет создавать пользователей прямо на MikroTik и использовать их для аутентификации IKEv2. Для этого:
- Установите пакет user-manager.
- Включите User Manager:
/user-manager set enabled=yes. - Добавьте роутер как RADIUS-клиент:
/user-manager router add address=127.0.0.1 name=router1 shared-secret=MySuperPass1234. - Создайте пользователя:
/user-manager user add name=user1@gw1 password=1234567890. - Настройте RADIUS в RouterOS:
/radius add address=127.0.0.1 secret=MySuperPass1234 service=ppp,ipsecи/radius incoming set accept=yes.
После этого в identity укажите auth-method=eap-radius и выберите сертификат Let's Encrypt. Клиенты смогут подключаться, используя логин и пароль, без необходимости установки клиентских сертификатов.
Типичные ошибки и их устранение
При настройке IKEv2 VPN на MikroTik могут возникать различные проблемы. Рассмотрим наиболее частые.
Ошибка IKE с кодом 13801 — обычно возникает на Windows, когда не установлен промежуточный сертификат R3 от Let's Encrypt. Убедитесь, что сертификат установлен в хранилище «Промежуточные доверенные центры сертификации» для локального компьютера, а не для пользователя.
Не удаётся подключиться по IP, хотя сертификат выпущен для FQDN — сертификат должен точно соответствовать адресу, по которому клиент подключается. Если вы используете FQDN, клиент должен указывать именно его, а не IP.
Клиент не получает IP-адрес — проверьте, что пул адресов создан и указан в mode-config, а также что mode-config привязан к identity.
Нет доступа к внутренним ресурсам — проверьте правило форвардинга с ipsec-policy=in,ipsec и убедитесь, что в mode-config указаны правильные подсети в split-include.
Соединение разрывается при смене сети — IKEv2 должен автоматически восстанавливать соединение, но если это не происходит, проверьте настройки таймеров в профиле IPsec.
Проблемы с аутентификацией по сертификатам — убедитесь, что клиентский сертификат экспортирован в PKCS12 с паролем и правильно установлен на устройстве. Также проверьте, что срок действия сертификата не истёк.
Если проблема не решается, включите логирование IPsec в RouterOS и проанализируйте сообщения об ошибках.
Вопросы и ответы
В чём разница между IKEv2 и L2TP/IPsec?
IKEv2 — это более современный протокол, который обеспечивает лучшую устойчивость к разрывам соединения и автоматическое восстановление при смене сети. Он также поддерживает более быстрые алгоритмы шифрования и не требует дополнительных настроек маршрутизации на клиенте. L2TP/IPsec — более старый, но всё ещё широко используемый протокол, однако он может быть заблокирован в некоторых сетях из-за использования фиксированных портов. IKEv2 использует порты 500 и 4500, которые также могут быть заблокированы, но в целом он считается более надёжным.
Можно ли использовать IKEv2 без сертификатов?
Да, можно. Вместо аутентификации по сертификатам можно использовать аутентификацию по логину и паролю (EAP-RADIUS). Для этого на MikroTik настраивается встроенный RADIUS-сервер (User Manager) или внешний RADIUS. При этом для сервера всё равно потребуется сертификат (можно использовать Let's Encrypt), но клиентам не нужно устанавливать никакие сертификаты — достаточно ввести логин и пароль.
Какой метод аутентификации безопаснее: сертификаты или логин/пароль?
Сертификаты считаются более безопасными, так как они исключают передачу паролей по сети и обеспечивают взаимную аутентификацию. Однако они требуют более сложного управления (выпуск, распространение, отзыв). Логин/пароль проще в использовании, но пароли могут быть скомпрометированы. Для повышения безопасности при использовании паролей рекомендуется применять сложные пароли и, по возможности, двухфакторную аутентификацию.
Что делать, если Windows выдаёт ошибку IKE 13801?
Ошибка 13801 обычно означает, что не удалось проверить сертификат сервера. Чаще всего это связано с отсутствием промежуточного сертификата R3 от Let's Encrypt в хранилище доверенных сертификатов. Установите сертификат R3 в хранилище «Промежуточные доверенные центры сертификации» для локального компьютера. Также проверьте, что адрес сервера, который вы указываете при подключении, точно совпадает с именем в сертификате.
Нужно ли открывать порты на роутере для IKEv2?
Да, необходимо разрешить входящие UDP-пакеты на портах 500 (IKE) и 4500 (IPsec NAT-T). Также может потребоваться разрешить ESP-протокол (IP-протокол 50), если он не проходит через NAT. В брандмауэре MikroTik добавьте правило для chain=input с protocol=udp и dst-port=500,4500, а также правило для chain=forward с ipsec-policy=in,ipsec.
Можно ли настроить IKEv2 на MikroTik с несколькими клиентами?
Да, IKEv2 поддерживает множество одновременных подключений. Для этого достаточно создать пул адресов с достаточным количеством IP-адресов и, при необходимости, выпустить отдельные сертификаты для каждого клиента (если используется сертификатная аутентификация). При использовании логина/пароля можно создать несколько пользователей в User Manager.
Как проверить, что IKEv2 VPN работает корректно?
После настройки подключитесь к VPN с клиентского устройства и проверьте, что вы получаете IP-адрес из пула. Затем попробуйте открыть внутренние ресурсы (например, пинговать сервер в локальной сети). Также можно посмотреть статус IPsec-соединения на MikroTik через команду /ip ipsec active-peers print или в WinBox в разделе IPsec → Active Peers. Если соединение активно, вы увидите список подключённых клиентов.