Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Оглавление




Информация

...

...

title

...

Статья применима к:

...

  • Astra Linux

...

Информация

Применимо для Astra Linux Орёл 2.12

Предполагается, что Astra Linux Directory (ALD) уже развернут, существует минимум один доменный пользователь, который может пройти  аутентификацию по паролю, время клиента и сервера совпадают (ntp).

Установка драйверов на сервер и клиент

Для обеспечения работы со смарт-картой JaCarta на клиенте и сервере установите следующие пакеты: libccid, pcscd, libpcsclite1, opensc.

Для обеспечения работы со смарт-картой подсистемы Kerberos добавочно к предустановленным пакетам ald/kerberos установите пакет krb5-pkinit, libpam-krb5 на клиенте и сервере.

Для обеспечения возможности выпуска ключей и сертификатов на JaCarta  на сервере также установите пакеты libengine-pkcs11-openssl1.1

Для обеспечения возможности обращения к смарт-карте JaCarta, на клиенте и сервере следует  установить библиотеку libjcPKCS11-2.so (для JaCarta PKI/ГОСТ/FLASH), libASEP11.so (для JaCarta PKI)  которую следует скачать с официального сайта Аладдина:  

https://www.aladdin-rd.ru/support/downloads/jacarta

Test
$ sudo apt-get install libccid pcscd libpcsclite1 pcsc-tools opensc krb5-pkinit libpam-krb5 libengine-pkcs11-openssl1.1
Блок кода
user ~$ 

$ sudo dpkg -i название_загруженного_пакета.deb

Установка и настройка центра сертификации на сервере

Image Removed

Для работы модуля pkinit нам придется воспользоваться OpenSSL в качестве УЦ(CA), чтобы создать ключевые пары и сертификаты клиента и сервера.

OpenSSL — криптографический пакет с открытым исходным кодом для работы с SSL/TLS. Позволяет создавать ключи RSA, DH, DSA, ГОСТ и сертификаты X.509, подписывать их, формировать CSR и CRT.

Все настройки в руководстве выполняются для тестового домена SMARTCARD.ALD. Примем, что сервер и клиент принадлежат домену SMARTCARD.ALD, имя сервера - kdc, а клиента - client. При настройке используйте имя вашего домена, сервера и клиента.

Выполните следующие действия:

1) Создайте каталог CA командой:

Блок кода
mkdir /etc/ssl/CA

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

2) Создайте ключ и сертификат CA:

Блок кода
$ openssl genrsa -out cakey.pem 2048
$ openssl req -key cakey.pem -new -x509 -days 3650 -out cacert.pem
Примечание

Где days - количество дней действия сертификата CA

В диалоге заполните необходимую информацию о вашем центре сертификации.

Примечание

В Common name указать имя домена. В случае нашего примера: SMARTCARD.ALD 

Image Removed

3) Создайте ключ и сертификат KDC:

Блок кода
$ openssl genrsa -out kdckey.pem 2048
$ openssl req -new -out kdc.req -key kdckey.pem

В диалоге заполните необходимую информацию о вашем сервере.

Примечание

В Common name указать kdc.

4) Установите переменные среды. Переменные среды устанавливаются в рамках сессии и не устанавливаются для других сессий и не сохраняются после закрытия сессии.

Блок кода
$ export REALM=SMARTCARD.ALD 
$ export CLIENT=kdc 

Для того, чтобы убедиться что переменные указаны верно, воспользуйтесь командой:
env | grep REALM 
env | grep CLIENT

5) Загрузите файл pkinit_extensions и сохраните в каталог в котором, Вы выполняете команды:

 

View file
namepkinit_extensions
height150

...

titleсодержимое файла pkinit_extensions:

...

  • Special Edition РУСБ.10015-01 (очередное обновление 1.7), РУСБ.10015-10
  • Astra Linux Special Edition РУСБ.10015-17
  • Astra Linux Special Edition РУСБ.10015-37 (очередное обновление 7.7)
  • Astra Linux Special Edition РУСБ.10015-03 (очередное обновление 7.6)
  • Astra Linux Special Edition РУСБ.10152-02 (очередное обновление 4.7)
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6) с установленным обновлением БЮЛЛЕТЕНЬ № 20190222SE16 (оперативное обновление 2)
  • Astra Linux Special Edition РУСБ.10015-16 исп. 1
  • Astra Linux Special Edition РУСБ.10015-16 исп. 2
  • Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1)
  • Astra Linux Common Edition 2.12


