Клиент-сервер IPsec VPN: настройка IKEv2 и L2TP/IPsec на Windows, Linux и MikroTik

Разбираем архитектуру клиент-сервер IPsec VPN, сравниваем IKEv2 и L2TP/IPsec, даём пошаговые инструкции для Windows, Linux и MikroTik, а также рекомендации по безопасности и устранению неполадок.

Что такое клиент-сервер IPsec VPN и зачем он нужен

IPsec (Internet Protocol Security) — это набор протоколов, обеспечивающих шифрование, целостность и аутентификацию IP-пакетов. В модели клиент-сервер одно устройство (клиент) инициирует защищённое соединение с сервером, который выступает шлюзом в частную сеть. Такая схема широко используется для удалённого доступа сотрудников к корпоративным ресурсам, для защиты трафика в общественных сетях Wi-Fi и для объединения филиалов компании.

Ключевое преимущество IPsec перед другими VPN-решениями — работа на сетевом уровне (L3), что позволяет шифровать любой трафик без изменений в приложениях. В отличие от SSL VPN, где защита организуется на уровне приложений, IPsec прозрачен для пользователя и поддерживается большинством операционных систем и сетевых устройств.

В зависимости от способа установки соединения различают два основных режима: транспортный и туннельный. В туннельном режиме, который используется в VPN, весь IP-пакет помещается в новый пакет с новым заголовком, что скрывает внутреннюю структуру сети. Этот режим применяется как для связи «сеть-сеть» (site-to-site), так и для удалённого доступа (remote access).

IKEv2 и L2TP/IPsec: сравнение протоколов

Для установки защищённого канала IPsec используется протокол IKE (Internet Key Exchange). Его вторая версия — IKEv2 — была разработана для устранения недостатков IKEv1 и предлагает более высокую скорость согласования параметров, устойчивость к смене сети (например, при переходе с Wi-Fi на мобильный интернет) и встроенную поддержку мобильности (MOBIKE).

L2TP/IPsec — это комбинация протокола туннелирования второго уровня L2TP и IPsec для шифрования. L2TP сам по себе не шифрует данные, поэтому его всегда используют вместе с IPsec. Такая связка поддерживается практически всеми устройствами и операционными системами, включая Windows, macOS, Linux, Android и iOS, а также маршрутизаторами MikroTik.

Сравнение:

  • IKEv2 — более современный, быстрый и надёжный, лучше работает на мобильных устройствах, поддерживает автоматическое переподключение при смене сети.
  • L2TP/IPsec — более совместимый, но часто медленнее из-за двойной инкапсуляции (L2TP внутри IPsec), что увеличивает накладные расходы.

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

Архитектура клиент-сервер IPsec VPN: роли и компоненты

В типичной конфигурации клиент-сервер IPsec VPN участвуют следующие компоненты:

  • VPN-сервер — устройство (например, межсетевой экран UserGate NGFW или маршрутизатор MikroTik), которое принимает входящие VPN-подключения, аутентифицирует клиентов и предоставляет доступ к внутренним ресурсам.
  • VPN-клиент — программное обеспечение или встроенный модуль на компьютере, смартфоне или маршрутизаторе, который инициирует соединение.
  • Сервер аутентификации — часто используется LDAP, Active Directory или RADIUS для проверки учётных данных пользователей.
  • Сертификаты и ключи — для аутентификации на основе PKI или предварительного общего ключа (PSK).

Процесс установки соединения включает несколько этапов:

  1. Инициализация IKE — клиент и сервер обмениваются предложениями по алгоритмам шифрования, аутентификации и обмена ключами.
  2. Аутентификация — стороны подтверждают свою личность с помощью сертификатов, PSK или EAP.
  3. Создание туннеля — после успешной аутентификации устанавливается защищённый канал (ESP), через который передаются данные.
  4. Назначение IP-адреса — сервер выдаёт клиенту IP-адрес из пула VPN-подсети (например, через Mode Config или DHCP).
  5. Маршрутизация — клиент получает маршруты для доступа к внутренним сетям.

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

Настройка VPN-сервера на UserGate NGFW (IKEv2)

