включая Astra Linux
0 Проверка модели устройства
- Подключите USB-токен к компьютеру.
- Для определения названия модели USB-токена откройте Терминал и введите команду:
...
В результате в окне Терминала отобразится название модели USB-токена:
Code Block | ||
---|---|---|
| ||
$ lsusb
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 005: ID 0a89:0030 Aktiv Rutoken ECP
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub |
Убедитесь, что используете: Aktiv Rutoken ECP
...
Загружаем библиотеку через браузер
https://download.rutoken.ru/Rutoken/PAM/1.0.0/x86_64/librtpam.so.1.0.0
или через Терминал
Code Block | ||
---|---|---|
| ||
$ wget --no-check-certificate https://download.rutoken.ru/Rutoken/PAM/1.0.0/x86_64/librtpam.so.1.0.0 |
Копируем в системную папку
Code Block | ||
---|---|---|
| ||
$ sudo cp libpam_p11_opensclibrtpam.so.1.0.1.80 /usr/lib/x86_64-linux-gnu/ $ sudo chmod 644 /usr/lib/x86_64-linux-gnu/libpam_p11_opensclibrtpam.so.1.0.1.80 |
3 Добавляем библиотеку librtpkcs11ecp.so
Загружаем библиотеку через браузер.
Для 64-битной системы используйте ссылку:
https://download.rutoken.ru/Rutoken/PKCS11Lib/Current/Linux/x64/librtpkcs11ecp.so
Для 32-битной системы используйте ссылку:
https://download.rutoken.ru/Rutoken/PKCS11Lib/Current/Linux/x86_64x32/librtpkcs11ecp.so
или через консольОткройте Терминал
Пуск - Утилиты - Терминал Fly
Для 64-битной системы используйте:
Code Block | ||
---|---|---|
| ||
$ wget --no-check-certificate https://download.rutoken.ru/Rutoken/PKCS11Lib/Current/Linux/x86_64/x64/librtpkcs11ecp.so |
Для 32-битной системы используйте:
Code Block | ||
---|---|---|
| ||
$ wget --no-check-certificate https://download.rutoken.ru/Rutoken/PKCS11Lib/Current/Linux/x32/librtpkcs11ecp.so |
Копируем в системную папку папку
Code Block | ||
---|---|---|
| ||
$ sudo cp librtpkcs11ecp.so /usr/lib/x86_64-linux-gnu/ $ sudo chmod 644 /usr/lib/x86_64-linux-gnu/librtpkcs11ecp.so |
...
4 Проверяем что Рутокен ЭЦП работает в системе
В Терминале
Code Block | ||
---|---|---|
| ||
$ pkcs11-tool --module /usr/lib/x86_64-linux-gnu/librtpkcs11ecp.so -T |
В случае если увидите вот такую строку, значит все хорошо.
Rutoken ECP <no label>
...
5 Считываем сертификат
Проверяем что на устройстве есть сертификат
...
Using slot 0 with a present token (0x0)
нет ничего, значит устройство пустое. Обратитесь к администратору или создайте ключи и сертификат самостоятельно следуя пункту 5.1
Если после строчки
Using slot 0 with a present token (0x0)
- выводится информация о ключах и сертификатах, то необходимо считать сертификат
...
- и сохранить на диск. Для этого выполните следующую команду, где
...
- вместо {id} нужно подставьте ID-сертификата, который вы
...
- увидели в выводе предыдущей команды:
Code Block | ||
---|---|---|
| ||
$ pkcs11-tool --module /usr/lib/x86_64-linux-gnu/librtpkcs11ecp.so -r -y cert --id {id} --output-file cert.crt |
В случае, если файл cert.crt создан переходим к пункту 6
- нет ничего, значит устройство пустое. Обратитесь к администратору или создайте ключи и сертификат самостоятельно следуя следующему шагу
5.1 Создаем самоподписанный сертификат
Info |
---|
Собирайте ветку pkcs11-tool с поддержкой ГОСТ- 2012 из нашего GitHub-а, пока не выпущен релиз OpenSC новее чем 0.19.0.Или можно собирать утилиту из ветки master OpenSC взяв коммит 8cf1e6f |
Откройте Терминал
2012, или используйте релиз OpenSC 0.20.0 или новее |
Откройте Терминал
Генерируем ключевую пару с параметрами:
генерируем ключевую пару ГОСТ-2012 512 бит (параметр --key-type
: GOSTR3410-2012-512:
A в команде ниже) или ГОСТ-2012 (256) бит: --key-type
GOSTR3410-2012-256:A.
А
(ГОСТ-2012 512 бит c парамсетом А), GOSTR3410-2012-256:A
(ГОСТ-2012 256 бит с парамсетом A)
--id
: идентификатор объекта (CKA_ID) в виде двузначных номеров символов в hex из таблицы ASCII. Используйте только ASCII-коды печатных символов, т.к. id нужно будет передать OpenSSL в виде строки. Например ASCII-кодам “3132” соответствует строка "12".
Info |
---|
Для удобства, можно воспользоваться онлайн-сервисом конвертации строки в ASCII-коды. |
Code Block | ||
---|---|---|
| ||
$ ./pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --keypairgen --key-type GOSTR3410-2012-512:A -l --id 3132 |
создаем самоподписанный сертификат. Для этого сначала надо установить и настроить для работы с Рутокен OpenSSL 1.1 или новее через специальный модуль rtengine
по инструкции: Установка и настройка OpenSSL для работы с rtengine 0.7.x
Чтобы использовать этот id
ключевой пары, созданной через pkcs11-tool, в OpenSSL – надо использовать hex-символы из таблицы ASCII, соответствующие этим кодам.
Удобно использовать
Info |
---|
Для удобства, можно воспользоваться онлайн-сервисом |
...
Например: для ‘--id 3132
’ в OpenSSL надо указывать "pkcs11:id=12
".
...
Code Block | ||
---|---|---|
| ||
mkdir ~/.eid chmod 0755 ~/.eid cat cert.pem >> ~/.eid/authorized_certificates chmod 0644 ~/.eid/authorized_certificates |
...
Code Block | ||
---|---|---|
| ||
$ sudo nano /usr/share/pam-configs/p11rtpam-gost |
записываем создайте в файл следующую информациюс содержимым
Code Block | ||
---|---|---|
| ||
Name: Pam_p11 Rutoken PAM GOST Default: yes Priority: 800 Auth-Type: Primary Auth: sufficient /usr/lib/x86_64-linux-gnu/libpam_p11_opensclibrtpam.so.1.0.1.80 /usr/lib/x86_64-linux-gnu/librtpkcs11ecp.so |
...
в появившемся окне ставим галку в Pam_p11 в "Rutoken PAM GOST" и нажимаем OK
8 Проверка
Откройте Терминал
...
Для настройки pkcs11_eventmgr служит файл конфигурации - /etc/pam_pkcs11/pkcs11_eventmgr.conf
Для различных дистрибутивов Линукс, команда которая вызывает блокировку учетной записи будет отличаться.
Пример файла конфигурации представлен ниже:
|
|
|
|
|
|
После этого добавьте приложение pkcs11_eventmgr в автозагрузку и перезагрузитесь.
...