IKEv2/IPsec VPN: адреса, настройка сервера и клиентов, типичные ошибки

Разбираем, что такое IKEv2/IPsec, какие адреса и порты используются, как настроить сервер на MikroTik, Ubuntu и UserGate, а также как подключить Windows, macOS, Android и Linux.

Что такое IKEv2/IPsec и почему он популярен

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

Главные преимущества IKEv2 — устойчивость к обрывам связи и быстрое восстановление после смены сети. Например, при переключении с Wi-Fi на мобильный интернет туннель не рвётся, а продолжает работу. Это особенно важно для мобильных пользователей. Кроме того, IKEv2 поддерживает современные алгоритмы шифрования, включая AES-GCM и ChaCha20, что обеспечивает высокую производительность и безопасность.

В контексте удалённого доступа IKEv2 часто используется для подключения сотрудников к корпоративной сети. Сервер может выдавать клиентам виртуальные IP-адреса, передавать маршруты до внутренних подсетей и настраивать DNS. Это делает протокол удобным для организации полноценного удалённого рабочего места.

Какие адреса и порты использует IKEv2/IPsec

Для работы IKEv2/IPsec используются стандартные порты и протоколы, которые необходимо учитывать при настройке межсетевых экранов и NAT.

Порт 500/UDP — используется для обмена ключами IKE (Internet Key Exchange). Это основной порт, через который устанавливается начальное соединение.

Порт 4500/UDP — используется для инкапсуляции IPSec-трафика в UDP, когда соединение проходит через NAT. Это необходимо, потому что ESP-пакеты (протокол 50) не могут проходить через NAT без специальной обработки. Если клиент находится за маршрутизатором с NAT, IKEv2 автоматически переключается на порт 4500.

Протокол ESP (IP protocol 50) — используется для передачи зашифрованных данных. В большинстве случаев ESP инкапсулируется в UDP 4500, но в некоторых конфигурациях может использоваться напрямую.

Протокол AH (IP protocol 51) — используется редко, так как не обеспечивает шифрование, только аутентификацию. В IKEv2 обычно применяется ESP.

При настройке сервера необходимо открыть порты 500/udp и 4500/udp на межсетевом экране, а также разрешить ESP-протокол, если он используется. Для клиентов, находящихся за NAT, достаточно открыть только UDP 4500, так как весь трафик будет инкапсулирован в UDP.

Также важно учитывать, что IKEv2 использует UDP, а не TCP. Это значит, что для прохождения через строгие межсетевые экраны, которые блокируют UDP, могут потребоваться дополнительные настройки, например, использование порта 443 или протокола TCP-инкапсуляции (forceencaps).

Настройка IKEv2-сервера на MikroTik RouterOS 7

MikroTik RouterOS версии 7 предоставляет встроенные средства для организации IKEv2-сервера с аутентификацией по логину и паролю. Это избавляет от необходимости распространять клиентские сертификаты.

Подготовка сертификата. Для работы IKEv2-сервера требуется сертификат. В RouterOS 7 можно автоматически получить сертификат от Let's Encrypt. Для этого необходимо, чтобы на роутер был открыт доступ по HTTP (порт 80) на время генерации. Команда /certificate/enable-ssl-certificate dns-name=gw1.example.com создаст сертификат для указанного домена. Важно, чтобы на клиентских устройствах был установлен промежуточный сертификат Let's Encrypt R3, иначе возникнет ошибка IKE с кодом 13801.

Установка User Manager. Для аутентификации по логину и паролю потребуется пакет user-manager. Его нужно скачать с сайта MikroTik, установить на роутер и перезагрузить устройство. После этого в WinBox появится раздел User Manager.

Настройка IPSec. Создаются следующие объекты:

  • Пул адресов для клиентов, например 192.0.2.1-192.0.2.254.
  • Копия Proposal с отключённым PFS (pfs-group=none).
  • Копия Profile.
  • Группа Policy Group.
  • Шаблон Policy Template, который определяет, какие адреса будут использоваться для клиентов.
  • Шаблон Peer с exchange-mode=ike2 и passive=yes.
  • Mode-config, который передаёт клиенту адрес DNS и маршруты до внутренних сетей.
  • Identity, который связывает все настройки и указывает метод аутентификации eap-radius.

