...
- Включить поддержку токенов в 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 <токен_и_закрытый_ключ> %prompt
- <токен_и_закрытый_ключ> – задаётся по формату: %smartcard[<номер_слота_с_токеном>[@<название_модуля>]]:<идентификатор_ключевой_пары>
где
- <название_модуля> – название модуля в файле/etc/strongswan.d/charon/pkcs11.conf, в котором указана интерфейсная библиотека для работы с токеном;
- <идентификатор_ключевой_пары> – идентификатор, с которым закрытый ключ записан на токен.
Например:%smartcard0@rutoken:45
- <pin-код> – пользовательский pin-код токена для доступа к объектам на токене;
-%prompt– если указать эту опцию, то strongSwan запросит ввести pin-код в командной строке (порядок ввода pin-кода описан ниже).
Это более безопасный вариант, при котором в файле/etc/ipsec.secretsне хранится pin-код токена.
Пример файла/etc/ipsec.secretsдля вышеприведённого Рутокена с указанием pin-кода:
Пример файлаБлок кода : PIN %smartcard0@rutoken:45 12345678
/etc/ipsec.secretsдля вышеприведённого Рутокена, при котором процесс strongSwan запросит ввести pin-код:Блок кода : PIN %smartcard0@rutoken:45 %prompt
- Перезапустить strongSwan для применения настроек:
Command sudo ipsec restart
- Если в файле
/etc/ipsec.secretsуказана опция%prompt, то после каждого запуска (перезапуска) strongSwan необходимо вручную вводить pin-код токена.
Для этого выполнить команду:
Появится приглашение для ввода pin-кода:Command sudo ipsec rereadsecrets
Ввести пользовательский pin-код токена, нажать ENTER.Блок кода Login to '%smartcard0@rutoken:45' required PIN:
Выполнить команду, чтобы strongSwan перезагрузил настройки и заново установил соединение VPN-сервером:Command sudo ipsec reload
...