swanctl: Настройка подключения с аутентификацией по EAP-MSCHAPV2
В этой статье рассматривается подготовка конфигурационного файла swanctl для strongSwan.
Предполагается, что CA, серверные и клиентские сертификаты уже созданы и были подробно разобраны в предыдущей статье — здесь мы к этому возвращаться не будем.
Где находятся конфигурации strongSwan и swanctl
В современных версиях strongSwan используются два разных подхода к конфигурации:
strongSwan (демон charon)
Основной конфигурационный файл: /etc/strongswan.conf
Используется для:
- глобальных параметров демона
- включения и настройки плагинов
- логирования
swanctl (современный интерфейс управления)
Основной конфигурационный файл: /etc/swanctl/swanctl.conf
Дополнительные каталоги:
/etc/swanctl/x509ca/ # CA сертификаты
/etc/swanctl/x509/ # сертификаты серверов/клиентов
/etc/swanctl/private/ # приватные ключи
/etc/swanctl/crls/ # CRL (если используется проверка отзывов)
Используется для:
- описания VPN-подключений
- пулов адресов
- учетных данных (EAP)
- политик и CHILD_SA
⚠️ ipsec.conf и ipsec.secrets в этом подходе не используются.
Пример конфигурации: IKEv2 + EAP-MSCHAPv2
Ниже приведён пример swanctl.conf, который:
- создает IKEv2-подключение
- аутентифицирует пользователя по EAP-MSCHAPv2
- аутентифицирует сервер по сертификату (server-cert.pem)
- раздает клиентам адреса из пула
- подходит для Windows, macOS, iOS, Android
Пример /etc/swanctl/swanctl.conf
connections {
ikev2-eap {
version = 2
rekey_time = 0
mobike = yes
send_cert = ifasked
unique = never
proposals = aes256-sha256-modp2048,aes256-sha1-modp2048,aes256-sha256-modp1024,aes256-sha1-modp1024
local {
auth = pubkey
certs = server-cert.pem
id = vpn.example.com
}
remote {
auth = eap-mschapv2
eap_id = %any
}
children {
ikev2-eap {
local_ts = 0.0.0.0/0, ::/0
esp_proposals = aes256-sha256,aes256-sha1
rekey_time = 0
dpd_action = trap
}
}
pools = ipv4-pool, ipv6-pool
}
}
pools {
ipv4-pool {
addrs = 172.42.2.0/24
dns = 8.8.8.8,8.8.4.4
}
ipv6-pool {
addrs = fe80::/112
}
}
secrets {
eap-user {
id = user1
secret = StrongPa$sw0rd
}
}
Назначение основных секций конфигурации
connections
Описывает IKE-подключения:
- параметры IKEv2
- методы аутентификации
- сертификаты
- наборы шифров
- дочерние SA (CHILD_SA)
Каждый блок внутри connections — это логическое VPN-подключение.
local
Описывает сторону сервера:
auth = pubkey— аутентификация по сертификатуcerts— сертификат сервераid— IKE identity сервера (обычно FQDN)
remote
Описывает клиентскую сторону:
auth = eap-mschapv2— пользовательская аутентификацияeap_id = %any— разрешает любое имя пользователя
children
Описывает CHILD_SA (туннели передачи трафика):
local_ts/remote_ts— какие сети маршрутизируютсяesp_proposals— алгоритмы ESP
pools
Используется для выдачи IP-адресов клиентам:
- IPv4 / IPv6 диапазоны
- DNS-серверы
- другие параметры сети
secrets
Хранит учетные данные EAP:
- логин (id)
- пароль (secret)
Используется только для входа по паролю, не для сертификатов.
Итог
Конфигурация swanctl.conf позволяет полностью описать VPN-подключение без использования устаревшего ipsec.conf.
Оставить комментарий могут только зарегистрированные пользователи.
Войдите на сайт или зарегистрируйтесь, чтобы оставить комментарий.