Стенд

Состав стенда:

  • Удостоверяющий центр (УЦ);
  • Сервер;
  • Клиент;

Удостоверяющий центр может быть объединен с сервером или с клиентом.

Если на сервере предполагается осуществлять двухфакторную аутентификацию, то сервер выступает в роли клиента и требует соответствующих настроек;

Предполагается, что домен Astra Linux Directory (ALD) уже развернут, существует минимум один доменный пользователь, который может пройти  аутентификацию по паролю, время клиента и сервера совпадают (ntp).

Терминология Kerberos

  • Билет (ticket) – временные данные, выдаваемые клиенту для аутентификации на сервере, на котором располагается необходимая служба;
  • Клиент (client) – некая сущность в сети (пользователь, хост или сервис), которая может получить билет от Kerberos;
  • Центр выдачи ключей (key distribution center, KDC) – сервис, выдающий билеты Kerberos;
  • Область (realm) – сеть, используемая Kerberos, состоящая из серверов KDC и множества клиентов. Имя realm регистрозависимо, обычно пишется в верхнем регистре и совпадает с именем домена;
  • Принципал (principal) – уникальное имя для клиента, для которого разрешается аутентификация в Kerberos. Записывается в виде root[/instance]@REALM.


Image Added

Установка пакетов для доступа к токенам

Для обеспечения доступа к токенам на компьютерах, работающих с токенами (УЦ, клиенты, сервер, если он выступает в роли клиента) должен быть установлен пакет jcpkcs11-2. Этот пакет предоставляется производителем токенов и не входит в дистрибутивы Astra Linux. Для получения пакета и инструкций по его установке следует обратиться к производителю: https://www.aladdin-rd.ru.

Создание УЦ и работа с УЦ

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

  1. Установить пакет jcpkcs11-2 в соответствии с инструкциями производителя;
  2. Установить пакеты из дистрибутива Astra Linux:

    Command
    sudo apt install -y opensc libengine-pkcs11-openssl1.1 pcsc-tools


Создание и настройка УЦ

В качестве инструмента для создания УЦ в данном примере используется OpenSSL — криптографический пакет с открытым исходным кодом для работы с SSL/TLS. Пакет позволяет создавать ключи RSA, DH, DSA, ГОСТ и сертификаты X.509, подписывать их, формировать CSR и CRT. Далее все настройки далее выполняются для тестового домена SMARTCARD.ALD. Примем, что:
  • сервер и клиенты принадлежат домену SMARTCARD.ALD;
  • имя службы - kdc;
  • имя клиента - client.

При настройке рабочей системы используйте реальные имена вашего домена, сервера и клиента.

Порядок действий по настройке:

  1. Создать каталог удостоверяющего центра (УЦ) командой:

    Command
    sudo mkdir /etc/ssl/CA

    В этом каталоге будут размещаться сгенерированные ключи и сертификаты.


  2. Перейти в созданный каталог:

    Command
    cd /etc/ssl/CA


  3. Создать ключ и сертификат УЦ, указав собственные параметры в опции -subst:

    Примечание

    В параметре Common name (CN) обязательно указать имя домена. В случае нашего примера: SMARTCARD.ALD 


    Command
    sudo openssl genrsa -out cakey.pem 2048
    sudo openssl req -batch -new -key cakey.pem  -out cacert.pem -subj '/C=RU/ST=MO/L=Moscow/O=Astra/OU=Wiki/emailAddress= /CN=SMARTCARD.ALD' -x509 -days 3650


    Примечание

    Параметр days определяет количество дней действия сертификата УЦ.


