Перейти к содержанию

Системная служба strongSwan, charon и VICI

1. Управление службой

systemctl enable --now strongswan.service
systemctl status strongswan.service --no-pager
systemctl cat strongswan.service
pgrep -a charon

На испытанной системе запускается единственный /usr/libexec/strongswan/charon. Не запускайте отдельно charon из текущего каталога или другого комплекта strongSwan: процессы будут конкурировать за UDP 500/4500 и VICI.

2. Основные файлы и плагины

sed -n '1,180p' /etc/strongswan.conf
sed -n '1,140p' /etc/swanctl/swanctl.conf
journalctl -u strongswan.service -b --no-pager | grep 'loaded plugins:' | tail -n 1

Для уже установленного RPM, где плагины загрузились и swanctl --list-algs показывает ГОСТ, не нужно переписывать /etc/strongswan.conf. В проверенной конфигурации charon загружал random nonce x509 revocation curl pubkey pkcs1 pem openssl pkcs8 hmac kdf niceos-gost kernel-libipsec kernel-netlink socket-default vici. Для пользовательского ESP-пути kernel-libipsec.raw_esp = no и encap = yes создают ESP-in-UDP. Это профиль испытанной поставки, а не обязательный универсальный конфиг всех выпусков.

При адаптации сервера всегда сначала сохраняйте оригинал:

cp -a /etc/strongswan.conf "/etc/strongswan.conf.backup.$(date +%Y%m%d-%H%M%S)"

3. VICI

charon создаёт Unix-сокет /run/strongswan/charon.vici, через который swanctl загружает ключи, профили, CRL и управляет SA:

ss -xlpn | grep charon.vici
swanctl --list-conns
swanctl --list-sas
swanctl --stats

Если swanctl сообщает connecting to 'unix:///run/strongswan/charon.vici' failed, сначала проверьте systemd, socket и права. Внешний web/API интерфейс не включён в этот RPM; Python-пакет vici не требуется для CLI и в испытанном образе не установлен.

4. Как организованы конфигурации

Убедитесь, что /etc/swanctl/swanctl.conf включает conf.d/*.conf:

grep -n 'include conf.d/\*\.conf' /etc/swanctl/swanctl.conf

После этого размещайте каждый самостоятельный профиль отдельным файлом в /etc/swanctl/conf.d/. Не дописывайте вручную бесконтрольное количество блоков в корневой файл. В конфигурации swanctl общие секции connections, secrets, authorities могут находиться в разных подключаемых файлах.

5. Применение настроек

swanctl --load-conns              # добавить/обновить профили
swanctl --load-authorities        # сведения об УЦ и CRL URI
swanctl --load-creds              # ключи, сертификаты, CRL и секреты
swanctl --load-creds --clear      # удалить старые credentials и загрузить заново
swanctl --list-conns
swanctl --list-authorities

--load-creds --clear используйте осознанно: затрагивает все загруженные credentials демона и требует операционного окна. Новый сертификат/CRL не означает автоматическую повторную проверку уже установленной IKE SA. Для полного нового IKE_AUTH выполняется --terminate --ike и новая инициaция.

6. Диагностика в реальном времени

journalctl -fu strongswan.service

Не включайте подробные дампы ключевого материала или логирование секретов на производственной системе.