| Секция | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Введение
strongSwan StrongSwan – это программное обеспечение для создания VPN-соединений на основе IPsec-протокола. Домашняя страница ПО: https://strongswan.org/.
Используется двухфакторная аутентификации пользователя:
- первый фактор –
пара: открытый ключ (сертификат) изакрытый ключ; - второй фактор – токен, принадлежащий пользователю.
Сертификат изакрытый ключ пользователя хранятся на токене.
При установке VPN-соединения производится аутентификация как strongSwan-сервера, так и strongSwan-клиента. Данные между сервером и клиентом передаются в зашифрованном виде.
В статье описана настройка аутентификации сервера и клиента с помощью закрытых ключей. Для клиента дополнительно используется второй фактор аутентификации в виде ключевого носителя (токена)Общая статья по работе с токенами: Ключевые носители (токены) PKCS в Astra Linux.
Настройка сети
На серверном и клиентском узлах:
- Разрешить пересылку сетевых пакетов:
Command cat << EOF | sudo tee /etc/sysctl.d/10-net-forward.conf >/dev/null
net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
net.ipv6.conf.all.send_redirects = 0
EOF
sudo sysctl --system
| Якорь | ||||
|---|---|---|---|---|
|
Создание удостоверяющего центра и
...
выпуск сертификата сервера
Все сертификаты создаются и хранятся в удостоверяющем центре (УЦ), в качестве которого может использоваться любой компьютер.
Первым Вначале создаётся самоподписанный корневой сертификат УЦ. Затем с помощью сертификата УЦ создаются сертификаты для сервера и клиента. Созданные сертификаты и ключи копируются в определённые каталоги на сервере и клиенте.
...
- Установить программы для работы с сертификатами:
Для Astra Linux SE 1.8 дополнительно установить:Command sudo apt install strongswan strongswan-pki
Command sudo apt install libtss2-tcti-tabrmd0
- Создать для удостоверяющего центра закрытый ключ
ca.key.pemи самоподписанный сертификатca.cert.pem:Command pki --gen --size 4096 --type rsa --outform pem \
| sudo tee /etc/ipsec.d/private/ca.key.pemsudo pki --self --ca --in /etc/ipsec.d/private/ca.key.pem --type rsa --dn "CN=CA" --lifetime 3650 --outform pem \
| sudo tee /etc/ipsec.d/cacerts/ca.cert.pem - Создать для сервера закрытый ключ
server.key.pemи сертификатserver.cert.pem:
где <IP-адрес_сервера> – IP-адрес сервера.Command pki --gen --size 4096 --type rsa --outform pem \
| sudo tee /etc/ipsec.d/private/server.key.pemsudo pki --pub --in /etc/ipsec.d/private/server.key.pem --type rsa \
| sudo pki --issue --lifetime 3650 --cacert /etc/ipsec.d/cacerts/ca.cert.pem --cakey /etc/ipsec.d/private/ca.key.pem \
--dn "CN=<IP-адрес_сервера>" --san "<IP-адрес_сервера>" --flag serverAuth --flag ikeIntermediate --outform pem \
| sudo tee /etc/ipsec.d/certs/server.cert.pem
Создать для клиента закрытый ключclient.key.pemи сертификатclient.cert.pem
Настройка VPN-сервера
На серверном узле:
- Установить пакеты с strongSwan:
Для Astra Linux SE 1.8 дополнительно установить:Command pki sudo apt install strongswan libstrongswan--gen --size 4096 --type rsa --outform pem \
| sudo tee /etc/ipsec.d/private/client.key.pemsudo pki --pub --in extra-pluginsCommand sudo apt install libtss2-tcti-tabrmd0
- Если УЦ был создан на сервере с помощью команд из раздела "Создание удостоверяющего центра и сертификатов", то сертификаты уже расположены в нужном месте, а этот пункт пропускается.
Скопировать из УЦ на серверный узел:
- ca.cert.pem (сертификат УЦ) в каталог /etc/ipsec.d/private/client.key.pem --type rsa \
| sudo pki --issue --lifetime 3650 --cacert cacerts/;
-server.cert.pem(сертификат сервера) в каталог/etc/ipsec.d/cacerts/ca.cert.pem --cakeycerts/;
-server.key.pem(закрытый ключ сервера) в каталог/etc/ipsec.d/private/ca.key.pem \
--dn "CN=<IP-адрес_клиента>" --san "<IP-адрес_клиента>" --flag clientAuth --flag ikeIntermediate --outform pem \
| sudo tee /etc/ipsec.d/certs/client.cert.pemгде <IP-адрес_клиента> – IP-адрес клиента.
Настройка VPN-сервера
На серверном узле:
- Указать закрытый ключ strongSwan-сервера в файле
/etc/ipsec.secretsв виде строки:Блок кода : RSA server.key.pem - Задать настройки strongSwan в файле
/etc/ipsec.conf:Блок кода config setup charondebug= ike 4, cfg 2 conn server type=tunnel auto=add - Установить пакеты с 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= ike 4, cfg 2 conn server typekeyexchange=tunnelikev2 autokeyingtries=add%forever keyexchange=ikev2ike=aes256-sha1-modp1024! keyingtries=%forever ike=aes256-sha1-modp1024! esp=aes256-sha1! dpdaction=hold dpddelay=300s forceencaps=yes leftid=${MY_HOST_IP}<IP-адрес_сервера> # IP-адрес сервера leftauth=pubkey leftcert=server.cert.pem # сертификат сервера leftsendcert=always leftsubnet=10.1.1.0/24 # Например: 10.192.6.108 leftauth=pubkey # виртальная сеть, досупная на сервере leftcert=server.cert.pem rightauth=pubkey rightid=%any rightsourceip=10.1.1.0/24 # подсеть виртуальных адресов, из которой будет выдан адрес клиенту # Сертификат rightdns=сервера leftsendcert=always leftsubnet=<виртуальная_сеть__предоставляемая_сервером> # Например: 10.1.1.250 0/24 rightauth=pubkey #rightid=%any адрес DNS-сервера, передаваемый клиенту
- <IP-адрес_сервера> – IP-адрес серверного узла;
- <Подсеть_виртуальных_IP-адресов_для_клиентов> – . Например,rightsourceip=<диапазон_виртуальных_адресов_для_выдачи_клиентам> # Например: 10.1.1.0/24
- Перезапустить strongSwan для применения настроек:
Command sudo ipsec restart
rightdns=<IP-адреса_DNS-серверов__передаваемые_клиентам> # Например: 10.1.1.250,10.1.1.240- Перезапустить strongSwan для применения настроек:
Command sudo ipsec restart
Настройка VPN-Настройка VPN-клиента
Настройка strongSwan
...
На клиентском узле:
- Установить пакеты с strongSwan:
Для Astra Linux SE 1.8 дополнительно установить:Command sudo apt install strongswan libstrongswan-extra-plugins
Command sudo apt install libtss2-tcti-tabrmd0
- Скопировать из УЦ на клиентский узел:
Скопировать из УЦ на клиентский узел:
-ca.cert.pem(сертификат УЦ) в каталог/etc/ipsec.d/cacerts/;
-client.cert.pem(сертификат пользователя) и client.key.pem (закрытый ключ пользователя) в домашний каталог пользователя. - Задать настройки strongSwan -клиента в файле
/etc/ipsec.conf:
гдеБлок кода config setup charondebug= ike 4, cfg 2 conn client type=tunnel auto=start keyexchange=ikev2 keyingtries=%forever ike=aes256-sha1-modp1024! esp=aes256-sha1! dpdaction=restart leftauthforceencaps=pubkeyyes leftcert=%smartcard0@rutoken:45leftauth=pubkey # сертификат клиента находится на токене leftcert=<токен_и_закрытый_ключ> leftsendcert=always leftsourceip=%config right=${PEER_HOST_IP} # Например: # IP-адрес сервера rightid=${PEER_HOST_IP} # IP-адрес сервера rightauth=pubkey rightsubnet=10.1.1.0/24 %smartcard0@rutoken:45 или %smartcard:45 # Формат значения <токен_и_закрытый_ключ> описан ниже в разделе "Настройка ... токена ...". leftsendcert=always # виртуальная сеть, предоставляемая сервером
- <IP-адрес_сервера> – IP-адрес серверного узла.
Настройка использования ключевого носителя (токена) в качестве второго фактора аутентификации
Предполагается, что на клиентском узле настроен единый доступ к ключевым носителям разных производителей (см. статью).
Общая информация по работе с ключевыми носителями дана в статье "Ключевые носители (токены) PKCS в Astra Linux".
- Подключить ключевой носитель к клиентскому узлу.
- Записать на ключевой носитель сертификат и закрытый ключ клиента:
гдеCommand p11tool --login --write --load-certificate="<путь_к_клиентскому_сертификату>" --id=<идентификатор_объекта> --label="<название_объекта>"
p11tool --login --write --load-privkey="<путь_к_клиентскому_закрытому_ключу>" --id=<идентификатор_объекта> --label="<название_объекта>"
- <идентификатор_объекта> – идентификатор, с которым сертификат и ключ будут храниться на токене;
- <название_объекта> – название, с которым сертификат и ключ будут храниться на токене.
Пример команд:
Включить поддержку токенов в strongSwan.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"
Для этого в файле/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 { leftsourceip=%config right=<IP-адрес_сервера> # Например: 10.192.6.108 rightid=<IP-адрес_сервера> # Например: 10.192.6.108 rightauth=pubkey rightsubnet=<виртуальная_сеть__предоставляемая_сервером> # Например: 10.1.1.0/24 <название_модуля> { path = <путь_к_интерфейсной_библиотеке_токена> } } }
/etc/strongswan.d/charon/pkcs11.confможет выглядеть так:
Настроить strongSwan на использование закрытого ключа клиента, который находится на токене.Блок кода pkcs11 { load = yes modules { rutoken { # Если указать 0.0.0.0/0, то весь сетевой траффик клиента path = /usr/lib/librtpkcs11ecp.so } } }
Для этого в файле/etc/ipsec.secretsуказать строку с описанием токена и закрытого ключа:
гдеБлок кода : PIN <токен_и_закрытый_ключ> <pin-код_токена>
- <токен_и_закрытый_ключ> – задаётся по формату: %smartcard[<номер_слота_с_токеном>[@<название_модуля>]]:<идентификатор_объекта>
- <название_модуля> – вышезаданное в настройках название модуля;
- <идентификатор_объекта> – идентификатор закрытого ключа, хранящегося на токене.
Пример описания для вышеприведённого Рутокена:Блок кода : PIN %smartcard0@rutoken:45 12345678 - Перезапустить strongSwan для применения настроек:
Command sudo ipsec restart
Для просмотра состояния установленного VPN-соединения используется команда:
| Command |
|---|
sudo ipsec status |
...
| title | Пример вывода команды... |
|---|
...
# будет "заворачиваться" в VPN-соединение (туннель).
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
#
...
...
Либо для вывода более подробной информации о соединении:
| Command |
|---|
sudo ipsec statusall |
...
| title | Пример вывода команды... |
|---|
...
Тогда на сервере параметру leftsubnet тоже # необходимо задать значение 0.0.0.0/0.
Выпуск клиентского сертификата и подготовка ключевого носителя
Предполагается, что на клиентском узле настроен единый доступ к ключевым носителям разных производителей (см. статью).
Общая информация по работе с ключевыми носителями дана в статье "Ключевые носители (токены) PKCS в Astra Linux".
Использование пассивного ключевого носителя
При использовании пассивного ключевого носителя:
- средствами ОС:
- создаются закрытый ключ и сертификат клиента;
- сертификат клиента подписывается в УЦ;
- закрытый ключ и подписанный сертификат клиента записываются на токен.
На клиентском узле в домашнем каталоге пользователя:
- Создать закрытый ключ клиента
client1.key.pem:Command openssl genrsa -out client1.key.pem 4096
- Создать запрос на подписание клиентского сертификата
client1.cert.csr:
где <IP-адрес_клиента> – IP-адрес клиентского узла.Command openssl req -key client1.key.pem -new -out client1.cert.csr \
-subj "/CN=<IP-адрес_клиента>" -addext "subjectAltName=IP.1:<IP-адрес_клиента>" - Отправить файл с запросом
client1.cert.csrна узел УЦ.
На удостоверяющем центре:
- Подписать запрос
client1.cert.csrс помощью сертификата УЦ и сохранить подписанный сертификат клиентаclient1.cert.pemв каталоге/etc/ipsec.d/certs/:Command sudo pki --issue --cacert /etc/ipsec.d/cacerts/ca.cert.pem --cakey /etc/ipsec.d/private/ca.key.pem \
--in client1.cert.csr --lifetime 3650 --type pkcs10 --flag clientAuth --outform pem \
| sudo tee /etc/ipsec.d/certs/client1.cert.pem - Скопировать сертификат клиента
client1.cert.pemна клиентский узел в домашний каталог пользователя.
На клиентском узле в домашнем каталоге пользователя:
- Подключить ключевой носитель к клиентскому узлу.
- Записать на ключевой носитель сертификат и закрытый ключ клиента:
гдеCommand p11tool --login --write --load-certificate="<путь_к_клиентскому_сертификату>" --id=<идентификатор_ключевой_пары> --label="<метка_ключевой_пары>"
p11tool --login --write --load-privkey="<путь_к_клиентскому_закрытому_ключу>" --id=<идентификатор_ключевой_пары> --label="<метка_ключевой_пары>"
- <идентификатор_ключевой_пары> – идентификатор, с которым сертификат и ключ будут храниться на токене;
- <метка_ключевой_пары> – название, с которым сертификат и ключ будут храниться на токене.Предупреждение Перед записью необходимо убедиться, что на токене отсутствуют какие-либо объекты с идентификатором, с которым будут храниться сертификат и ключ.
Пример команд:Command p11tool --login --write --load-certificate="client1.cert.pem" --id=45 --label="mykey"
p11tool --login --write --load-privkey="client1.key.pem" --id=45 --label="mykey"
- Для безопасности удалить файл с закрытым ключом клиента
client1.key.pemиз домашнего каталога пользователя.
Закрытый ключ следует хранить только на ключевом носителе.
Использование активного ключевого носителя
При использовании активного ключевого носителя:
- средствами токена:
- на токене создаются неизвлекаемый закрытый и извлекаемый открытый ключи (ключевая пара); - средствами ОС:
- с помощью открытого ключа создаётся сертификат клиента;
- сертификат клиента подписывается в УЦ;
- подписанный сертификат клиента записывается на токен.
На клиентском узле в домашнем каталоге пользователя:
- Подключить ключевой носитель к клиентскому узлу.
- Создать на токене ключевую пару:
гдеCommand p11tool --login --generate-rsa --bits=<длина_ключа> --id=<идентификатор_ключевой_пары> --label="<метка_ключевой_пары>"
- <длина_ключа> – длина создаваемых ключей в битах.
Если поддерживается токеном, то задать 4096 бит. Иначе задать максимально возможную длину ключей, поддерживаемую токеном;
- <идентификатор_ключевой_пары> – с этим идентификатором ключи будут храниться на токене;
- <метка_ключевой_пары> – с этим названием ключи будут храниться на токене.Предупреждение Перед созданием необходимо убедиться, что на токене отсутствуют какие-либо объекты с идентификатором, с которым будут храниться ключи.
Пример команды:Command p11tool --login --generate-rsa --bits=4096 --id=45 --label="mykey"
- Создать запрос на подписание клиентского сертификата
client1.cert.csr:
гдеCommand openssl req -new -engine pkcs11 -keyform engine -out client1.cert.csr \
-key pkcs11:id="%<идентификатор_ключевой_пары>" \
-subj "/CN=<IP-адрес_клиента>" -addext "subjectAltName=IP.1:<IP-адрес_клиента>"
- <идентификатор_ключевой_пары> – идентификатор, указанный при создании ключевой пары;
- <IP-адрес_клиента> – IP-адрес клиентского узла. - Отправить файл с запросом
client1.cert.csrна узел УЦ.
На удостоверяющем центре:
- Подписать запрос
client1.cert.csrс помощью сертификата УЦ и сохранить подписанный сертификат клиентаclient1.cert.pemв каталоге/etc/ipsec.d/certs/:Command sudo pki --issue --cacert /etc/ipsec.d/cacerts/ca.cert.pem --cakey /etc/ipsec.d/private/ca.key.pem \
--in client1.cert.csr --lifetime 3650 --type pkcs10 --flag clientAuth --outform pem \
| sudo tee /etc/ipsec.d/certs/client1.cert.pem - Скопировать сертификат клиента
client1.cert.pemна клиентский узел в домашний каталог пользователя.
На клиентском узле в домашнем каталоге пользователя:
- Записать сертификат клиента на ключевой носитель:
гдеCommand p11tool --login --write --load-certificate="<путь_к_клиентскому_сертификату>" --id=<идентификатор_ключевой_пары> --label="<метка_ключевой_пары>"
- <идентификатор_ключевой_пары> – идентификатор, указанный при создании ключевой пары;
- <метка_ключевой_пары> – название, указанное при создании ключевой пары.
Пример команды:Command p11tool --login --write --load-certificate="client1.cert.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 { <название_модуля_1> { path = <путь_к_интерфейсной_библиотеке_токена_1> } <название_модуля_2> { path = <путь_к_интерфейсной_библиотеке_токена_2> } } }/etc/strongswan.d/charon/pkcs11.confможет выглядеть так:Блок кода pkcs11 { load = yes modules { rutoken { path = /usr/lib/librtpkcs11ecp.so } # aladdin { # path = /usr/lib/libjcPKCS11-2.so # } } } - Настроить strongSwan на использование закрытого ключа клиента, который находится на токене.
Для этого указать в файле/etc/ipsec.secretsстроку с описанием токена и закрытого ключа:
- с указанием pin-кода в файле:
- или более безопасный вариант, при котором pin-код будет вводиться пользователем в командной строке:Блок кода : PIN <токен_и_закрытый_ключ> <pin-код>
гдеБлок кода : PIN <токен_и_закрытый_ключ> %prompt
- <токен_и_закрытый_ключ> – задаётся по формату: %smartcard[<номер_слота_с_токеном>[@<название_модуля>]]:<идентификатор_ключевой_пары>
где
- <название_модуля> – название модуля в файле/etc/strongswan.d/charon/pkcs11.conf, в котором указана интерфейсная библиотека для работы с токеном;
- <идентификатор_ключевой_пары> – идентификатор, с которым закрытый ключ записан на токен.
Например:%smartcard0@rutoken:45
- <pin-код> – пользовательский pin-код токена для доступа к объектам на токене.Примечание Если к компьютеру подключается только один ключевой носитель, то достаточно использовать укороченный формат параметра <токен_и_закрытый_ключ>: %smartcard:<идентификатор_ключевой_пары>
Например:
%smartcard:45
Примеры файла/etc/ipsec.secrets:
- для Рутокена с pin-кодом, указанным в файле:
- для Рутокена с pin-кодом, вводимым пользователем:Блок кода : PIN %smartcard0@rutoken:45 12345678
- при подключении к компьютеру единственного токена, поддержка которого включена в strongSwan, и с pin-кодом, вводимым пользователем:Блок кода : PIN %smartcard0@rutoken:45 %promptБлок кода : PIN %smartcard:45 %prompt - Перезапустить strongSwan для применения настроек:
Command sudo ipsec restart
- Если в файле
/etc/ipsec.secretsуказана опция%prompt, то после каждого запуска (перезапуска) strongSwan необходимо вручную вводить pin-код токена.
Для этого выполнить команду:
Если strongSwan-сервер ещё не успел запуститься, то команда завершится без вывода какой-либо информации. Необходимо подождать 5-10 секунд и повторить команду "Command sudo ipsec rereadsecretssudo ipsec rereadsecrets".
Появится приглашение для ввода pin-кода:
Ввести пользовательский pin-код токена, нажать клавишу <ENTER>.Блок кода Login to '%smartcard0@rutoken:45' required PIN:
Выполнить команду, чтобы strongSwan перезагрузил настройки и установил соединение с VPN-сервером:Command sudo ipsec reload
Для просмотра состояния установленного VPN-соединения используется команда:
| Command |
|---|
sudo ipsec status |
| Раскрыть | ||
|---|---|---|
| ||
|
Команда для вывода более подробной информации о VPN-соединении:
| Command |
|---|
sudo ipsec statusall |
| Раскрыть | ||
|---|---|---|
| ||
|
Возможные проблемы и способы их решения
При использовании САВЗ Касперского не устанавливается соединение с VPN-сервером
На компьютере пользователя САВЗ Касперского создаёт таблицу маршрутизации, из-за которой strongSwan-клиент не может установить соединение с strongSwan-сервером.
Диагностика.
На компьютере пользователя:
- В выводе команды
ip ruleприсутствует таблица с номером 101:Блок кода 0: from all lookup local 32764: from all fwmark 0x200/0x200 lookup 101 32765: from all fwmark 0x100/0x100 lookup 101 32766: from all lookup main 32767: from all lookup default - При неуспешной попытке соединения в журнал
/var/log/syslogвыводится сообщение:Блок кода 04[NET] error writing to socket: Invalid argument
Решение.
На компьютере пользователя:
- Исключить таблицу маршрутизации 101 из используемых strongSwan-клиентом.
Для этого в файле/etc/strongswan.d/charon.confв блокеcharonприсвоить параметруignore_routing_tablesзначение101:Блок кода charon { ... # A space-separated list of routing tables to be excluded from route # lookups. # ignore_routing_tables = ignore_routing_tables = 101 ... } - Перезагрузить операционную систему.
В аплете NetworkManager не доступен ключевой носитель для VPN-соединения IPsec
Решение.
На компьютере пользователя:
- Установить strongSwan-расширение для работы с NetworkManager:
Command sudo apt install strongswan-nm
- Включить поддержку ключевого носителя для NetworkManager.
Для этого создать файл (если он не создан)/etc/strongswan.d/charon-nm.confи добавить в него блок параметров, содержащих путь до интерфейсной библиотеки используемого токена:
Например, для Рутокена ЭЦП файлБлок кода charon-nm { plugins { pkcs11 { modules { <название_модуля_1> { path = <путь_к_интерфейсной_библиотеке_токена_1> } } } } }/etc/strongswan.d/charon-nm.confможет выглядеть так:Блок кода charon-nm { plugins { pkcs11 { modules { rutoken { path = /usr/lib/librtpkcs11ecp.so } } } } } - Перезагрузить операционную систему.
- Настроить в аплете NetworkManager VPN-соединение IPsec:
- Отключить уведомления в аплете NetworkManager.
- Запустить в аплете NetworkManager настроенное VPN-соединение IPsec.
Появится уведомление об успешном соединении:
Также появится сообщение об успешном соединении в Журнале системных событий:
Не устанавливается соединение между strongSwan-сервером и strongSwan-клиентом
Возможным решением проблемы может быть двойное указание IP-адреса в сертификатах узлов в расширении subjectAltName.
Для этого для создания сертификата сервера и запроса на сертификат клиента необходимо использовать команды:
- для создания сертификата сервера
server.cert.pem:Command sudo pki --pub --in /etc/ipsec.d/private/server.key.pem --type rsa \
| sudo pki --issue --lifetime 3650 --cacert /etc/ipsec.d/cacerts/ca.cert.pem --cakey /etc/ipsec.d/private/ca.key.pem \
--dn "CN=<IP-адрес_сервера>" --san "<IP-адрес_сервера>" --san "<IP-адрес_сервера>" --flag serverAuth --outform pem \
| sudo tee /etc/ipsec.d/certs/server.cert.pem - для создания запроса на сертификат клиента
client1.cert.csr:
- при использовании пассивного ключевого носителя:
- при использовании активного ключевого носителя:Command openssl req -new -key client1.key.pem -out client1.cert.csr \
-subj "/CN=<IP-адрес_клиента>" -addext "subjectAltName=IP.1:<IP-адрес_клиента>, IP.2:<IP-адрес_клиента>"Command openssl req -new -engine pkcs11 -keyform engine -out client1.cert.csr \
-key pkcs11:id="%<идентификатор_ключевой_пары>" \
-subj "/CN=<IP-адрес_клиента>" -addext "subjectAltName=IP.1:<IP-адрес_клиента>, IP.2:<IP-адрес_клиента>"
Не доступны ресурсы локальной сети при настройке strongSwan-клиента: rightsubnet=0.0.0.0/0
Если в настройках strongSwan-клиента (раздел 5.1) параметру rightsubnet присвоено значение 0.0.0.0/0 и при этом ресурсы локальной сети стали недоступны, то, возможно, решением проблемы будет присвоение параметру rightsubnet значения 0.0.0.1/0.
...