Создание ключей службы аутентификации kdc

  1. Создать ключ и сертификат службы KDC, указав собственные параметры в опции -subst:

    Примечание

    В Common name (CN) обязательно указать имя службы kdc.


    Command

    sudo openssl genrsa -out kdckey.pem 2048
    sudo openssl req -batch -new -key kdckey.pem -out kdc.req    -subj '/C=RU/ST=MO/L=Moscow/O=Astra/OU=Wiki/emailAddress= /CN=kdc'


  2. Установить переменные среды. Переменные среды устанавливаются в рамках сессии, не устанавливаются для других сессий, не сохраняются после закрытия сессии:

    Command
    export REALM=SMARTCARD.ALD
    export CLIENT=kdc


  3. Убедиться что переменные указаны верно, воспользовавшись командой:

    Command
    env | grep -wE "REALM|CLIENT"


  4. Загрузить файл pkinit_extensions и сохранить в каталог в котором выполняются команды: pkinit_extensions.

    Раскрыть
    titleсодержимое файла pkinit_extensions:


    Блок кода
    [ kdc_cert ]
    basicConstraints=CA:FALSE
     
    # Here are some examples of the usage of nsCertType. If it is omitted
    keyUsage = nonRepudiation, digitalSignature, keyEncipherment, keyAgreement
     
    #Pkinit EKU
    extendedKeyUsage = 1.3.6.1.5.2.3.5
     
    subjectKeyIdentifier=hash
    authorityKeyIdentifier=keyid,issuer
     
    # Copy subject details
     
    issuerAltName=issuer:copy
     
    # Add id-pkinit-san (pkinit subjectAlternativeName)
    subjectAltName=otherName:

...

  1. 1.3.6.1.5.2.

...

  1. 2;SEQUENCE:kdc_princ_name
     
    [kdc_princ_name]
    realm = EXP:0, GeneralString:${ENV::REALM}
    principal_name = EXP:1, SEQUENCE:kdc_principal_seq
     
    [kdc_principal_seq]
    name_type = EXP:0, INTEGER:1
    name_string = EXP:1, SEQUENCE:kdc_principals
     
    [kdc_principals]
    princ1 = GeneralString:krbtgt
    princ2 = GeneralString:${ENV::

...

  1. REALM}
     
    [ client_cert ]
     
    # These extensions are added when 'ca' signs a request.
     
    basicConstraints=CA:FALSE
     
    keyUsage = digitalSignature, keyEncipherment, keyAgreement
     
    extendedKeyUsage =  1.3.6.1.5.2.3.4
    subjectKeyIdentifier=hash
    authorityKeyIdentifier=keyid,issuer
     
     
    subjectAltName=otherName:1.3.6.1.5.2.2;SEQUENCE:princ_name
     
     
    # Copy subject details
     
    issuerAltName=issuer:copy
     
    [princ_name]
    realm = EXP:0, GeneralString:${ENV::REALM}
    principal_name = EXP:1, SEQUENCE:principal_seq
     
    [principal_seq]
    name_type = EXP:0, INTEGER:1
    name_string = EXP:1, SEQUENCE:principals
     
    [principals]
    princ1 = GeneralString:${ENV::CLIENT}



  2. Выпустить сертификат KDC:

    Command
    sudo openssl x509 -req -in kdc.req -CAkey cakey.pem -CA cacert.pem -out kdc.pem -extfile pkinit_extensions -extensions kdc_cert -CAcreateserial -days 365


Подготовка токенов. Выпуск ключей и сертификата пользователей

  1. Подключить устройство, которое следует подготовить. В зависимости от используемой модели токена (PKI или GOST), в дальнейшем требуется использовать определенную библиотеку ( libjcPKCS11-2.so или libASEP11.so). Узнать, где расположены библиотеки можно с помощью команды:

    Command
    Titledpkg -L jcpkcs11-2 | egrep "(libjcPKCS11-2.so|libASEP11.so)"
    /usr/lib/libASEP11.so
    /usr/lib/libjcPKCS11-2.so.2.7.3

    Далее предполагается, что библиотеки расположены в каталоге /usr/lib/.

  2. Проверить работоспособность  JaCarta:

    1. При использовании библиотеки libjcPKCS11-2.so (для JaCarta PKI/ГОСТ/FLASH):

      Command
      pkcs11-tool --module /usr/lib/libjcPKCS11-2.so -T


    2. при использовании библиотеки libASEP11.so (для JaCarta PKI):

      Command
      pkcs11-tool --module /usr/lib/libASEP11.so -T


  3. Инициализировать токен:

    Предупреждение

    Внимание! Инициализация устройства удалит все данные на JaCarta PKI без возможности восстановления. 


    Command

6) Выпустите сертификат KDC:

Блок кода
$ openssl x509 -req -in kdc.req -CAkey cakey.pem -CA cacert.pem -out kdc.pem -extfile pkinit_extensions -extensions kdc_cert -CAcreateserial -days 365

7) Файлы kdc.pem, kdckey.pem, cacert.pem перенесите в /var/lib/krb5kdc/

