В этой статье рассматривается подготовка конфигурационного файла swanctl для strongSwan.
Предполагается, что CA, серверные и клиентские сертификаты уже созданы и были подробно разобраны в предыдущей статье — здесь мы к этому возвращаться не будем.
В современных версиях strongSwan используются два разных подхода к конфигурации:
charon)Основной конфигурационный файл: /etc/strongswan.conf
Используется для:
Основной конфигурационный файл: /etc/swanctl/swanctl.conf
Дополнительные каталоги:
/etc/swanctl/x509ca/ # CA сертификаты
/etc/swanctl/x509/ # сертификаты серверов/клиентов
/etc/swanctl/private/ # приватные ключи
/etc/swanctl/crls/ # CRL (если используется проверка отзывов)
Используется для:
⚠️ ipsec.conf и ipsec.secrets в этом подходе не используются.
Ниже приведён пример swanctl.conf, который:
/etc/swanctl/swanctl.confconnections {
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-подключения:
Каждый блок внутри 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 — алгоритмы ESPpools
Используется для выдачи IP-адресов клиентам:
secrets
Хранит учетные данные EAP:
Используется только для EAP, не для сертификатов.
Конфигурация swanctl.conf позволяет полностью описать VPN-подключение без использования устаревшего ipsec.conf.