Перейти к основному содержимому
Версия: Indeed Access Manager 9.7

Подключение Smart Card и Smart Card + PIN

Для аутентификации через Linux Logon с помощью смарт-карт и USB-токенов необходимо выполнить дополнительные настройки:

  1. Установите дополнительные библиотеки для работы с устройствами.
  2. Установите библиотеки производителей (PKCS#11) для используемых устройств.
  3. Настройте устройства, которые вы используете: Rutoken ЭЦП / Rutoken Lite, Rutoken S или JaCarta.
  4. При использовании нескольких устройств или нестандартных путей к библиотекам проверьте настройки параметра LibraryPath в конфигурационном файле amsvc.ini.
  5. Проверьте работу устройств по журналу службы amdev.
Важно

Аутентификация с помощью Smart Card и Smart Card + PIN не поддерживается при подключении по SSH и xRDP.

Перед первым входом в Linux Logon по Smart Card или Smart Card + PIN зарегистрируйте аутентификатор на хосте с Windows Logon через утилиту управления аутентификаторами.

Установка дополнительных библиотек​

Подготовьте операционную систему к работе со смарт-картами и USB-токенами. Для этого необходимо установить дополнительные библиотеки компонентов со следующим назначением:

  • Служба PC/SC — для доступа к подключенным считывателям, смарт-картам и USB-токенам.
  • Клиентская библиотека PC/SC — для взаимодействия Linux Logon со службой PC/SC.
  • Драйвер CCID — для работы считывателей, которые поддерживают стандарт CCID. Для остальных устройств может потребоваться отдельный драйвер производителя.

Установка библиотек различается в зависимости от операционной системы.

Чтобы установить библиотеки, выполните команду:

sudo apt update
sudo apt install pcscd libpcsclite1 libccid

Далее установите библиотеки производителей, чтобы подключить библиотеку PKCS#11, соответствующую используемому устройству.

Установка библиотек производителей​

Для работы Linux Logon со смарт-картами и USB-токенами установите библиотеку PKCS#11, соответствующую используемому устройству:

УстройствоКомпонентБиблиотека
Rutoken ЭЦП / Rutoken LiteБиблиотека rtPKCS11ECPlibrtpkcs11ecp.so
Rutoken SДрайвер ifd-rutokens и OpenSCopensc-pkcs11.so
JaCartaПакет jcpkcs11-2libjcPKCS11-2.so

Установите библиотеки только для используемых устройств. Если вы используете устройства разных производителей, установите соответствующие библиотеки для каждого из них.

Настройка устройств Smart Card​

Настройте только те устройства, которые вы планируете использовать для аутентификации:

Информация

В Astra Linux устройства Smart Card работают со следующими ограничениями:

  • Графический вход. Выбор смарт-карты или USB-токена из списка недоступен. Для продолжения аутентификации оставьте подключенным одно устройство, используемое для входа.

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

  • Разблокировка графического сеанса. Перед разблокировкой подключите нужную смарт-карту или USB-токен и отключите остальные устройства. В интерфейсе Astra Linux отсутствуют список устройств и подсказки о необходимости подключить карту или отключить лишние устройства.

Настройка Rutoken ЭЦП / Rutoken Lite​

Установка библиотек различается в зависимости от операционной системы.

  1. Проверьте, что установлены базовые библиотеки службы PC/SC:

    dpkg -l pcscd libpcsclite1 libccid

    Если библиотеки отсутствуют, установите их.

  2. Проверьте, что установлена библиотека PKCS#11 Rutoken:

    dpkg -l | grep -i rtpkcs
    find /usr/lib /usr/lib64 -name 'librtpkcs11ecp.so*' -ls

    Если библиотека отсутствует, скачайте пакет для Astra Linux и установите его:

    sudo apt install ./librtpkcs11ecp_<версия>_amd64.deb
    sudo ldconfig
  1. Укажите библиотеку в параметре LibraryPath секции [Smart Card] файла /etc/amsvc/amsvc.ini. Можно указать относительное имя библиотеки или полный путь к ней:

    Пример указания относительного имени
    [Smart Card]
    LibraryPath=librtpkcs11ecp.so
    Пример для Astra Linux с полным путем
    [Smart Card]
    LibraryPath=/opt/aktivco/rutokenecp/amd64/librtpkcs11ecp.so
    Пример для РЕД ОС с полным путем
    [Smart Card]
    LibraryPath=/opt/aktivco/rutokenecp/x86_64/librtpkcs11ecp.so
  2. Перезапустите службу amdev:

    sudo systemctl restart amdev
  3. Проверьте работу устройства по журналу службы amdev.

Настройка Rutoken S​

Rutoken S работает с Linux Logon через модуль OpenSC. Библиотека Rutoken S не подключается напрямую: в amsvc.ini указывается библиотека opensc-pkcs11.so.

Важно

Перед настройкой убедитесь, что на токене Rutoken S инициализировано приложение PKCS#15. Без него токен не сможет работать с Linux Logon.

Чтобы настроить Rutoken S:

  1. Установите драйвер Rutoken S и модуль OpenSC.
  2. Проверьте наличие приложения PKCS#15 на токене и при необходимости создайте его.
  3. Укажите библиотеку OpenSC в amsvc.ini.

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

Установка различается в зависимости от операционной системы.

  1. Проверьте, что специальный драйвер Rutoken S установлен:

    dpkg -l | grep -i ifd-rutokens
    find /usr/lib /usr/lib64 -path '*pcsc/drivers*' -iname '*rutoken*' -ls
  2. Если драйвер отсутствует, скачайте пакет для Astra Linux и установите его:

    sudo apt install ./ifd-rutokens_<версия>_amd64.deb
  3. Проверьте, что установлен модуль OpenSC. При необходимости установите его:

    dpkg -l opensc
    sudo apt install opensc
  1. Переподключите Rutoken S и перезапустите службу pcscd:

    sudo systemctl restart pcscd.service

Проверка и создание приложения PKCS#15​

  1. Подключите Rutoken S и проверьте, что на токене есть приложение PKCS#15:

    pkcs15-tool --dump

    Если приложение отсутствует, команда завершится ошибкой:

    Using reader with a card: Aktiv Co. Rutoken S 00 00
    PKCS#15 binding failed: Unsupported card
  2. Если приложение отсутствует, создайте его:

    pkcs15-init --create-pkcs15 --so-pin "<PIN администратора>" --so-puk "" --pin "<PIN пользователя>"
    Примечание

    Укажите собственные значения PIN-кодов. PIN администратора для Rutoken S должен содержать от 8 до 16 символов.

  3. Повторите шаг 1 и убедитесь, что приложение создано: в выводе команды будут отображены данные карты (PKCS#15 Card [Rutoken S]) и объект PIN [Security Officer PIN].

  4. Проверьте, что токен доступен через PKCS#11:

    pkcs11-tool --module opensc-pkcs11.so -T

    В выводе будут отображены модель токена PKCS#15 и его серийный номер (serial num).

Настройка amsvc.ini​

  1. Откройте файл /etc/amsvc/amsvc.ini и укажите библиотеку OpenSC в параметре LibraryPath секции [Smart Card]. Вы можете указать относительное имя библиотеки или полный путь к ней:

    Пример указания относительного имени
    [Smart Card]
    LibraryPath=opensc-pkcs11.so
    Пример для Astra Linux с полным путем
    [Smart Card]
    LibraryPath=/usr/lib/x86_64-linux-gnu/opensc-pkcs11.so
    Пример для РЕД ОС с полным путем
    [Smart Card]
    LibraryPath=/usr/lib64/opensc-pkcs11.so
  2. Перезапустите службу amdev:

    sudo systemctl restart amdev
  3. Проверьте работу устройства по журналу службы amdev.

Настройка JaCarta​

Установка библиотек различается в зависимости от операционной системы.

  1. Проверьте, что установлены базовые библиотеки PC/SC:

    dpkg -l pcscd libpcsclite1 libccid

    Если библиотеки отсутствуют, установите их.

  2. Проверьте, что установлена библиотека PKCS#11 JaCarta:

    dpkg -l | grep -iE 'jcpkcs11|jacarta'
    find /usr/lib /usr/lib64 -name 'libjcPKCS11-2.so*' -ls
  3. Если библиотека отсутствует, скачайте дистрибутив JaCarta для Astra Linux в центре загрузки JaCarta и установите пакет jcpkcs11-2:

    sudo apt install ./jcpkcs11-2_<версия>_al_x64.deb
    sudo ldconfig
  1. Откройте файл /etc/amsvc/amsvc.ini и укажите библиотеку в параметре LibraryPath секции [Smart Card]. Вы можете указать относительное имя библиотеки или полный путь к ней:

    Пример указания относительного имени
    [Smart Card]
    LibraryPath=libjcPKCS11-2.so
    Пример для Astra Linux с полным путем
    [Smart Card]
    LibraryPath=/usr/lib/libjcPKCS11-2.so
    Пример для РЕД ОС с полным путем
    [Smart Card]
    LibraryPath=/usr/lib64/libjcPKCS11-2.so
  2. Перезапустите службу amdev:

    sudo systemctl restart amdev
  3. Проверьте работу устройства по журналу службы amdev.

Настройка библиотек в файле amsvc.ini​

По умолчанию библиотеки настроены для одновременной работы с Rutoken ЭЦП / Rutoken Lite и JaCarta. Если вы используете другой вариант, настройте библиотеки вручную.

Чтобы настроить библиотеки:

  1. Откройте файл /etc/amsvc/amsvc.ini, перейдите в секцию [Smart Card] и задайте значение параметра LibraryPath.

    Если секция [Smart Card] с параметром LibraryPath в файле отсутствует, добавьте ее вручную.

    Пример для работы с Rutoken ЭЦП / Rutoken Lite
    [Smart Card]
    LibraryPath=librtpkcs11ecp.so

    Если используется несколько библиотек PKCS#11, перечислите их через запятую.

    Пример для одновременной работы с Rutoken ЭЦП / Rutoken Lite, JaCarta и Rutoken S
    [Smart Card]
    LibraryPath=librtpkcs11ecp.so, libjcPKCS11-2.so, opensc-pkcs11.so

    Если библиотека установлена и доступна в системном каталоге (/usr/lib или /usr/lib64), укажите только имя файла. Если библиотека установлена в другом каталоге, укажите полный путь к ней.

    Пример полного пути для Rutoken ЭЦП / Rutoken Lite

    Astra Linux

    [Smart Card]
    LibraryPath=/opt/aktivco/rutokenecp/amd64/librtpkcs11ecp.so

    РЕД ОС

    [Smart Card]
    LibraryPath=/opt/aktivco/rutokenecp/x86_64/librtpkcs11ecp.so

    Сохраняйте указанный порядок библиотек, чтобы избежать ошибок и задержек при чтении устройств (см. Порядок библиотек в LibraryPath).

  2. После сохранения настроек перезапустите службу:

    sudo systemctl restart amdev

Порядок библиотек в LibraryPath​

Сохраняйте указанный порядок библиотек в параметре LibraryPath:

  • При одновременном использовании Rutoken ЭЦП и JaCarta библиотека librtpkcs11ecp.so должна находиться перед libjcPKCS11-2.so. Это позволяет избежать ошибки чтения JaCarta после Rutoken.

    [Smart Card]
    LibraryPath=librtpkcs11ecp.so, libjcPKCS11-2.so
  • При использовании Rutoken S библиотеку opensc-pkcs11.so необходимо размещать в конце списка, после библиотек Rutoken ЭЦП / Rutoken Lite и JaCarta. Это позволяет избежать задержек при чтении устройств.

    [Smart Card]
    LibraryPath=librtpkcs11ecp.so, libjcPKCS11-2.so, opensc-pkcs11.so

Проверка работы устройств​

  1. После настройки проверьте журнал службы amdev:

    journalctl -fu amdev
  2. Подключите и отключите устройство. При правильной настройке в журнале фиксируются события:

    • onReaderAdded — подключение считывателя
    • onCardInserted — подключение карты (в идентификаторе смарт-карты или USB-токена отображаются последние шесть символов)
    • onCardRemoved — извлечение карты
    • onReaderRemoved — отключение считывателя
Пример журнала для Rutoken S
onReaderAdded: reader added: Aktiv Co. Rutoken S 00 00
onCardInserted: card inserted into reader: Aktiv Co. Rutoken S 00 00, id: ****312568
onCardRemoved: card removed from reader: Aktiv Co. Rutoken S 00 00
onReaderRemoved: reader removed: Aktiv Co. Rutoken S 00 00

Если события для нужного типа устройств не появляются, проверьте, что служба pcscd запущена, драйвер считывателя установлен и в LibraryPath указана корректная библиотека PKCS#11.

Выбор устройства при аутентификации​

Примечание

Выбор устройства из списка доступен только в РЕД ОС.

  • Одно устройство. Если Linux Logon обнаруживает одну смарт-карту или USB-токен, устройство выбирается автоматически. Для Smart Card + PIN после выбора устройства требуется ввести его PIN-код.

  • Несколько устройств в РЕД ОС. Если обнаружено несколько устройств, пользователю предлагается список с порядковым номером, названием устройства и последними символами его идентификатора. Пользователь вводит номер нужного устройства. Для Smart Card + PIN после выбора устройства требуется ввести его PIN-код.

  • Отключение устройства из показанного списка. Отключенное устройство не исчезает из уже отображенного списка, а попытка выбрать его завершается ошибкой аутентификации. Чтобы получить актуальный список, начните аутентификацию заново.