Настройка Radius. Встроенный Radius-сервер User Manager настраивается командой /radius add address=127.0.0.1 secret=... service=ppp,ipsec. Затем создаётся пользователь с логином и паролем.

После этого клиент Windows может подключиться, указав FQDN сервера, логин и пароль. Если возникает ошибка 13801, необходимо проверить установку сертификата R3 в хранилище компьютера.

Настройка IKEv2-сервера на Ubuntu с StrongSwan

StrongSwan — это популярное open-source решение для IPSec. На Ubuntu 20.04 настройка включает установку пакетов и создание сертификатов.

Установка. Выполните sudo apt install strongswan strongswan-pki libcharon-extra-plugins libcharon-extauth-plugins libstrongswan-extra-plugins. Для поддержки Windows-клиентов может потребоваться плагин MD4, который в Ubuntu 20.04 отсутствует по умолчанию. Его можно скопировать из старой версии или собрать из исходников.

Создание сертификатов. С помощью утилиты pki создаётся корневой центр сертификации (CA) и сертификат сервера. Корневой ключ генерируется командой pki --gen --type rsa --size 4096. Затем создаётся самоподписанный сертификат CA сроком на 10 лет. Далее создаётся ключ сервера и подписывается сертификат с указанием CN и SAN, соответствующих доменному имени сервера. Важно указать флаги serverAuth и ikeIntermediate для совместимости с macOS.

Конфигурация ipsec.conf. В файле /etc/ipsec.conf настраивается соединение ikev2-vpn. Основные параметры:

  • left=%any — сервер принимает подключения на любом интерфейсе.
  • leftid=@server_domain — идентификатор сервера.
  • leftcert=server-cert.pem — путь к сертификату.
  • leftsubnet=0.0.0.0/0 — отправлять весь трафик через VPN.
  • right=%any — принимать любых клиентов.
  • rightauth=eap-mschapv2 — аутентификация по логину/паролю.
  • rightsourceip=10.10.10.0/24 — пул адресов для клиентов.
  • rightdns=8.8.8.8,8.8.4.4 — DNS-серверы.

Также задаются наборы шифров для совместимости с разными клиентами. После настройки нужно перезапустить StrongSwan и проверить статус.

Настройка IKEv2 на UserGate NGFW

UserGate NGFW предоставляет графический интерфейс для настройки Remote Access VPN на основе IKEv2. Рассмотрим основные шаги.

Подготовка сертификатов. Необходимо импортировать сертификат VPN-сервера и корневой сертификат в раздел «Сертификаты». Затем создаётся профиль клиентских сертификатов, в котором указывается корневой сертификат и поле для идентификации пользователя (Common-name, Subject altname email или Principal name).

Создание профиля безопасности. В разделе VPN → Серверные профили безопасности создаётся профиль с протоколом IKEv2, указывается сертификат сервера и режим аутентификации PKI. Также выбирается профиль клиентского сертификата. Параметры фаз согласования можно оставить по умолчанию.

Создание VPN-интерфейса. Используется интерфейс tunnel1, которому назначается статический IP-адрес, например 172.30.250.1. Интерфейс относится к зоне VPN for Remote access.

Создание сети VPN. Задаётся диапазон IP-адресов для клиентов, исключая адрес самого интерфейса. Указываются DNS-серверы и маршруты до внутренних сетей, например 10.10.0.0/24.

Создание серверного правила. В правиле указываются профиль безопасности, сеть VPN, профиль аутентификации, интерфейс, источник (зона Untrusted) и назначение (внешний IP-адрес сервера).

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

После этого клиенты могут подключаться, используя встроенные средства Windows или Linux.

Подключение клиентов Windows, macOS, Android и Linux

IKEv2 поддерживается большинством операционных систем без дополнительных приложений.

Windows. В параметрах сети добавляется новое VPN-подключение. В качестве типа VPN выбирается IKEv2. Если используется сертификатная аутентификация, необходимо импортировать пользовательский сертификат в хранилище компьютера и корневой сертификат в доверенные корневые центры. В свойствах подключения на вкладке «Безопасность» выбирается «Использовать сертификаты компьютеров». Для того чтобы не отправлять весь трафик через VPN, можно отключить «Использовать основной шлюз в удаленной сети» в настройках IPv4.

macOS. Встроенный клиент поддерживает IKEv2. Достаточно указать адрес сервера и учётные данные. Для сертификатной аутентификации может потребоваться установка корневого сертификата в связку ключей.

