Переход strongSwan от ipsec.conf к swanctl

IKEv2 StrongSwan IPsec swanctl ipsec.conf

Что такое strongSwan

strongSwan — это популярная open-source реализация VPN на базе протоколов IPsec / IKEv1 / IKEv2, широко используемая для site-to-site и remote-access VPN.

Проект активно развивается, поддерживает современные криптографические алгоритмы, EAP-аутентификацию, сертификаты, MOBIKE, IKEv2 и хорошо подходит как для серверных, так и для клиентских сценариев.


Два варианта конфигурации strongSwan

В strongSwan исторически существует два подхода к установке и конфигурации.

1. Классический (legacy, ipsec.conf)

  • Конфигурация через:
    • ipsec.conf
    • ipsec.secrets
  • Управление через команду ipsec
  • Использует демон starter
  • Подход считается устаревшим, но всё ещё поддерживается для обратной совместимости

2. Современный (swanctl)

  • Конфигурация через swanctl.conf
  • Управление соединениями через утилиту swanctl
  • Напрямую работает с демоном charon
  • Рекомендуемый вариант от разработчиков strongSwan

Преимущества использования swanctl

Переход на swanctl даёт ряд существенных преимуществ:

  • Современная архитектура
    swanctl взаимодействует напрямую с charon, без промежуточного слоя starter.

  • Динамическая загрузка конфигураций
    Соединения, сертификаты, ключи и CRL можно загружать и обновлять без перезапуска сервиса.

  • Чёткая иерархия конфигурации
    swanctl.conf имеет логичную структуру:

    • connections
    • secrets
    • authorities
    • pools
  • Будущее strongSwan
    Новый функционал и улучшения в первую очередь появляются именно в swanctl, а не в legacy-конфигурации ipsec.conf.


Установка strongSwan с swanctl на Ubuntu 24.04

В Ubuntu 24.04 все необходимые пакеты доступны в официальных репозиториях.

Минимальная установка

sudo apt update
sudo apt install -y strongswan-swanctl strongswan-pki charon-systemd

Полезные дополнительные пакеты

sudo apt install -y libstrongswan-standard-plugins libstrongswan-extra-plugins

Проверка сервиса

После установки основной сервис — charon-systemd — запускается автоматически через systemd:

systemctl status strongswan

Утилита управления:

swanctl --version

Важное замечание

При использовании swanctl файлы:

  • ipsec.conf
  • ipsec.secrets

не используются и могут быть пустыми или отсутствовать вовсе.

Кроме того, swanctl и ipsec вместе работать не могут. Надо выбрать что-то одно, и лучше чтобы это был swanctl.

Что дальше?

  1. Вспомнить как настроить легаси вариант.
  2. Структура /etc/swanctl и настройка CA, сертификатов и CRL в strongSwan
  3. Настройка подключения с аутентификацией по EAP-MSCHAPV2
  4. Настройка подключения с аутентификацией по EAP-TLS
  5. Настройка подключения с аутентификацией по как по EAP-TLS, так и EAP-MSCHAPV2.