8) Создайте резервную копию файла /etc/krb5kdc/kdc.conf. Отредактируйте /etc/krb5kdc/kdc.conf, дополнив секцию [kdcdefaults] следующими записями:

Блок кода
pkinit_identity = FILE:/var/lib/krb5kdc/kdc.pem,/var/lib/krb5kdc/kdckey.pem
pkinit_anchors = FILE:/var/lib/krb5kdc/cacert.pem

Первая запись задаёт ключи и сертификат сервера, а вторая указывает на корневой сертификат центра сертификации.

9. Для принятия изменений выполните:

Блок кода
systemctl restart krb5-admin-server
systemctl restart krb5-kdc

Подготовка смарт-карты. Выпуск ключей и сертификата пользователя

Подключите устройство, которое следует подготовить.

Предупреждение

В зависимости от модели токена (PKI / GOST), в дальнейшем требуется указывать определенную библиотеку ( libjcPKCS11-2.so или libASEP11.so)

Проверка работы JaCarta в системе

...

Блок кода
user ~$ 

libjcPKCS11-2.so (для JaCarta PKI/ГОСТ/FLASH):
$ pkcs11-tool --module /usr/lib/libjcPKCS11-2.so -T

libASEP11.so (для JaCarta PKI)
$ pkcs11-tool --module /usr/lib/x64-athena/libASEP11.so -T

...

Примечание

путь до библиотеки libjcPKCS11-2.so, libASEP11.so может различаться.