Android и iOS. В настройках VPN выбирается тип IKEv2/IPsec MSCHAPv2 или IKEv2/IPsec Certificate. Для сертификатной аутентификации необходимо установить сертификат на устройство.

Linux. Для Ubuntu можно использовать Network Manager с плагином strongswan. Установите network-manager-strongswan и libcharon-extra-plugins. В настройках сети добавьте новое VPN-соединение типа IPsec/IKEv2 (strongswan). Укажите метод аутентификации (Certificate или EAP), файлы сертификатов и ключа. Корневой сертификат должен находиться в /etc/ssl/certs/.

При использовании аутентификации по логину и паролю (EAP-MSCHAPv2) клиенты Windows, macOS и Android подключаются без установки дополнительных сертификатов, что упрощает развёртывание.

Типичные ошибки и способы их решения

При настройке IKEv2 часто возникают ошибки, связанные с сертификатами, портами и несовместимостью алгоритмов.

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

Ошибка «Нет доступных алгоритмов». Возникает, когда клиент и сервер не могут согласовать общий набор шифров. Необходимо проверить, что в конфигурации сервера перечислены алгоритмы, поддерживаемые клиентом. Например, для старых версий Windows может потребоваться AES-SHA1, а для новых — AES-GCM.

Проблемы с NAT. Если клиент находится за NAT, а сервер не настроен на использование порта 4500, соединение может не установиться. Убедитесь, что на сервере разрешён UDP 4500 и включена инкапсуляция NAT-T.

Соединение устанавливается, но нет доступа к ресурсам. Проверьте маршруты, передаваемые клиенту через mode-config. Убедитесь, что на сервере настроены правила межсетевого экрана и NAT для трафика из VPN-зоны.

Сертификат не доверенный на macOS. Для macOS может потребоваться флаг ikeIntermediate в сертификате сервера. Также необходимо установить корневой сертификат в системную связку ключей и настроить доверие.

Проблемы с MTU. Если соединение устанавливается, но страницы не загружаются, возможно, проблема в MTU. Попробуйте уменьшить MTU на туннельном интерфейсе.

Сравнение IKEv2 с другими протоколами VPN

IKEv2 часто сравнивают с OpenVPN, WireGuard и L2TP/IPsec.

IKEv2 vs OpenVPN. OpenVPN работает через TCP или UDP и использует собственную реализацию TLS. Он более гибок в настройке, но требует установки клиентского ПО на большинстве платформ. IKEv2 встроен в операционные системы, что упрощает развёртывание. По скорости IKEv2 обычно не уступает OpenVPN, а при использовании современных алгоритмов может быть быстрее.

IKEv2 vs WireGuard. WireGuard — более новый протокол, который отличается простотой и высокой производительностью. Он использует современную криптографию (ChaCha20, Curve25519) и работает быстрее, чем IKEv2. Однако WireGuard не поддерживает встроенными средствами Windows и macOS, хотя есть сторонние реализации. IKEv2 более совместим с корпоративными решениями и поддерживает сертификаты и EAP.

IKEv2 vs L2TP/IPsec. L2TP/IPsec — это комбинация L2TP и IPSec. Он также встроен в большинство ОС, но менее устойчив к обрывам и часто блокируется межсетевыми экранами, так как использует UDP 500 и 4500. IKEv2 более надёжен и быстрее восстанавливает соединение.

Выбор протокола зависит от конкретных задач. Для удалённого доступа сотрудников к корпоративной сети IKEv2 — хороший выбор благодаря встроенной поддержке и устойчивости. Для максимальной производительности и простоты можно рассмотреть WireGuard, но потребуется установка дополнительного ПО.

Практические рекомендации по выбору адресов и планированию сети

При настройке IKEv2-сервера важно правильно спланировать адресное пространство.

Пул адресов для клиентов. Выделите отдельную подсеть, которая не пересекается с локальными сетями. Например, если офисная сеть 10.10.0.0/24, для VPN-клиентов можно использовать 10.10.10.0/24 или 192.168.100.0/24. Это позволит избежать конфликтов маршрутизации.

Адрес сервера. Сервер должен иметь статический IP-адрес или FQDN, на который выдан сертификат. Использование динамического DNS возможно, но может вызвать проблемы с сертификатами, так как Let's Encrypt требует подтверждения владения доменом.

