Что такое IKEv2 и почему он удобен для MikroTik
IKEv2 (Internet Key Exchange version 2) — это протокол для установки защищённых VPN-туннелей, который используется в паре с IPsec. Он считается одним из самых надёжных и производительных решений для удалённого доступа к локальной сети. В отличие от более старых протоколов, таких как PPTP или L2TP, IKEv2 обеспечивает лучшую устойчивость к смене сети: при переключении между Wi-Fi и мобильным интернетом соединение часто сохраняется без необходимости повторной аутентификации.
Для маршрутизаторов MikroTik IKEv2 особенно интересен тем, что начиная с RouterOS 7 появились встроенные инструменты, которые упрощают настройку. В частности, стала доступна автоматическая работа с сертификатами Let's Encrypt, а также встроенный RADIUS-сервер (User Manager). Это позволяет развернуть полноценный VPN-сервер без использования сторонних серверов аутентификации и без ручной установки сертификатов на каждое клиентское устройство.
Ключевое преимущество IKEv2 — возможность аутентификации по логину и паролю (EAP-MSCHAPv2), что значительно упрощает подключение для конечных пользователей. Им не нужно разбираться с сертификатами, достаточно ввести адрес сервера, имя пользователя и пароль. При этом безопасность остаётся на высоком уровне благодаря современным алгоритмам шифрования.
Ещё одно важное свойство IKEv2 — автоматическая передача клиенту маршрутов до локальных сетей и DNS-серверов. Это означает, что после подключения пользователь получает доступ не только к интернету, но и к внутренним ресурсам компании, таким как файловые серверы или базы данных, без необходимости вручную настраивать маршрутизацию на каждом устройстве.
Подготовка MikroTik: версия RouterOS и необходимые компоненты
Перед началом настройки убедитесь, что ваш маршрутизатор работает под управлением RouterOS версии 7.x или новее. Именно в седьмой версии появились функции, которые делают настройку IKEv2 с аутентификацией по паролю простой и удобной. Если у вас установлена более старая версия, обновите прошивку через WinBox или командную строку.
Для работы с сертификатами Let's Encrypt потребуется, чтобы порт TCP 80 был доступен из интернета на момент генерации сертификата. Обычно на этом порту работает веб-интерфейс WebFig, поэтому не рекомендуется оставлять его открытым постоянно — лучше открыть его только на время получения сертификата, а затем закрыть.
Также необходимо иметь FQDN (полное доменное имя), которое указывает на внешний IP-адрес вашего маршрутизатора. Например, gw1.example.com. Это имя будет использоваться в сертификате и при подключении клиентов.
Для аутентификации пользователей мы будем использовать встроенный RADIUS-сервер User Manager. В RouterOS 7 он поставляется в виде отдельного пакета user-manager, который нужно скачать с официального сайта MikroTik в разделе Software. Важно, чтобы версия пакета точно совпадала с версией RouterOS, иначе установка не удастся. После загрузки архива extra-packages извлеките файл user-manager-7.x.npk и скопируйте его в корень файловой системы роутера, затем перезагрузите устройство.
Получение сертификата Let's Encrypt на MikroTik
Сертификат Let's Encrypt — это бесплатный доверенный сертификат, который автоматически обновляется. В RouterOS 7 для его получения достаточно выполнить несколько команд. Сначала добавьте временное правило брандмауэра, разрешающее входящие подключения на порт 80, затем запустите команду enable-ssl-certificate с указанием вашего доменного имени.
Пример команд:
/ip/firewall/filter add chain=input protocol=tcp dst-port=80 action=accept comment="temporary filter rule" place-before=1
/certificate/enable-ssl-certificate dns-name=gw1.example.com
/ip/firewall/filter remove [find comment="temporary filter rule"]Если всё прошло успешно, вы увидите сообщение progress: [success] ssl certificate updated. Проверить наличие сертификата можно командой /certificate/print. В списке появится сертификат с именем вида letsencrypt-autogen_2023-xx-xxThh:mm:ssZ и вашим доменом в поле Common Name.
Важно: на клиентских устройствах (например, Windows) должен быть установлен промежуточный сертификат Let's Encrypt R3 в хранилище «Промежуточные доверенные центры сертификации» компьютера (Local Machine). Если этого не сделать, клиенты будут получать ошибку проверки сертификата. Скачать сертификат R3 можно с официального сайта Let's Encrypt по ссылке https://letsencrypt.org/certs/lets-encrypt-r3.pem.
При установке сертификата R3 в Windows обратите внимание: по умолчанию система предлагает установить его в хранилище пользователя, что неправильно. Нужно выбрать хранилище локального компьютера и вручную указать «Промежуточные доверенные центры сертификации».
Настройка IPsec: профили, предложения и группа политик
Для работы IKEv2 необходимо настроить несколько компонентов IPsec. В WinBox это делается в меню IP → IPsec. Мы создадим отдельные профили и предложения, чтобы не изменять стандартные настройки.
Сначала создадим копию стандартного Proposal и отключим Perfect Forward Secrecy (PFS), так как для IKEv2 с EAP это не требуется. В командной строке это выглядит так:
/ip/ipsec/proposal print
add copy-from=0 name=proposal-ike2 pfs-group=noneЗатем создадим копию Profile:
/ip/ipsec/profile print
add copy-from=0 name=profile-ike2Далее создадим группу политик, которая будет использоваться для генерации динамических политик при подключении клиентов:
/ip/ipsec/policy group add name=ike2Теперь создадим шаблон политики (Policy Template). Он определяет, какие сети будут доступны через VPN. В нашем примере клиентам будет выдаваться адрес из пула 192.0.2.0/24, а доступ будет разрешён к локальной сети 10.10.4.0/24:
/ip/ipsec/policy add dst-address=192.0.2.0/24 group=ike2 proposal=proposal-ike2 src-address=0.0.0.0/0 template=yesОбратите внимание, что src-address=0.0.0.0/0 означает, что политика применяется к любому источнику, а template=yes указывает, что это шаблон для динамической генерации.
Создание peer, mode-config и identity
Следующий шаг — настройка Peer (пира), Mode-Config и Identity. Peer определяет параметры обмена ключами. Для IKEv2 создадим пассивный peer, который будет ожидать входящие подключения:
/ip/ipsec/peer add exchange-mode=ike2 name=peerike2 passive=yes profile=profile-ike2Mode-Config — это набор параметров, которые будут переданы клиенту после подключения. Здесь мы указываем пул адресов для клиентов, DNS-сервер и маршруты до локальных сетей. В нашем примере клиенту будет передан маршрут до сети 10.10.4.0/24:
/ip/ipsec/mode-config add address-pool=vpn-pool name=ike2-modconf split-include=10.10.4.0/24 system-dns=yesОбратите внимание, что пул адресов vpn-pool нужно создать заранее. Например:
/ip/pool add name=vpn-pool ranges=192.0.2.1-192.0.2.254Identity — это сущность, которая связывает все настройки вместе. В ней указывается метод аутентификации, сертификат сервера, peer, mode-config и группа политик. Для аутентификации через RADIUS используем auth-method=eap-radius:
/ip/ipsec/identity add auth-method=eap-radius certificate=letsencrypt-autogen_2023-xx-xxThh:mm:ssZ generate-policy=port-strict mode-config=ike2-modconf peer=peerike2 policy-template-group=ike2В поле certificate укажите имя вашего сертификата, полученного от Let's Encrypt. Параметр generate-policy=port-strict означает, что политики будут создаваться только для конкретных портов и протоколов, что повышает безопасность.
Настройка встроенного RADIUS-сервера (User Manager)
Для аутентификации пользователей по логину и паролю мы будем использовать встроенный RADIUS-сервер User Manager. Сначала включим его и настроим доступ к нему со стороны IPsec:
/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Теперь настроим MikroTik так, чтобы он отправлял запросы аутентификации на этот RADIUS-сервер. Для этого добавим RADIUS-клиент, указав адрес 127.0.0.1 и тот же секрет:
/radius add address=127.0.0.1 secret=MySuperPass1234 service=ppp,ipsec
/radius incoming set accept=yesОбратите внимание, что в service можно указать ppp для поддержки других VPN-протоколов (PPTP, L2TP, SSTP), но для IKEv2 достаточно ipsec.
User Manager позволяет создавать не только пользователей, но и группы с разными правами, ограничениями по времени и трафику. Это удобно для организации доступа для разных категорий сотрудников.
Настройка брандмауэра и NAT
Чтобы VPN-сервер был доступен из интернета, необходимо разрешить входящий трафик на нужные порты. IKEv2 использует UDP-порт 500 (IKE) и UDP-порт 4500 (IPsec NAT-T). Также может использоваться протокол ESP (IP protocol 50).
В Firewall добавьте правила:
/ip/firewall/filter add chain=input protocol=udp dst-port=500,4500 action=accept
/ip/firewall/filter add chain=input protocol=ipsec-esp action=acceptЕсли у вас есть правило, блокирующее весь входящий трафик, убедитесь, что эти правила находятся выше него.
Также важно настроить NAT, чтобы клиенты могли выходить в интернет через VPN. Обычно используется маскарадинг для исходящего трафика. Если у вас уже есть правило NAT для локальной сети, оно может не покрывать трафик от VPN-клиентов, так как они получают адреса из пула 192.0.2.0/24. Добавьте правило:
/ip/firewall/nat add chain=srcnat src-address=192.0.2.0/24 action=masqueradeЭто позволит VPN-клиентам обращаться к внешним ресурсам через ваш маршрутизатор.
Подключение клиентов: Windows, Android, iOS
После настройки сервера можно подключать клиентов. Рассмотрим основные платформы.
Windows
В Windows создайте новое VPN-подключение, выбрав тип IKEv2. В качестве адреса сервера укажите FQDN, на который выдан сертификат (например, gw1.example.com). Введите имя пользователя и пароль, созданные в User Manager. Если всё настроено правильно, подключение установится автоматически.
Если возникает ошибка с кодом 13801, это указывает на проблему с сертификатом R3. Убедитесь, что он установлен в хранилище локального компьютера.
Android
На Android также можно настроить IKEv2 VPN. В настройках сети выберите «VPN» → «Добавить VPN», укажите тип IKEv2/IPsec MSCHAPv2, введите адрес сервера, имя пользователя и пароль. Android поддерживает IKEv2 начиная с версии 7.0.
iOS
На iPhone и iPad IKEv2 поддерживается нативно. В настройках VPN выберите тип IKEv2, укажите адрес сервера, имя пользователя и пароль. Также можно включить автоматическое подключение.
Важно: на всех клиентах должен быть установлен корневой сертификат Let's Encrypt (ISRG Root X1) и промежуточный R3. На большинстве современных устройств они уже присутствуют, но на старых версиях ОС может потребоваться ручная установка.
Проверка работы и устранение неполадок
После настройки проверьте, что VPN-сервер работает. В WinBox перейдите в раздел IP → IPsec → Active Peers. Если клиент подключился, вы увидите активное соединение. Также можно проверить статус в разделе IP → IPsec → Policies — там должны появиться динамические политики.
Если клиент не может подключиться, проверьте следующие моменты:
- Убедитесь, что порты 500 и 4500 открыты в брандмауэре.
- Проверьте, что сертификат сервера действителен и не истёк.
- Убедитесь, что на клиенте установлен промежуточный сертификат R3.
- Проверьте логи на роутере:
/log print— там могут быть сообщения об ошибках. - Убедитесь, что в User Manager создан пользователь и пароль верны.
Частая ошибка — неправильно указанный FQDN при подключении. Он должен точно совпадать с именем в сертификате. Также проверьте, что DNS-записи корректно указывают на внешний IP роутера.
Если используется NAT за другим устройством, убедитесь, что проброс портов настроен правильно.
Советы по безопасности и производительности
Для обеспечения безопасности VPN-сервера рекомендуется:
- Использовать сложные пароли для пользователей User Manager.
- Ограничить количество одновременных подключений, если это необходимо.
- Регулярно обновлять RouterOS до последней версии.
- Не открывать порт 80 постоянно — только на время обновления сертификата.
- Использовать брандмауэр для ограничения доступа к VPN-серверу только с определённых IP-адресов, если это возможно.
Для повышения производительности можно настроить аппаратное ускорение шифрования, если ваша модель MikroTik его поддерживает. Это снизит нагрузку на процессор при большом количестве подключений.
Также стоит настроить мониторинг VPN-соединений, чтобы вовремя замечать сбои. В RouterOS есть встроенные инструменты для логирования и отправки уведомлений.
Помните, что IKEv2 — это современный и безопасный протокол, но его безопасность зависит от правильной настройки и регулярного обновления.
Вопросы и ответы
Какие версии RouterOS поддерживают IKEv2 с аутентификацией по паролю?
IKEv2 с аутентификацией по паролю (EAP-MSCHAPv2) полноценно поддерживается в RouterOS версии 7.x и новее. В более ранних версиях (6.x) такая возможность отсутствовала или была ограничена. Поэтому для настройки по описанной схеме необходимо обновить RouterOS до 7-й версии.
Нужно ли устанавливать сертификаты на каждое клиентское устройство?
Нет, при использовании аутентификации по логину и паролю (EAP-RADIUS) на клиентских устройствах не нужно устанавливать сертификаты. Достаточно, чтобы на устройстве был доверенный корневой сертификат Let's Encrypt (ISRG Root X1) и промежуточный R3. На большинстве современных ОС они уже есть, но на старых может потребоваться ручная установка.
Что делать, если клиент Windows получает ошибку IKE с кодом 13801?
Ошибка 13801 обычно означает, что не удалось проверить сертификат сервера. Чаще всего это связано с тем, что промежуточный сертификат Let's Encrypt R3 не установлен в хранилище «Промежуточные доверенные центры сертификации» локального компьютера. Скачайте сертификат R3 с сайта Let's Encrypt и установите его в правильное хранилище.
Можно ли использовать IKEv2 для доступа к интернету, а не только к локальной сети?
Да, можно. Для этого в mode-config нужно указать split-include=0.0.0.0/0 или не указывать split-include вообще, тогда весь трафик клиента будет направляться через VPN. Однако учитывайте, что это увеличит нагрузку на маршрутизатор и может замедлить интернет-соединение.
Как добавить нового пользователя для VPN-доступа?
Нового пользователя можно добавить через User Manager. В командной строке выполните: /user-manager user add name=username password=password. Также можно использовать графический интерфейс WinBox: меню User Manager → Users → Add. После добавления пользователь сможет подключаться, используя указанные логин и пароль.
Какие порты нужно открыть на брандмауэре для работы IKEv2?
Для работы IKEv2 необходимо открыть UDP-порт 500 (IKE) и UDP-порт 4500 (IPsec NAT-T). Также может потребоваться разрешить протокол ESP (IP protocol 50). Убедитесь, что эти правила находятся выше любых блокирующих правил в цепочке input.
Что такое split-include и зачем он нужен?
Split-include определяет, какие подсети будут доступны через VPN-туннель. Если указать, например, split-include=10.10.4.0/24, то клиент получит маршрут только до этой сети, а остальной трафик будет ходить напрямую. Это позволяет экономить трафик и снижать нагрузку на VPN-сервер.