Рассмотрим пример настройки remote access VPN с IKEv2 на межсетевом экране UserGate NGFW. Это типичная конфигурация для корпоративной сети, где сервер выступает шлюзом для удалённых сотрудников.

Шаг 1. Разрешение сервисов В разделе «Сеть → Зоны» для зоны Untrusted (внешняя сеть) необходимо разрешить сервисы VPN и «Подключение конечных устройств». Это позволит принимать входящие VPN-запросы.

Шаг 2. Создание зоны для VPN Используется зона по умолчанию «VPN for Remote access», которая будет назначаться всем VPN-клиентам. При необходимости можно создать свою зону.

Шаг 3. Настройка аутентификации Для проверки пользователей используется профиль аутентификации, например, через LDAP-коннектор к домену Active Directory. Также необходимо импортировать сертификаты: серверный сертификат с приватным ключом и корневой сертификат. Создаётся профиль клиентских сертификатов, в котором указывается корневой сертификат и поле для идентификации пользователя (Common Name, email и т.д.).

Шаг 4. Создание профиля безопасности VPN В разделе «VPN → Серверные профили безопасности» создаётся профиль с параметрами:

  • Протокол: IKEv2
  • Сертификат сервера: импортированный ранее
  • Режим аутентификации: PKI (сертификаты клиентов)
  • Параметры первой и второй фаз согласования (обычно оставляют по умолчанию)

Шаг 5. Создание VPN-интерфейса Используется интерфейс tunnel1, которому назначается статический IP-адрес из подсети VPN (например, 172.30.250.1/24). Этот адрес будет шлюзом для клиентов.

Шаг 6. Создание сети VPN Определяется диапазон IP-адресов, выдаваемых клиентам (например, 172.30.250.10-172.30.250.100), маска, DNS-серверы и маршруты до внутренних сетей (например, 10.10.0.0/24).

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

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

После этих шагов сервер готов принимать подключения IKEv2.

Настройка VPN-клиента на Windows для IKEv2

Для подключения к IKEv2 VPN на Windows используется встроенный клиент. Рассмотрим пошаговую настройку.

  1. Импорт сертификатов
  • Клиентский сертификат пользователя импортируется в личное хранилище компьютера.
  • Корневой сертификат — в «Доверенные корневые центры сертификации».
  1. Создание VPN-подключения
  • Откройте «Параметры сети и Интернет» → «VPN» → «Добавить VPN-подключение».
  • Поставщик услуг VPN: Windows (встроенные)
  • Имя подключения: любое, например «IKEv2 VPN»
  • Имя или адрес сервера: доменное имя или IP-адрес VPN-сервера
  • Тип VPN: IKEv2
  • Тип данных для входа: Сертификат
  1. Настройка безопасности
  • В свойствах подключения (через «Настройки адаптера») на вкладке «Безопасность» выберите «Использовать сертификаты компьютеров».
  • На вкладке «Сеть» в свойствах IPv4 снимите флажок «Использовать основной шлюз в удалённой сети», если не нужно направлять весь трафик через VPN.
  1. Подключение
  • Нажмите на значок сети в трее, выберите созданное подключение и нажмите «Подключить».

После успешного подключения в системе появится виртуальный адаптер, и вы сможете обращаться к ресурсам корпоративной сети.

Настройка VPN-клиента на Linux (strongSwan)

Для Linux (например, Ubuntu) в качестве IKEv2-клиента часто используется strongSwan. Рассмотрим настройку через NetworkManager.

  1. Установка пакетов

Выполните команды:

   sudo apt update && sudo apt upgrade
   sudo apt install network-manager-strongswan libcharon-extra-plugins
  1. Создание VPN-подключения
  • Откройте «Настройки» → «Сеть» → «VPN» → «+».
  • Выберите тип «IPsec/IKEv2 (strongswan)».
  1. Настройка идентификации
  • На вкладке «Идентификация» укажите:
  • Имя соединения
  • Метод аутентификации: Certificate
  • Способ аутентификации: Certificate/private key
  • Файлы клиентского сертификата и ключа
  • На вкладке «IPv4» оставьте метод получения адресов по DHCP.
  1. Установка корневого сертификата