DNS-серверы. Укажите DNS-серверы, которые будут передаваться клиентам. Это могут быть публичные DNS (8.8.8.8) или внутренние DNS-серверы компании. Если клиентам нужен доступ к внутренним ресурсам по именам, необходимо передавать внутренние DNS.

Маршруты. С помощью mode-config можно передавать клиентам маршруты до внутренних подсетей. Это позволяет не отправлять весь трафик через VPN, а только трафик, предназначенный для корпоративной сети. Это снижает нагрузку на сервер и повышает скорость.

Безопасность. Используйте сильные пароли и, по возможности, сертификатную аутентификацию. Ограничьте доступ к VPN-серверу по IP-адресам источника, если это возможно. Регулярно обновляйте сертификаты и следите за журналами.

Масштабирование. Если планируется много клиентов, убедитесь, что сервер может обрабатывать необходимое количество одновременных подключений. Для MikroTik и StrongSwan есть ограничения по производительности, которые стоит учитывать.

Безопасность IKEv2: лучшие практики

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

Используйте современные алгоритмы. Отключите устаревшие алгоритмы, такие как 3DES, MD5 и SHA1, если это возможно. Вместо них используйте AES-GCM, ChaCha20, SHA-256 и выше. Это защитит от атак, связанных со слабой криптографией.

Аутентификация. Для корпоративного использования предпочтительна сертификатная аутентификация (PKI), так как она исключает передачу паролей по сети. Если используется EAP-MSCHAPv2, убедитесь, что пароли достаточно сложные и не используются повторно.

Управление сертификатами. Следите за сроками действия сертификатов и своевременно их обновляйте. Для Let's Encrypt срок действия составляет 90 дней, поэтому настройте автоматическое обновление. Храните закрытые ключи в защищённом месте и ограничьте доступ к ним.

Межсетевой экран. Ограничьте доступ к портам 500/udp и 4500/udp только с доверенных IP-адресов, если это возможно. Используйте межсетевой экран для фильтрации трафика из VPN-зоны.

Мониторинг и журналирование. Включите подробное журналирование IKE и IPSec, чтобы отслеживать попытки подключения и выявлять аномалии. Регулярно просматривайте журналы на предмет подозрительной активности.

Обновления. Регулярно обновляйте операционную систему и VPN-сервер, чтобы получать исправления уязвимостей. Для StrongSwan и RouterOS выходят обновления, которые важно устанавливать.

Следуя этим рекомендациям, вы сможете организовать безопасный и надёжный удалённый доступ.

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

Какие порты нужно открыть для IKEv2/IPsec?

Для работы IKEv2/IPsec необходимо открыть UDP-порт 500 (для обмена ключами IKE) и UDP-порт 4500 (для инкапсуляции ESP в UDP при прохождении через NAT). Также может потребоваться разрешить протокол ESP (IP protocol 50), если он используется напрямую. В большинстве случаев достаточно открыть 500/udp и 4500/udp.

Почему возникает ошибка IKE 13801 в Windows?

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

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

Да, можно использовать аутентификацию по логину и паролю (EAP-MSCHAPv2). В этом случае серверу всё равно требуется сертификат для идентификации, но клиентам не нужно устанавливать клиентские сертификаты. Это упрощает настройку, особенно для большого количества пользователей. Однако сертификатная аутентификация считается более безопасной.

Как настроить IKEv2 на Android?

На Android в настройках VPN выберите тип IKEv2/IPsec MSCHAPv2 для аутентификации по логину и паролю или IKEv2/IPsec Certificate для сертификатной аутентификации. Укажите адрес сервера, логин и пароль. Если используется сертификат, его необходимо установить на устройство.

В чём разница между IKEv2 и OpenVPN?

IKEv2 встроен в большинство операционных систем, что упрощает развёртывание, и лучше восстанавливает соединение при смене сети. OpenVPN более гибок в настройке и может работать через TCP, что помогает обходить блокировки, но требует установки клиентского ПО. По скорости и безопасности они сопоставимы при правильной настройке.

Что делать, если VPN-соединение устанавливается, но нет доступа к ресурсам?

Проверьте маршруты, передаваемые клиенту через mode-config. Убедитесь, что на сервере настроены правила межсетевого экрана и NAT для трафика из VPN-зоны. Также проверьте, что клиент получает правильные DNS-серверы и что подсети не конфликтуют.