Для того чтобы определить путь до библиотеки libjcPKCS11-2.so введите команду:
$ find /usr/*(lib|lib64) -name libjcPKCS11-2.so

Инициализация устройства

Для инициализации токена необходимо воспользоваться утилитой pkcs11-tool.

...

  1. pkcs11-tool --slot 0x1ffff --init-token --so-pin 00000000 --label 'JaCarta PKI' --module /usr/lib/libjcPKCS11-2.so

...


  1. Задать ПИН

...

  1. -код пользователя:

    Command

...

  1. pkcs11-tool --slot 0x1ffff --init-pin --so-pin 00000000 --login --pin 11111111 --module /usr/lib/libjcPKCS11-2.so


    Информация

    --slot 0x1ffff — указывает

...

  1. используемый виртуальный слот

...

  1. токена. Как правило, это слот 0, но могут быть и другие значения – 1,2 и т.д.;
    --init-token – команда инициализации токена

...

  1. ;
    --pin - пин код пользователя JaCarta. По умолчанию имеет значение 11111111;
    --so-pin 00000000 – ПИН код администратора JaCarta PKI. По умолчанию имеет значение 00000000;
    --label 'JaCarta PKI' - метка(название) устройства

...

  1. ;
    --module - указывает путь до библиотеки libjcPKCS11-2.so

Image Removed

Предупреждение

Внимание! Инициализация устройства удалит все данные на JaCarta PKI без возможности восстановления. 

Генерация пары ключей на JaCarta 

Сгенерируйте ключи на устройстве, для этого введите следующую команду:


  1. Создать на устройстве пару ключей:

    Command

...

  1. pkcs11-tool --slot

...

  1. 0x1ffff --login --pin

...

  1. 11111111 --keypairgen --key-type rsa:2048 --id 33 --label “2fa_test1_

...

  1. key” --module /usr/lib/libjcPKCS11-2.so

Image Removed


  1. Информация

    -keypairgen --key-type rsa:2048 — указывает, что должны быть сгенерированы RSA ключи длиной 2048 бит; 
    --id 33 — устанавливает атрибут CKA_ID ключа. CKA_ID может быть любым; 
    --label “test1 key” — устанавливает атрибут CKA_LABEL(имя) ключа. Атрибут может быть любым; 

Генерация запроса на сертификат

...


  1. Создать запрос на сертификат с помощью

...

  1. инструмента openssl. Для этого

...

  1. выполнить следующие команды:

    Примечание

...

  1. В Astra Linux

...

  1. Special Edition РУСБ.10015-01 (очередное обновление 1.6) pkcs11 libengine-pkcs11-openssl версии 1.0.2 не совместим с библиотекой libjcPKCS11-2.so. Для корректного функционирования, следует:

    • либо скачать и установить подписанный пакет

...

    • libengine-pkcs11-openssl1.1 версии 0.4.4-4 для

...

    • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6):

...

...

...

$ openssl

...

  1. Используемый для генерации сертификата закрытый ключ идентифицируется парой <десятичный_номер_слота>:<id>. Для токенов Рутокен слоты нумеруются числами вида 0x1, 0x2 и т.д., для токенов Аладдин слоты нумеруются как 0x1ffff, 0x2ffff и т.д. Слоту 0x1ffff соответствует десятичный номер 131071 (используется ниже в примере команды):

    Command
    Titleopenssl

    OpenSSL> engine dynamic -pre SO_PATH:/usr/lib/x86_64-linux-gnu/engines-1.1/pkcs11.so -pre ID:pkcs11 -pre LIST_ADD:1  -pre LOAD -pre MODULE_PATH:/usr/lib/libjcPKCS11-2.so
    (dynamic) Dynamic engine loading support
    [Success]: SO_PATH:/usr/lib/x86_64-linux-gnu/engines-1.1/pkcs11.so
    [Success]: ID:pkcs11
    [Success]: LIST_ADD:1
    [Success]: LOAD
    [Success]: MODULE_PATH:/usr/lib/libjcPKCS11-2.so
    Loaded: (pkcs11) pkcs11 engine
    OpenSSL>

...

  1. req

...

  1. -engine

...

  1. pkcs11

...

  1. -new

...

  1. -key

...

  1. 131071:33

...

  1. -keyform

...

  1. engine

...

  1. -out

...

  1. client.

...

  1. req 
    engine "pkcs11" set.
    Enter PKCS#11 token PIN for JaCarta ECP <AstraLinux>:
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) [AU]:RU
    State or Province Name (full name) [Some-State]:Moscow
    Locality Name (eg, city) []:
    Organization Name (eg, company) [Internet Widgits Pty Ltd]: Rusbitech  
    Organizational Unit Name (eg, section) []: Astra
    Common Name (e.g. server FQDN or YOUR name) []:test1 (!Ваш_Пользователь!)
    Email Address []:

...

  1. *********
     
    OpenSSL> exit


    Примечание

    -new -key

...

  1. 131071:33, где 

...

  1. 131071— номер виртуального слота с устройством (0x1ffff) 33— атрибут CKA_ID раннее сгенерированных ключей.

    в поле CN = следует указать имя пользователя

    Узнать номер виртуального слота можно используя команду:

    Command
    pkcs11-tool --module /usr/lib/libjcPKCS11-2.so -L



    Примечание

    В случае если openssl выдаст ошибку о  неверном слоте, № слота следует

...

  1. указать в

...

  1. десятичном формате, например: 131071:33

...


  1. Выпустить  сертификат для пользователя:

...

    1. Установить переменные окружения:

...

    1. Command

...

    1. export

...

    1. REALM=

...

    1. <имя_домена>
      export CLIENT=<имя_доменного_пользователя>


    2. Убедиться

...

SMARTCARD.ALD - ваш домен

test1 - Ваш доменной пользователь

...

    1. что переменные указаны верно

...

    1. :

      Command

      env | grep -wE "REALM

...

    1. |

...

    1. CLIENT"

...


    1. Выпустить сертификат

...

    1. пользователя:

...

    1. Command

...

    1. sudo openssl

...

    1. x509

...

    1. -CAkey

...

    1. cakey.pem

...

    1. -CA

...

    1. cacert.pem

...

    1. -req

...

    1. -in

...

    1. client.req

...

    1. -extensions

...

    1. client_cert

...

    1. -extfile

...

    1. pkinit_extensions

...

    1. -out

...

    1. client.pem

...

    1. -days

...

    1. 365

...


    1. Перекодировать полученный сертификат из формата PEM в формат DER

...

    1. :

...

    1. Command

...

    1. sudo openssl

...

    1. x509

...

    1. -in

...

    1. client.pem

...

    1. -out

...

    1. client.cer

...

    1. -inform

...

    1. PEM

...

    1. -outform

...

    1. DER

...


    1. Записать полученный сертификат на токен:

...

    1. Command
      pkcs11-tool

...

    1. --slot

...

    1. 0x1ffff --login

...

    1. --pin

...

    1. 11111111 --write-object

...

    1. client.cer

...

    1. --type

...

    1. 'cert'

...

    1. --label

...

    1. 'test1'

...

    1. --id

...

    1. 33 --module /usr/lib/libjcPKCS11-2.so


      Примечание

      --write-object ./client.cer— указывает, что необходимо записать объект и путь до него;
      --type 'cert'— указывает, что тип записываемого объекта - сертификат;
      'cert' --label 'test1'— устанавливает атрибут CKA_LABEL(имя) сертификата. Атрибут может быть любым;


Подготовка сервера

  1. Созданные в УЦ файлы kdc.pem, kdckey.pem, cacert.pem переместить в каталог /var/lib/krb5kdc/ на сервере;

  2. Создать резервную копию файла /etc/krb5kdc/kdc.conf и отредактировать файл /etc/krb5kdc/kdc.conf, дополнив секцию [kdcdefaults] следующими записями:

    Блок кода
    pkinit_identity = FILE:/var/lib/krb5kdc/kdc.pem,/var/lib/krb5kdc/kdckey.pem
    pkinit_anchors = FILE:/var/lib/krb5kdc/cacert.pem

    Первая запись задаёт ключи и сертификат сервера, а вторая указывает на корневой сертификат центра сертификации. Для этого можно использовать команды:

    Command
    sudo sed -i.`date +%Y-%m%d-%H:%M:%S` "/\[kdcdefaults\]/a \ pkinit_anchors = FILE:/var/lib/krb5kdc/cacert.pem" /etc/krb5kdc/kdc.conf
    sudo sed -i                          "/\[kdcdefaults\]/a \ pkinit_identity = FILE:/var/lib/krb5kdc/kdc.pem,/var/lib/krb5kdc/kdckey.pem" /etc/krb5kdc/kdc.conf


  3. Для принятия изменений выполнить команды:

    Command
    sudo systemctl restart krb5-admin-server
    sudo systemctl restart krb5-kdc


Настройка клиента. Проверка работоспособности

...

  1. Создать на клиенте

...

  1. каталог /etc/krb5/:

    Command
    sudo mkdir /etc/krb5/

...


  1. Скопировать в созданный каталог /etc/krb5/

...

  1. сертификат

...

  1. УЦ(файл cacert.pem) c

...

  1. компьютера, выполняющего роль УЦ;
  2. В файле

...

  1. /etc/krb5.

...

  1. conf  секцию [libdefaults]

...

  1. дополнить следующими строками:

    Блок кода
    [libdefaults] 
    default_realm = SMARTCARD.ALD
    pkinit_anchors = FILE:/etc/krb5/cacert.pem
    # для аутентификации по токену
    pkinit_identities = PKCS11:/usr/lib/libjcPKCS11-2.so

...


  1. Подключить токен к компьютеру;
  2. Выполнить

...

  1. проверку: 

...

  1. Command

...

  1. kinit


  2. Когда появится строка запроса PIN-кода к карте

...

  1. - ввести PIN-код;

  2. Для проверки того, что

...

  1. билет Kerberos был успешно получен

...

  1. пользователем, ввести команду:

    Command
    klist


  2. Для удаления

...

  1. полученного билета:

    Command
    kdestroy


Примечание

Для

...

включения отладки команду kinit следует

...

Image Removed

...

использовать так:

Command
env KRB5_TRACE=/dev/stdout kinit

...

<имя_пользователя>



Далее вход пользователя следует выполнять с подключенным к компьютеру токеном.

При графическом входе в поле Login вводится имя пользователя, в поле Password вводится <PIN пользователя>. При консольном входе все аналогично, только в момент ввода пароля будет сообщено, что требуется <PIN пользователя>

...

:

...

Command

...

login <имя_пользователя>

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


Существует возможность указания дополнительных параметров модуля аутентификации pam_krb5.so в файле /etc/pam.d/common-auth в строке относящейся к pam_krb5.so:
Image Modified

– try_pkinit — режим при котором осуществляется попытка аутентификации с помощью устройств PKCS-11, в случае провала попытки предоставляется возможность входа с помощью Kerberos пароля пользователя;
– use_pkinit — режим при котором требуется аутентификация с помощью устройств PKCS-11, в случае провала процесс входа прерывается;
– pkinit_prompt — вывод приглашения для подключения устройства PKCS-11 перед выполнением попытки входа.

Примечание

После обновления pam-auth-update, опции pkinit исчезнут.

...

Для того, чтобы опция сохранялась принудительно, в конфигурационном файле /usr/share/pam-configs/krb5 в поле Auth-Initial следует дописать одну из опций.

Image Modified

Более подробное описание см. в руководстве man.

Полезные ссылки