Убедитесь, что корневой сертификат присутствует в системе. При необходимости скопируйте его в /etc/ssl/certs/.

  1. Подключение

Включите созданное VPN-соединение. После установки соединения появится виртуальный адаптер, и вы сможете работать с удалённой сетью.

strongSwan также поддерживает настройку через командную строку, что удобно для автоматизации.

Настройка VPN-клиента на MikroTik (L2TP/IPsec)

MikroTik RouterOS позволяет настроить VPN-клиент для подключения к удалённому серверу. Рассмотрим пример с L2TP/IPsec, который часто используется для связи офисов или для доступа к коммерческим VPN-сервисам.

Подготовка Понадобятся:

  • IP-адрес или доменное имя VPN-сервера
  • Логин и пароль
  • Pre-shared key (PSK) для IPsec
  • Маршрутизатор с RouterOS 6.45 или новее

Шаг 1. Создание L2TP-интерфейса В WinBox: PPP → Interfaces → «+» → L2TP Client. Укажите:

  • Name: например, L2TP-VPN
  • Connect To: адрес сервера
  • User: логин
  • Password: пароль
  • Use IPsec: установите галочку
  • IPsec Secret: PSK

Шаг 2. Настройка IPsec Перейдите в IP → IPsec → Proposals. Убедитесь, что алгоритмы шифрования и аутентификации совпадают с сервером (обычно AES-128, SHA1, DH Group 2). При необходимости создайте новый Proposal. В разделе Peers должно автоматически появиться правило для вашего сервера. Если нет — добавьте вручную, указав адрес сервера и PSK.

Шаг 3. Маршрутизация Чтобы направить трафик через VPN, добавьте статический маршрут: IP → Routes → «+», Dst. Address = 0.0.0.0/0, Gateway = имя L2TP-интерфейса (например, L2TP-VPN). Если нужен доступ только к определённым подсетям, укажите конкретные адреса назначения.

Шаг 4. NAT Для доступа локальных устройств в интернет через VPN добавьте правило NAT: IP → Firewall → NAT → «+», Chain = srcnat, Out. Interface = L2TP-VPN, Action = masquerade.

Проверка Статус интерфейса должен быть «R» (running). Проверьте счётчики Tx/Rx. При проблемах смотрите логи (Log → System).

Настройка MikroTik как IKEv2-клиента

MikroTik также поддерживает IKEv2-клиент, что может быть предпочтительнее из-за лучшей производительности и устойчивости. Настройка выполняется через IP → IPsec.

  1. Создание профиля

В разделе IPsec → Profiles создайте профиль с параметрами, соответствующими серверу: алгоритмы шифрования, хеширования, DH-группы.

  1. Настройка Peers

Добавьте Peer: укажите адрес сервера, порт (по умолчанию 500), протокол IKEv2, метод аутентификации (PSK или сертификаты).

  1. Настройка Identity

В разделе Identities укажите секрет (PSK) или сертификат, а также идентификаторы сторон.

  1. Политики (Policies)

Создайте политику, определяющую, какой трафик шифровать. Обычно это src-адрес локальной сети и dst-адрес удалённой сети.

  1. Маршрутизация

Добавьте маршрут к удалённой сети через интерфейс туннеля (например, ipsec0).

  1. Mode Config

Если сервер выдаёт IP-адрес клиенту, включите Mode Config и DHCP-клиент на туннельном интерфейсе.

После настройки включите Peer и проверьте статус соединения. IKEv2 на MikroTik обеспечивает более быстрое переподключение и лучшую совместимость с современными серверами.

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

При настройке IPsec VPN часто возникают следующие проблемы:

  • Несовпадение PSK или параметров шифрования — самая частая причина ошибок. Убедитесь, что на клиенте и сервере заданы одинаковые алгоритмы (AES, SHA, DH-группа) и ключи.
  • Ошибка «no proposal chosen» — означает, что стороны не смогли согласовать параметры IKE. Проверьте Proposals на MikroTik или профиль безопасности на сервере.
  • Статус интерфейса «D» (disabled) — проверьте, не отключён ли интерфейс вручную, и правильность логина/пароля.
  • Нет трафика через VPN — проверьте маршрут: он должен указывать на VPN-интерфейс, а не на шлюз провайдера. Также проверьте правила NAT и межсетевого экрана.
  • Проблемы с DNS — если клиент не получает DNS-серверы, настройте их вручную или включите Use Peer DNS.
  • Сертификаты не доверенные — убедитесь, что корневой сертификат установлен в доверенные центры сертификации.

