Page tree

Versions Compared

Key

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

...

Для этого вы можете воспользоваться Терминалом:

$ sudo apt-get install opensc pam_pkcs11 pcsc-lite-ccid openssl-engine_pkcs11

Или из меню запустить Приложения - Системные - Программа управления пакетами Synaptic и используя быстрый поиск выбрать для установки пакеты:

...

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

$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -T

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

$ pkcs11-tool --module /usr/lib64/librtpkcs11ecp.so -T

4 Создаем ключевую пару

Если у вас уже имеется выписанная на токен ключевая пара RSA с привязанным к ней сертификатом, то вы можете использовать их для аутентификации.

...

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

$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --keypairgen --key-type rsa:2048 -l --id 45

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

$ pkcs11-tool --module /usr/lib64/librtpkcs11ecp.so --keypairgen --key-type rsa:2048 -l --id 45

Утилита pkcs11-tool входит в состав opensc.

Параметры, задаваемые в этой строке:

--module <arg>путь к библиотеке pkcs11 (обязательный параметр)
--keypairgen
генерация ключевой пары
-- key-type <arg>задает тип и длину ключа. В нашем случае тип – rsa, длина - 2048 бит (с длиной ключа 1024 бит возникают проблемы)
-lзапрос PIN-кода токена до каких-либо операций с ним (обязательный параметр)
--id <arg>

определяет id создаваемого объекта (понадобится при создании сертификата)

5 Создаем сертификат в формате PEM

...

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

$ openssl

OpenSSL>  engine

OpenSSL>  engine dynamic -pre SO_PATH:/usr/

lib

lib64/openssl/engines

/libpkcs11_gost

-1.1/pkcs11.so -pre ID:pkcs11 -pre LIST_ADD:

1 -pre LOAD -pre MODULE_PATH:/usr/lib/librtpkcs11ecp.so

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

$ openssl

OpenSSL>  engine

OpenSSL>  engine dynamic -pre SO_PATH:/usr/lib64/openssl/engines

/libpkcs11_gost

-1.1/pkcs11.so -pre ID:pkcs11 -pre LIST_ADD:

1 -pre LOAD -pre MODULE_PATH:/usr/lib64/librtpkcs11ecp.so

Image RemovedImage Added

Создаем сертификат в PEM-формате. Внимание! При выполнении этой команды запрашивается PIN-код пользователя.

OpenSSL>  req -engine pkcs11 -new -key 0:45 -keyform engine -x509 -out cert.pem  -text

Здесь:

-keyуказывает закрытый ключ (в нашем случае 0:45 – слот:ID ключа)
-x509 
выдает самоподписанный сертификат

6 Конвертируем сертификат из формата PEM в формат CRT (DER) 

OpenSSL> x509 -in cert.pem -out cert.crt -outform DER

7 Сохраняем сертификат на аутентифицирующий носитель

...

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

$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -l -y cert -w cert.crt --id 45

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

$ pkcs11-tool --module /usr/lib64/librtpkcs11ecp.so -l -y cert -w cert.crt --id 45

Здесь:

-y <arg>тип объекта (может быть cert, privkey, pubkey, data)
-w <arg>
записать объект на токен

8 Проверяем, что на токене есть всё, что необходимо

...

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

$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -O -l

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

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

9 Создаем файлы конфигурации pam_pkcs11

...

pam_pkcs11

...

Потребуются права суперпользователя:

$ su
Password

:
#

Для ALT Lixnux верси 6.0 и 7.0 используйте команду:

# cp /usr/share/pam_pkcs11/pam_pkcs11.conf.example /etc/security/pam_pkcs11/pam_pkcs11.conf
# cp /usr/share/pam_pkcs11/subject_mapping.example /etc/security/pam_pkcs11/subject_mapping

...

:
#

cp /usr/share/doc/pam_pkcs11/pam_pkcs11.conf.example /etc/security/pam_pkcs11/pam_pkcs11.conf
# cp /usr/share/doc/pam_pkcs11/subject_mapping.example /etc/security/pam_pkcs11/subject_mapping

...

10 Включаем аутентификацию по внешнему носителю

# rm /etc/pam.d/system-auth
# ln -s /etc/pam.d/system-auth-pkcs11 /etc/pam.d/system-auth

на вопрос об удалении ссылки следует ответить "y"

11 Редактируем конфигурацию аутентификации в системе

Отредактируем вторую строчкупервую строку файла конфигурации /etc/pam.d/system-auth. 

...

Для редактирования можно воспользоваться редактором mceditpluma

#

mcedit

pluma /etc/pam.d/system-auth

Для 32-битной версии используйте строку:

auth        [success=1 default=ignore]  pam_pkcs11.so pkcs11_module=/usr/lib/librtpkcs11ecp.so

Для 64-битной версии используйте строку:

auth        [success=1 default=ignore]  pam_pkcs11.so pkcs11_module=/usr/lib64/librtpkcs11ecp.so

12 Редактируем конфигурацию pam_pkcs11

...

Для редактирования можно воспользоваться редактором mceditpluma

#

mcedit 

pluma /etc/security/pam_pkcs11/pam_pkcs11.conf

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

pam_pkcs11 {
  nullok = false;
  debug = false;
  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/lib/librtpkcs11ecp.so
    slot_num = 0;
    support_thread =
 true
 true;
    ca
    ca_dir = /etc/security/pam_pkcs11/cacerts;
    crl
    crl_dir = /etc/security/pam_pkcs11/crls;
    cert
    cert_policy = signature;
  }
 
  use
  use_mappers =
subject
 opensc;
  mapper
  mapper_search_path = /lib/pam_pkcs11;
 
  mapper subject {
        debug = 
# Search certificates from $HOME/.eid/authorized_certificates to match users
mapper opensc {
debug = false;
        
module
= internal;
        ignorecase = false;
        mapfile = file:///etc/security
 = /lib64/pam_pkcs11/
subject
opensc_
mapping
mapper.so;
  
}
}

Для 64-битной версии замените строку

...

13 Добавляем связку сертификата на токене с пользователем системы ALT Linux.

Для этого выполняем команду pkcs11_inspect 

# pkcs11_inspect > /etc/security/pam_pkcs11/subject_mapping

Используя текстовый редактор закомментируем или удаляем ненужные строчки 

Для этого можно использовать редактор mcedit

# mcedit  /etc/security/pam_pkcs11/subject_mapping

# Printing data for mapper subject:
/C=RU/ST=Moscow/L=Moscow/O=Aktiv/OU=Aktiv/CN=alt/emailAddress=alt@mail.ru -> alt

Внимание! Вместо alt нужно установить имя пользователя в вашей системе

Если вы не знаете имя пользователя запустите команду whoami (без прав суперпользователя)

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

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


14 Проверям выполненные настройки

...

В случае возникновения ошибок еще раз проверьте все настройки. Для выявления проблемы вы так же можете включить вывод дополнительной информации при аутетификацииаутентификации.

Для этого:

  1. В файле pam_pkcs11.conf исправьте все строки вида "debug = false;", на строки "debug = true;".
  2. В конец второй строки файла конфигурации /etc/pam.d/system-auth добавьте слово "debug".

Не забудьте отключить вывод дополнительной инфомации после настройки системы.

15 Настройка

...

завершена!

На этом настройка закончена. После перезапуска ОС окно входа в систему будет выглядеть так:

...