Page tree

Versions Compared

Key

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

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

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

...

Убедитесь, что используете: Aktiv Rutoken ECP

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

Пуск - Настройки - Менеджер пакетов

...

  • libccid
  • pcscd
  • libpam-pkcs11
  • libp11-2
  • libengine-pkcs11-openssl
  • opensc

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

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

...

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

3 Добавляем библиотеку 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

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

Пуск - утилиты - Терминал

...

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

Rutoken ECP <no label> 

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

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

...

В случае, если файл cert.crt создан переходим к пункту 6

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

Info
Собирайте ветку pkcs11-tool с поддержкой ГОСТ-2012 из нашего GitHub-а, пока не выпущен релиз OpenSC новее чем 0.19.0.
Или можно собирать утилиту из ветки master OpenSC взяв коммит 8cf1e6f

...

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/p11

...

в появившемся окне ставим галку в Pam_p11 и нажимаем OK

8 Проверка

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

Code Block
languagebash
$ sudo login 

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


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

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

Для настройки pkcs11_eventmgr служит файл конфигурации - /etc/pam_pkcs11/pkcs11_eventmgr.conf

Пример файла конфигурации представлен ниже:

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

После этого добавьте приложение pkcs11_eventmgr в автозагрузку и перезагрузитесь.