...
- Установить пакеты с strongSwan:
Command sudo apt install strongswan libstrongswan-extra-plugins
- Если УЦ был создан на сервере с помощью команд из раздела "Создание удостоверяющего центра и сертификатов", то сертификаты уже расположены в нужном месте, и этот пункт не надо выполнять.
Скопировать из УЦ на серверный узел:
- ca.cert.pem (сертификат УЦ) в каталог /etc/ipsec.d/cacerts/;
-server.cert.pem(сертификат сервера) в каталог/etc/ipsec.d/certs/;
-server.key.pem(закрытый ключ сервера) в каталог/etc/ipsec.d/private/. - Настроить strongSwan-сервер на использование закрытого ключа сервера.
Для этого в файле/etc/ipsec.secretsуказать строку с путём до закрытого ключа сервера:Блок кода : RSA "/etc/ipsec.d/private/server.key.pem"
- Задать настройки strongSwan-сервера в файле
/etc/ipsec.conf:
гдеБлок кода config setup #charondebug="all" charondebug= ike 4, cfg 2 ## uniqueids=no conn server type=tunnel auto=add keyexchange=ikev2 ike=aes256-sha1-modp1024! esp=aes256-sha1! # left=${MY_HOST_IP} left=%any leftid=${MY_HOST_IP} leftcert=server.cert.pem # # # leftsubnet=10.1.1.0/24 leftauth=pubkey # leftsendcert=always rightsourceip=10.1.1.0/24 rightauth=pubkey right=%any rightid=%any # rightdns=8.8.8.8,8.8.4.4 # rightsendcert=always keyingtries=%forever ikelifetime=28800s lifetime=3600s # dpddelay=30s dpdtimeout=120s # dpdaction=restart forceencaps=yes dpdaction=clear dpddelay=300s rekey=no eap_identity=%identity
- <IP-адрес_сервера> – IP-адрес серверного узла;
- <Подсеть_виртуальных_IP-адресов_для_клиентов> – . Например, 10.1.1.0/24 - Перезапустить strongSwan -сервер для применения настроек:
Command sudo ipsec systemctl restart strongswan-starter
Настройка VPN-клиента
Настройка strongSwan-клиента
...
- Подключить ключевой носитель к клиентскому узлу.
- Записать на ключевой носитель сертификат и закрытый ключ клиента:
гдеCommand p11tool --login --write --load-certificate="<путь_к_клиентскому_сертификату>" --id=<идентификатор_объекта> --label="<название_объекта>"
p11tool --login --write --load-privkey="<путь_к_клиентскому_закрытому_ключу>" --id=<идентификатор_объекта> --label="<название_объекта>"
- <идентификатор_объекта> – идентификатор, с которым сертификат и ключ будут храниться на токене;
- <название_объекта> – название, с которым сертификат и ключ будут храниться на токене.
Пример команд:Command p11tool --login --write --load-certificate="client.cert.pem" --id=45 --label="mykey"
p11tool --login --write --load-privkey="client.key.pem" --id=45 --label="mykey"
- Включить поддержку токенов в strongSwan.
Для этого в файле/etc/strongswan.d/charon/pkcs11.confв секцииmodulesуказать произвольное название модуля и путь до интерфейсной библиотеки используемого токена:
Например, для Рутокена файлБлок кода pkcs11 { # Whether to load the plugin. Can also be an integer to increase the # priority of this plugin. load = yes ... # List of available PKCS#11 modules. modules { <название_модуля> { path = <путь_к_интерфейсной_библиотеке_токена> } } }/etc/strongswan.d/charon/pkcs11.confможет выглядеть так:Блок кода pkcs11 { load = yes modules { rutoken { path = /usr/lib/librtpkcs11ecp.so } } } - Настроить strongSwan на использование закрытого ключа клиента, который находится на токене.
Для этого в файле/etc/ipsec.secretsуказать строку с описанием токена и закрытого ключа:
гдеБлок кода : PIN <токен_и_закрытый_ключ> <pin-код_токена>
- <токен_и_закрытый_ключ> – задаётся по формату: %smartcard[<номер_слота_с_токеном>[@<название_модуля>]]:<идентификатор_объекта>
- <название_модуля> – вышезаданное в настройках название модуля;
- <идентификатор_объекта> – идентификатор закрытого ключа, хранящегося на токене.
Пример описания для вышеприведённого Рутокена:Блок кода : PIN %smartcard0@rutoken:45 12345678
- Перезапустить strongSwan для применения настроек:
Command sudo ipsec systemctl restart strongswan-starter