Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

включая Astra Linux

0 Проверка модели устройства

  1. Подключите USB-токен к компьютеру.
  2. Для определения названия модели USB-токена откройте Терминал и введите команду:

...

В результате в окне Терминала отобразится название модели USB-токена:Image Removed

Code Block
languagebash
 $ 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

1 Устанавливаем необходимые пакеты

Code Block
languagebash
sudo apt-get install libccid pcscd opensc openssl libpam-pkcs11

2 Добавляем PAM модуль с поддержкой ГОСТ-2012

Загружаем библиотеку через браузер

...

Code Block
languagebash
$ sudo cp librtpam.so.1.0.0 /usr/lib/x86_64-linux-gnu/
$ sudo chmod 644 /usr/lib/x86_64-linux-gnu/librtpam.so.1.0.0

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
languagebash
 $ wget --no-check-certificate https://download.rutoken.ru/Rutoken/PKCS11Lib/Current/Linux/x64/librtpkcs11ecp.so

Для 32-битной системы используйте:

Code Block
languagebash
$ wget --no-check-certificate https://download.rutoken.ru/Rutoken/PKCS11Lib/Current/Linux/x86_64x32/librtpkcs11ecp.so

Копируем в системную папку  папку  

Code Block
languagebash
$ sudo cp librtpkcs11ecp.so /usr/lib/x86_64-linux-gnu/
$ sudo chmod 644 /usr/lib/x86_64-linux-gnu/librtpkcs11ecp.so

4 Проверяем что Рутокен ЭЦП работает в системе

В Терминале

Code Block
languagebash
$ pkcs11-tool --module /usr/lib/x86_64-linux-gnu/librtpkcs11ecp.so -T 

В случае если увидите вот такую строку, значит все хорошо.

Rutoken ECP <no label> 

5 Считываем сертификат

Проверяем что на устройстве есть сертификат

...

  • нет ничего, значит устройство пустое. Обратитесь к администратору или создайте ключи и сертификат самостоятельно следуя следующему шагу

5.1 Создаем самоподписанный сертификат

Info


Собирайте ветку pkcs11-tool с поддержкой ГОСТ-

2012 из нашего GitHub-а, пока не выпущен релиз OpenSC новее чем 0.19.0.
Или можно собирать утилиту из ветки master OpenSC взяв коммит 8cf1e6f

2012, или используйте релиз OpenSC 0.20.0 или новее

Откройте Терминал

Генерируем ключевую пару с параметрами:

...

создаем самоподписанный сертификат. Для этого сначала надо установить и настроить для работы с Рутокен OpenSSL 1.1 или новее через специальный модуль rtengine по инструкции: Установка и настройка OpenSSL для работы с rtengine 0.7.x

Чтобы использовать этот id ключевой пары, созданной через pkcs11-tool, в OpenSSL – надо использовать hex-символы из таблицы ASCII, соответствующие этим кодам.

...

Code Block
languagebash
$ pkcs11-tool --module /usr/x86_64-linux-gnu/librtpkcs11ecp.so -l -y cert -w cert.crt --id 3132

6 Регистрируем сертификат в системе

Откройте Терминал

Конвертируем сертификат в текстовый формат

...


Code Block
languagebash
mkdir ~/.eid
chmod 0755 ~/.eid
cat cert.pem >> ~/.eid/authorized_certificates
chmod 0644 ~/.eid/authorized_certificates


7 Настраиваем аутентификацию 

Откройте Терминал

Code Block
languagebash
$ sudo nano /usr/share/pam-configs/rtpam-gost

...

Code Block
languagebash
Name: Rutoken PAM GOST
Default: yes
Priority: 800
Auth-Type: Primary
Auth: sufficient /usr/lib/x86_64-linux-gnu/librtpam.so.1.0.0 /usr/lib/x86_64-linux-gnu/librtpkcs11ecp.so

...

в появившемся окне ставим галку в "Rutoken PAM GOST" и нажимаем OK

8 Проверка

Откройте Терминал

Code Block
languagebash
$ sudo login 

введите имя пользователя и в случае если система потребует PIN-код от устройства значит все настроено правильно


9 Блокировка компьютера при извлечении токена

В состав пакета libpam-pkcs11 входит утилита pkcs11_eventmgr, которая позволяет выполнять различные действия при возникновении событий PKCS#11.

...

pkcs11_eventmgr
{
    # Запуск в бэкграунде
    daemon = true;
     
    # Настройка сообщений отладки
    debug = false;
 
    # Время опроса в секундах
    polling_time = 1;
 
    # Установка тайм-аута на удаление карты
    # По-умолчанию 0
    expire_time = 0;
 
    # Выбор pkcs11 библиотеки для работы с Рутокен
    pkcs11_module = usr /usr/lib/x86_64-linux-gnu/librtpkcs11ecp.so;
 
    # Действия с картой
    # Карта вставлена:
    event card_insert {
        # Оставляем значения по умолчанию (ничего не происходит)
        on_error = ignore ;
 
        action = "/bin/false";
    }
 
    # Карта извлечена
    event card_remove {
        on_error = ignore;
         
        # Вызываем функцию блокировки экрана
       
        # Для GNOME 

        action = "dbus-send --type=method_call --dest=org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock";

            # Для XFCE
            # action = "xflock4";

            # Для Astra Linux (FLY)
            # action = "fly-wmfunc FLYWM_LOCK";
    }
 
    # Карта долгое время извлечена
    event expire_time {
        # Оставляем значения по умолчанию (ничего не происходит)
        on_error = ignore;
 
        action = "/bin/false";
    }
}



...