Почему IKEv2: преимущества и ограничения протокола
IKEv2 (Internet Key Exchange version 2) — современный протокол, входящий в семейство IPsec. Он поддерживается всеми актуальными операционными системами: Windows, macOS, iOS, Android и Linux. В отличие от PPTP и L2TP, которые имеют известные уязвимости, IKEv2 обеспечивает высокий уровень безопасности, включая аутентификацию клиента и проверку подлинности сервера, что исключает атаки типа «человек посередине».
Главные преимущества IKEv2:
- Высокая устойчивость к разрывам соединения: при смене сети (например, с Wi-Fi на мобильный интернет) туннель быстро восстанавливается.
- Хорошая производительность, особенно при аппаратном ускорении IPsec на роутерах.
- Не требует установки стороннего ПО на клиентские устройства — встроенная поддержка в ОС.
- Возможность автоматической передачи маршрутов и DNS-серверов клиенту через mode-config.
Ограничения:
- Настройка серверной части сложнее, чем у PPTP или L2TP, требует понимания IPsec.
- При использовании сертификатов необходимо управлять PKI (инфраструктурой открытых ключей).
- Для аутентификации по сертификатам нужен статический IP или доменное имя (FQDN).
IKEv2 — оптимальный выбор для организации удаленного доступа сотрудников к корпоративной сети, особенно если важны безопасность и совместимость с разными устройствами.
Подготовка MikroTik: версия RouterOS и необходимые пакеты
Перед настройкой IKEv2 VPN-сервера убедитесь, что на роутере установлена актуальная версия RouterOS. Для аутентификации по логину и паролю с использованием встроенного RADIUS-сервера потребуется RouterOS версии 7.x. В более ранних версиях такая возможность отсутствует.
Если вы планируете использовать сертификаты Let's Encrypt, необходимо, чтобы роутер имел доступ к интернету и порт TCP 80 был открыт извне (хотя бы временно, на время генерации сертификата). Также желательно наличие FQDN, привязанного к внешнему IP-адресу роутера.
Для работы встроенного RADIUS-сервера (User Manager) может потребоваться установка дополнительного пакета user-manager. Скачайте архив extra-packages с официального сайта MikroTik, соответствующий архитектуре вашего роутера и версии RouterOS. Извлеките файл user-manager-7.x.npk, скопируйте его в корень файловой системы роутера и перезагрузите устройство. После перезагрузки в меню WinBox появится раздел User Manager.
Важно: версия пакета должна точно соответствовать версии RouterOS. Установка пакета другой версии приведет к ошибке.
Создание центра сертификации (CA) на MikroTik
Для аутентификации по сертификатам необходима инфраструктура открытых ключей (PKI). В качестве центра сертификации (CA) можно использовать сам MikroTik, создав корневой сертификат.
В WinBox перейдите в System → Certificates, нажмите «+» для создания нового сертификата. Заполните поля:
- Name: например, ca
- Common Name: ca
- Key Size: 2048 или больше (меньшие ключи небезопасны)
- Days Valid: например, 3650 (10 лет)
На вкладке Key Usage оставьте только флаги crl sign и key cert. sign. Это позволит сертификату подписывать другие сертификаты и списки отзыва (CRL). Нажмите Apply, затем Sign. В поле CA CRL Host укажите IP-адрес роутера (например, 127.0.0.1). После подписи корневой сертификат будет создан.
В терминале эти действия выглядят так:
/certificate add name=ca common-name=ca key-size=2048 days-valid=3650 key-usage=crl-sign,key-cert-sign
/certificate sign ca ca-crl-host=192.168.103.1Теперь у вас есть CA, который будет выпускать сертификаты для сервера и клиентов.
Выпуск серверного сертификата: требования и настройка
Серверный сертификат используется для шифрования соединения и проверки подлинности сервера клиентами. Важные требования:
- Сервер должен иметь статический IP-адрес или доменное имя (FQDN).
- Сертификат должен быть выпущен на тот адрес (IP или FQDN), по которому клиенты будут подключаться. Если клиент подключается по IP, а сертификат выпущен для FQDN (или наоборот), соединение будет отклонено.
В System → Certificates создайте новый сертификат:
- Name: укажите IP-адрес или FQDN сервера (например, vpn.example.com)
- Common Name: тот же адрес
- Subject Alt. Name: выберите тип DNS (для FQDN) или IP (для IP-адреса) и укажите адрес
- Key Size: 2048
- Days Valid: например, 3650
На вкладке Key Usage оставьте только флаг tls server. Подпишите сертификат закрытым ключом CA.
Пример команды для терминала:
/certificate add name=vpn.example.com common-name=vpn.example.com subject-alt-name=DNS:vpn.example.com key-size=2048 days-valid=3650 key-usage=tls-server
/certificate sign vpn.example.com ca=caЕсли вы используете сертификат от Let's Encrypt, процесс упрощается: достаточно выполнить команду /certificate/enable-ssl-certificate dns-name=ваш-fqdn. При этом роутер сам сгенерирует запрос и установит сертификат.
Выпуск и экспорт клиентских сертификатов
Для каждого клиента (сотрудника, устройства) выпускается отдельный сертификат. В System → Certificates создайте новый сертификат:
- Name: понятное имя, например, ФИО сотрудника или название устройства
- Common Name: то же имя
- Days Valid: рекомендуется выдавать на ограниченный срок (например, 365 дней), чтобы снизить риски при компрометации
На вкладке Key Usage укажите только tls client. Подпишите сертификат CA.
Для использования на клиентских устройствах сертификат необходимо экспортировать в формате PKCS12. Этот формат объединяет в одном файле закрытый ключ клиента, его сертификат и корневой сертификат CA. В WinBox выберите сертификат, нажмите Export, укажите Type: PKCS12, задайте пароль (не менее 8 символов) и имя файла. Скачайте файл из раздела Files.
Пример команды:
/certificate export-certificate SmirnovaMV type=pkcs12 export-passphrase=0123456789Важно: пароль для экспорта обязателен, иначе закрытый ключ не будет включен в файл. Храните экспортированные файлы в безопасном месте.
Настройка IPsec: профили, предложения и пул адресов
Настройка IKEv2 VPN-сервера в MikroTik сводится к конфигурации IPsec. Основные элементы:
- Профиль (Profile) — задает параметры установления соединения. Создайте новый профиль с именем, например, IKEv2. Параметры по умолчанию подходят, но лучше создать копию существующего профиля, чтобы не изменять стандартный.
- Предложения (Proposals) — набор алгоритмов шифрования и хеширования. Создайте новое предложение, удалите 3des (устаревший) и добавьте aes-128-cbc, aes-192-cbc, aes-256-cbc. Это обеспечит совместимость с современными ОС и достаточный уровень безопасности. Также рекомендуется отключить PFS (pfs-group=none) для упрощения совместимости.
- Пул адресов (Pool) — диапазон IP-адресов, которые будут выдаваться VPN-клиентам. Например, 172.16.200.1-172.16.200.100 или 192.0.2.1-192.0.2.254. Создайте пул в IP → Pool.
Примеры команд:
/ip ipsec proposal add name=proposal-ike2 pfs-group=none
/ip ipsec profile add name=profile-ike2
/ip pool add name=vpn-pool ranges=192.0.2.1-192.0.2.254Важно: не изменяйте профиль «default» без необходимости, лучше создавайте копии.
Настройка Mode Config, групп и политик IPsec
Mode Config (mode-config) передает клиентам сетевые параметры: IP-адрес из пула, маршруты до внутренних сетей, DNS-серверы. Создайте новую конфигурацию в IP → IPsec → Mode Configs:
- Name: например, IKEv2-cfg
- Флаг Responder: установите (сервер будет отвечать клиенту)
- Address Pool: выберите созданный пул
- Address Prefix Length: 32 (каждому клиенту выдается отдельный адрес)
- Split Include: укажите внутренние подсети, доступ к которым нужно предоставить (например, 192.168.111.0/24)
- System DNS: если нужно передавать DNS-серверы роутера, оставьте флаг; иначе снимите и укажите статические DNS
Группы (Groups) используются для связывания политик и идентификаторов. Создайте группу, например, ikev2-policies.
Политики (Policies) определяют, какой трафик будет шифроваться. Создайте шаблон политики:
- Src. Address: 0.0.0.0/0 (разрешить подключения с любого адреса)
- Dst. Address: диапазон VPN-пула (например, 10.20.0.0/24)
- Флаг Template: установите
- Policy Template Group: выберите созданную группу
- На вкладке Action: Proposal — выберите созданное предложение
Примеры команд:
/ip ipsec mode-config add address-pool=vpn-pool name=ikev2-modconf split-include=10.10.4.0/24 system-dns=yes
/ip ipsec policy group add name=ike2
/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Настройка Peers и Identities: аутентификация по сертификатам и EAP-RADIUS
Peer (пир) — это настройка, определяющая, как сервер принимает подключения. Создайте новый пир в IP → IPsec → Peers:
- Name: например, IKEv2-peer
- Флаг Passive: установите (сервер ждет подключений)
- Address: 0.0.0.0/0 (разрешить подключения с любого адреса)
- Profile: выберите созданный профиль
- Exchange Mode: IKE2
Identity (идентификатор) — ключевой элемент, связывающий все настройки. В IP → IPsec → Identities создайте новую запись:
- Peer: выберите созданный пир
- Auth Method: digital signature (для сертификатов) или eap-radius (для логина/пароля)
- Certificate: выберите серверный сертификат
- Policy Template Group: выберите группу политик
- Mode Configuration: выберите mode-config
- Generate Policy: port-strict
Для аутентификации по логину и паролю (EAP-RADIUS) необходимо:
- Настроить обращение к встроенному RADIUS-серверу: /radius add address=127.0.0.1 secret=MySuperPass1234 service=ppp,ipsec
- Включить прием запросов: /radius incoming set accept=yes
- Настроить User Manager: включить, добавить роутер и пользователя.
Примеры команд:
/ip ipsec peer add exchange-mode=ike2 name=peerike2 passive=yes profile=profile-ike2
/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Настройка брандмауэра и проверка подключения
Чтобы клиенты могли подключаться к VPN-серверу, необходимо разрешить входящий трафик на порты UDP 500 и 4500 (IKE и IPsec NAT-T). Добавьте правило в IP → Firewall → Filter Rules:
- Chain: input
- Protocol: udp
- Dst. Port: 500, 4500
- In. Interface: ваш внешний интерфейс (например, ether1)
- Action: accept
Также нужно разрешить форвардинг трафика от VPN-клиентов во внутреннюю сеть. Добавьте правило:
- Chain: forward
- In. Interface: внешний интерфейс
- IPsec Policy: in:ipsec
- Action: accept
Оба правила должны быть расположены выше запрещающих правил в соответствующих цепочках.
После настройки проверьте подключение с клиентского устройства. В Windows создайте новое VPN-подключение, указав адрес сервера (FQDN или IP), тип VPN — IKEv2, и учетные данные (сертификат или логин/пароль). На Android используйте встроенный клиент IKEv2/IPsec MSCHAPv2 или IKEv2/IPsec PSK, в зависимости от настроек.
Если возникает ошибка IKE с кодом 13801, скорее всего, проблема с сертификатом R3 Let's Encrypt на клиенте. Убедитесь, что он установлен в хранилище «промежуточные доверенные центры сертификации» на уровне компьютера (Local Machine).
Аутентификация по логину и паролю: упрощение без сертификатов
Традиционная настройка IKEv2 с сертификатами требует выпуска и установки сертификатов на каждое клиентское устройство, что может быть трудоемким. Альтернативный подход — использование аутентификации по логину и паролю (EAP-RADIUS). Это возможно в RouterOS 7.x благодаря встроенному RADIUS-серверу (User Manager) и поддержке Let's Encrypt.
Преимущества:
- Не нужно распространять клиентские сертификаты.
- Достаточно одного сертификата для сервера (можно получить от Let's Encrypt автоматически).
- Упрощается добавление и удаление пользователей.
Недостатки:
- Чуть ниже уровень безопасности по сравнению с сертификатами (пароль может быть скомпрометирован).
- Требуется RouterOS 7.x и установка пакета user-manager.
Настройка включает:
- Получение сертификата Let's Encrypt для сервера.
- Создание пула адресов, профилей, предложений, групп, политик, пира и mode-config, как описано выше.
- В Identity укажите auth-method=eap-radius и выберите сертификат сервера.
- Настройте RADIUS и User Manager, добавьте пользователей.
Пример настройки 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После этого клиенты подключаются, вводя логин и пароль, без установки сертификатов.
Вопросы и ответы
Какие порты нужно открыть для IKEv2 VPN на MikroTik?
Для работы IKEv2 необходимо разрешить входящий UDP-трафик на портах 500 (IKE) и 4500 (IPsec NAT-T). Также, если используется аутентификация по сертификатам Let's Encrypt, на время генерации сертификата нужно открыть TCP-порт 80. Правила брандмауэра должны быть добавлены в цепочку input для внешнего интерфейса.
В чем разница между аутентификацией по сертификатам и по логину/паролю в IKEv2?
При аутентификации по сертификатам каждый клиент получает уникальный сертификат, подписанный CA. Это обеспечивает более высокий уровень безопасности, но требует управления PKI и установки сертификатов на устройства. Аутентификация по логину/паролю (EAP-RADIUS) проще в администрировании, так как не требует распространения сертификатов, но пароли могут быть скомпрометированы. В RouterOS 7.x можно использовать встроенный RADIUS-сервер для проверки учетных данных.
Почему возникает ошибка IKE с кодом 13801 при подключении к MikroTik IKEv2?
Ошибка 13801 обычно связана с неправильной установкой сертификата R3 Let's Encrypt на клиентском устройстве. Убедитесь, что сертификат R3 установлен в хранилище «промежуточные доверенные центры сертификации» на уровне компьютера (Local Machine), а не пользователя. Также проверьте, что сертификат сервера соответствует адресу, по которому вы подключаетесь (FQDN или IP).
Можно ли использовать IKEv2 VPN на MikroTik без статического IP-адреса?
Технически можно, но это не рекомендуется. Для аутентификации по сертификатам серверный сертификат должен быть выпущен на конкретный IP или FQDN. Если IP динамический, вам придется использовать динамический DNS (DDNS) и перевыпускать сертификат при каждом изменении IP. Для аутентификации по логину/паролю также желательно иметь стабильный адрес, чтобы клиенты могли найти сервер.
Какие алгоритмы шифрования рекомендуется использовать для IKEv2 на MikroTik?
Рекомендуется использовать AES-128-CBC, AES-192-CBC и AES-256-CBC. Алгоритм 3DES считается устаревшим и небезопасным, поэтому его следует исключить. Также рекомендуется отключить PFS (Perfect Forward Secrecy) в предложениях для лучшей совместимости с клиентскими устройствами, хотя это немного снижает безопасность.
Как передать VPN-клиентам маршруты до внутренних сетей в IKEv2?
Для передачи маршрутов используется параметр Split Include в настройках Mode Config. Укажите одну или несколько подсетей, доступ к которым должны получать удаленные клиенты. Например, split-include=192.168.111.0/24. Клиенты автоматически получат маршруты до этих сетей через VPN-туннель.
Нужно ли устанавливать дополнительные пакеты на MikroTik для IKEv2 с логином и паролем?
Да, для использования встроенного RADIUS-сервера (User Manager) требуется установить пакет user-manager. Он входит в состав extra-packages, которые можно скачать с официального сайта MikroTik. Убедитесь, что версия пакета соответствует версии RouterOS. После установки и перезагрузки в меню появится раздел User Manager.