Хорошо, я тогда начну выкладывать кусками здесь, но тут явно потребуется пересылать куски кода.
Начну с общего принципа, как это все заводится.
Моя текущая платформа - Ubuntu 20.04
Нужен именно ключ rutoken ЕЦП
1) =============================
Сначала ставим библиотеки и убеждаемся, что мы видим ключ
sudo apt-get install build-essential automake cmake libtool libltdl-dev libssl-dev libcrypto++-dev pkg-config libpcsclite-dev debhelper qt5-qmake qt5-default
lsusb
Должен появиться rutoken
Драйвера качаются с
https://www.rutoken.ru/support/download … b-x64.html
sudo dpkg -i ./librtpkcs11ecp_1.9.6.0-1_amd64.deb
Перезагрузка
Ставим утилиты, работающие со смарт-картами
apt-get install pcscd pcsc-tools opensc
Должны увидеть токен
pcsc_scan
https://www.rutoken.ru/manual/Rutoken_ECP_Linux.pdf
2) ==================================
Устанавливаем l2tp-ipsec-vpn (файлы будут в архиве). Пришлось серьезно допиливать в связи с апгрейдом openssl, qt4->5, переходом на pkexec. Это гуишная утилита, которая сидит в трее и позволяет интерактивно настраивать соединения и запускать их
Из пакетов понадобится
sudo apt-get install strongswan xl2tpd libctemplate3 libctemplate-dev libpam0g-dev libpcap0.8-dev
(и здесь будет сборка, должна проходить без проблем)
Также дадим файл, его нужно положить в
/usr/share/polkit-1/actions/org.freedesktop.policykit.L2tpIPsecVpn.policy
Он позволяет вызывать pkexec для повышения прав из гиушки
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policyconfig PUBLIC
"-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
"http://www.freedesktop.org/standards/Po … config.dtd">
<policyconfig>
<action id="org.freedesktop.policykit.L2tpIPsecVpn.gedit">
<description>Run L2tpIPsecVpn program</description>
<message>Authentication is required to run the L2tpIPsecVpn</message>
<icon_name>L2tpIPsecVpn</icon_name>
<defaults>
<allow_any>auth_admin</allow_any>
<allow_inactive>auth_admin</allow_inactive>
<allow_active>auth_admin</allow_active>
</defaults>
<annotate key="org.freedesktop.policykit.exec.path">/usr/bin/L2tpIPsecVpn</annotate>
<annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
</action>
</policyconfig>
3) ==================================
l2tp-ipsec-vpn-daemon
Отвечает за перезапуск strongswan/xl2tpd и обновление их конфигурации
(и здесь будет сборка, должна проходить без проблем)
4) ===================================
libpksc11
Возможно, можно поставить из репо, но у меня тоже своя оказалась
Отвечает за работу со смарт-картами по стандарту pksc11, ставится без проблем
5) =====================================
Все должно было работать.... но у нас вышла проблема с криптографией. В Ubuntu 20.04 подняли дефолтный уровень криптографии до 2
https://www.openssl.org/docs/manmaster/ … level.html
Через параметры снизить его для ppp не удалось, поэтому поставил свой ppp, вставив строчку
--------------------------------------------------------------------------------------------------
Как все работает. Через гуишку настраивается соединение, могу приложить скриншоты. Использует сертификат, записанный на ключ для установки vpn-соединение. По нажатия запрашивает пин-код с токена, дергает ppp, который и устанавливает соединение, считывая сертификат с токена.
(альтернативное соединение с нами через Windows настраивается вот по такой инструкции http://vpn.srcc.msu.ru/)