Содержание

Начальные требования

Для получения доступа к репозиториям получите у службы поддержки ключ и выполните следующую команду с правами администратора:

echo <ключ> > /etc/rosa-support-id-server

Применимость

В инструкции описаны установка и настройка утилит ROSA Enterprise Linux Server, необходимых для аутентификации с использованием Рутокен ЭЦП. В примере используется архитектура AMD64; для 32-разрядной системы все действия будут аналогичны с точностью до названий папок.

После выполнения нижеприведённой процедуры аутентификация по Рутокен ЭЦП станет возможной, но не будет являться обязательной.

Установка компонентов

Установите требуемые и удалите конфликтующие утилиты (требуются права администратора):

su
yum install ccid opensc pam_pkcs11 gdm-plugin-smartcard
yum remove coolkey

Установите библиотеку PKCS#11 для Рутокен ЭЦП (важно устанавливать библиотеку после установки утилит):

Rutoken RELS1.png

Настройка

Проверка отображения устройства в системе и наличия на нём нужной информации

su
killall pcscd

С этого момента токен должен быть вставлен в соответствующий разъём.

 pcscd -adfffff
 pkcs11-tool --module /usr/lib64/librtpkcs11ecp.so -T

В выводе должны быть видны параметры и название устройства. Пример вывода приведён ниже.

Rutoken RELS2.png

 pkcs11-tool --module /usr/lib64/librtpkcs11ecp.so -O -l

В выводе обязан присутствовать Certificate Object. Такие параметры, как ID и label, могут отличаться от приведённых ниже.

Rutoken RELS3.png

Добавление сертификата в доверенные

su
mkdir /etc/pam_pkcs11/nssdb
chmod 0644 /etc/pam_pkcs11/nssdb
certutil -d /etc/pam_pkcs11/nssdb -N (создание базы данных)
modutil -dbdir /etc/pam_pkcs11/nssdb/ -add p11-kit-trust -libfile /usr/lib64/pkcs11/p11-kit-trust.so (утилита потребует отключить браузер)

Rutoken RELS4.png

pkcs11-tool --module=/usr/lib64/librtpkcs11ecp.so -l -r -y cert -d <ID> -o cert.crt (команда запишет сертификат в текущую директорию как cert.crt)

Rutoken RELS5.png

su
cp cert.crt /etc/pki/ca-trust/source/anchors/ (команда вводится из директории, в которую был помещён сертификат)
update-ca-trust force-enable
update-ca-trust extract (может занять некоторое время)

Изменение конфигурационных файлов

Для изменения конфигурационных файлов потребуются права администратора.

pam_pkcs11.conf

pam_pkcs11 {
  nullok = false;
  debug = true;
  use_first_pass = false;
  use_authtok = false;
  card_only = false;
  wait_for_card = false;
  use_pkcs11_module = rutokenecp;
 
  # Aktiv Rutoken ECP
  pkcs11_module rutokenecp {
    module = /usr/lib64/librtpkcs11ecp.so;
    slot_num = 0;
    support_thread = true;
    ca_dir = /etc/pam_pkcs11/cacerts;
    crl_dir = /etc/pam_pkcs11/crls;
    cert_policy = signature;
  }
 
  use_mappers = subject;
 
  mapper_search_path = /usr/lib64/pam_pkcs11;
 
  mapper subject {
        debug = true;
        module = internal;
        ignorecase = false;
        mapfile = file:///etc/pam_pkcs11/subject_mapping;
  }
}
cd /etc/pam_pkcs11/
su (получение прав администратора)
mv pam_pkcs11.conf pam_pkcs11.conf.default (резервное копирование)
mkdir cacerts crls
cp /home/<имя_пользователя>/Desktop/pam_pkcs11.conf /etc/pam_pkcs11/

system-auth

su (получение прав администратора)
nano /etc/pam.d/system-auth
auth	  sufficient pam_pkcs11.so pkcs11_module=/usr/lib64/librtpkcs11ecp.so debug

Rutoken RELS7.png

subject_mapping

su
pkcs11_inspect

Rutoken RELS8.png

Строка конфигурации имеет вид:

Вывод команды pkcs11_inspect -> <имя_пользователя>

Rutoken RELS9.png

Проверка аутентификации через консоль

Пример вывода:

Rutoken RELS10.png

После проверки работы аутентификации через консоль можно убрать режим отладки. Для этого в файле /etc/pam.d/sysauth в добавленной строке уберите слово debug, а в файле /etc/pam_pkcs11/pam_pkcs11.conf поставьте напротив debug false вместо true.

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

su
cd /etc/pam_pkcs11/
mv pkcs11_eventmgr.conf pkcs11_eventmgr.conf.default (резервное копирование)
nano pkcs11_eventmgr.conf

После редактирования конфигурационный файл должен выглядеть следующим образом:

pkcs11_eventmgr {
 
    # Run in background? Implies debug=false if true
    daemon = true;
 
    # show debug messages?
    debug = false;
 
    # polling time in seconds
    polling_time = 1;
 
    # expire time in seconds
    # default = 0 ( no expire )
    expire_time = 0;
 
    # pkcs11 module to use
    pkcs11_module = /usr/lib64/librtpkcs11ecp.so;
 
    #
    # list of events and actions
 
    # Card inserted
    event card_insert {
        # what to do if an action fail?
        # ignore  : continue to next action
        # return  : end action sequence
        # quit    : end program
        on_error = ignore ;
    }
 
    # Card has been removed
    event card_remove {
        on_error = ignore;
        action = "gdmflexiserver";
    }
 
    # Too much time card removed
        event expire_time {
        on_error = ignore;
        action = "/bin/false";
    }
}
nano /home/<имя_пользователя>/.bash_profile

Пример файла .bash_profile после редактирования:

Rutoken RELS11.png

При выборе аутентификации при помощи токена экран будет выглядеть примерно так:

Rutoken RELS12.png