Page tree

Versions Compared

Key

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

Table of Contents

Настройка системы

Перед началом работы, установите следующие пакеты:

...

Далее потребуется скачать сертификат с токена, если его нету, то генерируем его согласно следующему пункту


Генерация сертификата и запись его на Рутокен

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

...

--id:  идентификатор объекта (CKA_ID) в виде двузначных номеров символов в hex из таблицы ASCII.  Используйте только ASCII-коды печатных символов, т.к. id нужно будет передать OpenSSL в виде строки. Например ASCII-кодам “3132” соответствует строка "12".


 

Info
iconfalse
Для удобства, можно воспользоваться онлайн-сервисом конвертации строки в ASCII-коды.

...

В начале файла исправьте следующее:

openssl_conf = openssl_def

И в конце файла добавьте следующее:

...

export OPENSSL_CONF=/etc/ssl/openssl.cnf

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

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

...

pkcs11-tool --module /usr/lib64/librtpkcs11ecp.so -l -y cert -w cert.cer --id 3132

Регистрация сертификата в системе

Скачиваем сертификат с токена (если вы пользовались вышеописанной инструкцией для получения сертификата, то ID = 3132)

...

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


Настройка аутентификации

Открываем файл /etc/pam.d/system-auth

...

В окне экрана приветствия аналогично:

Настройка автоблокировки

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

...

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

...