Для диагностики используйте логи на сервере и клиенте. На MikroTik — Log → System, на Windows — журнал событий, на Linux — journalctl.

Также рекомендуется обновлять прошивку и программное обеспечение, так как старые версии могут содержать ошибки.

Рекомендации по безопасности и производительности

При развёртывании IPsec VPN важно учитывать не только настройку, но и общую безопасность.

  • Используйте сильные алгоритмы — AES-256, SHA-256, DH Group 14 или выше. Избегайте устаревших SHA1 и DH Group 2, если это возможно.
  • Аутентификация — для корпоративных сетей предпочтительнее сертификаты (PKI) вместо PSK, так как они обеспечивают более высокий уровень доверия и позволяют отзывать отдельные сертификаты.
  • Ограничьте доступ — настройте межсетевой экран так, чтобы VPN-клиенты имели доступ только к необходимым ресурсам. Используйте сегментацию сети.
  • Мониторинг — регулярно проверяйте логи VPN-соединений на предмет подозрительной активности.
  • Производительность — для больших объёмов трафика используйте аппаратное ускорение шифрования, если оно поддерживается устройством. На MikroTik можно включить IPsec Hardware Acceleration на подходящих моделях.
  • Резервирование — настройте несколько VPN-серверов или используйте протоколы с поддержкой мобильности (MOBIKE) для автоматического переключения при сбоях.

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

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

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

IKEv2 — это современный протокол обмена ключами, который быстрее устанавливает соединение, лучше работает на мобильных устройствах и поддерживает автоматическое переподключение при смене сети. L2TP/IPsec — это комбинация туннельного протокола L2TP и IPsec для шифрования. Он более совместим со старыми устройствами, но из-за двойной инкапсуляции может быть медленнее. Для новых проектов рекомендуется IKEv2, если все клиенты его поддерживают.

Можно ли настроить VPN-клиент на MikroTik через командную строку?

Да, все настройки можно выполнить через терминал RouterOS. Например, для L2TP/IPsec: /interface l2tp-client add name=l2tp-vpn connect-to=server user=login password=pass use-ipsec=yes ipsec-secret=psk Для IKEv2 потребуется больше команд, но это также возможно. Командная строка удобна для автоматизации и скриптов.

Что делать, если VPN-сервер требует другие параметры шифрования?

Необходимо изменить настройки IPsec на клиенте, чтобы они совпадали с сервером. На MikroTik это делается в IP → IPsec → Proposals, где можно выбрать или создать новый профиль с нужными алгоритмами. На других клиентах (Windows, Linux) параметры обычно задаются в настройках VPN-подключения или в конфигурационных файлах.

Как настроить VPN-клиент на MikroTik для доступа только к определённым ресурсам?

Вместо маршрута по умолчанию (0.0.0.0/0) добавьте статические маршруты для нужных подсетей, указав Gateway = L2TP-интерфейс. Например, если нужно получить доступ к сети 10.10.0.0/24, добавьте маршрут с Dst. Address = 10.10.0.0/24 и Gateway = L2TP-VPN. Это позволит направлять через VPN только трафик к этим ресурсам, остальной трафик пойдёт через обычный шлюз.

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

Чаще всего проблема в маршрутизации или NAT. Проверьте, что маршрут по умолчанию указывает на VPN-интерфейс, а не на шлюз провайдера. Также убедитесь, что на VPN-сервере настроено правило NAT (masquerade) для трафика из VPN-подсети. Если используется split-tunnel, доступ в интернет может идти через локальный шлюз — это нормально.

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

Для IPsec VPN необходимо открыть порты: UDP 500 (IKE), UDP 4500 (IPsec NAT-T), а для L2TP также UDP 1701. На межсетевом экране сервера эти порты должны быть доступны из внешней сети. Также может потребоваться разрешить протоколы ESP (IP protocol 50) и AH (51), если они используются.