View on GitHub

vpn_ikev2

Организация VPN на базе IKEv2

Ручная сборка strongSwan

Здесь описывается ручная установка и сборка strongSwan под Debian 11 на собственном опыте. Установка производилась на чистый сервер, обновленный до последних компонентов.

Ручная сборка понадобилась исключительно с целью установки плагина coupling, предназначенного для ограничения набора сертификатов, которые могут быть авторизованы на соединение с VPN. К сожалению, это можно сделать только ручной пересборкой strongSwan. Подробнее о плагине.

1. Загрузка и установка strongSwan

Скачиваем с сайта последнюю стабильную версию strongSwan. На момент написания статьи это 5.9.5.

wget https://download.strongswan.org/strongswan-5.9.5.tar.bz2

Распаковываем tar’ом, переходим внуть созданного каталога:

tar xjf strongswan-5.9.5.tar.bz2
cd strongswan-5.9.5

Для того чтобы была возможность использования более широкого круга криптоалгоритмов, в частности, блока ECP256 (эллиптические кривые для установления соединения с устройствами Apple), понадобится плагин OpenSSL для strongSwan, а ему, в свою очередь, библиотеки libcrypto и libgmp. Добавляем их:

apt install libssl-dev libgmp-dev

Пришло время сконфигурировать будущую сборку. С помощью ключей --enable и --disable настраивается набор плагинов. Подробнее о настройке и о плагинах.

Обратите внимание, что добавляется coupling, ради которого все и затевалось, и openssl. Конфигурируем, запуская соответствующий скрипт:

./configure --prefix=/usr --sysconfdir=/etc --enable-coupling  --disable-vici \
    --disable-des --enable-aesni --disable-cmac --disable-curve25519 --enable-gcm \
    --enable-openssl

После успешной конфигурации собираем и устанавливаем:

make
make install

2. Настройка “coupling”

Плагин, как было сказано, предназначен для ограничения списка сертификатов, которым доступ на сервер открыт. Список будет храниться в отдельном файле и может содержать некоторое максимальное количество записей, задаваемое в настройках. Если список еще не заполнен до максимума, будет разрешен доступ всем клиентам с подтвержденными (подписанными) сертификатами. При этом, все новые сертификаты будут в список добавляться до достижения максимума, после чего всем новым клиентам, не нажодящимся в списке (даже с подписанными сертификатами) доступ на сервер будет закрыт.

Максимальное количество записей в файле и местоположение файла со списком необходимо указать в настройках плагина в файле /etc/strongswan.d/charon/coupling.conf. Например, можно настроить так:

file = /etc/ipsec.d/coupled.certs
max = 4

3. Проверка запуска strongSwan

Разрешаем сервис, обеспечивающий запуск strongSwan’а:

systemctl ebable strongswan-starter

Перезапускаем сервер командой reboot и проверяем результат командой:

ipsec statusall

На этом установка strongswan’а завершена, можно переходить к следующей фазе.