Подключение Smart Card и Smart Card + PIN
Для аутентификации через Linux Logon с помощью смарт-карт и USB-токенов необходимо выполнить дополнительные настройки:
- Установите дополнительные библиотеки для работы с устройствами.
- Установите библиотеки производителей (PKCS#11) для используемых устройств.
- Настройте устройства, которые вы используете: Rutoken ЭЦП / Rutoken Lite, Rutoken S или JaCarta.
- При использовании нескольких устройств или нестандартных путей к библиотекам проверьте настройки параметра
LibraryPathв конфигурационном файлеamsvc.ini. - Проверьте работу устройств по журналу службы
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. Для остальных устройств может потребоваться отдельный драйвер производителя.
Установка библиотек различается в зависимости от операционной системы.
- Astra Linux
- РЕД ОС
Чтобы установить библиотеки, выполните команду:
sudo apt update
sudo apt install pcscd libpcsclite1 libccid
Чтобы установить библиотеки, выполните команду:
sudo dnf install pcsc-lite pcsc-lite-ccid
Далее установите библиотеки производителей, чтобы подключить библиотеку PKCS#11, соответствующую используемому устройству.
Установка библиотек производителей
Для работы Linux Logon со смарт-картами и USB-токенами установите библиотеку PKCS#11, соответствующую используемому устройству:
| Устройство | Компонент | Библиотека |
|---|---|---|
| Rutoken ЭЦП / Rutoken Lite | Библиотека rtPKCS11ECP | librtpkcs11ecp.so |
| Rutoken S | Драйвер ifd-rutokens и OpenSC | opensc-pkcs11.so |
| JaCarta | Пакет jcpkcs11-2 | libjcPKCS11-2.so |
Установите библиотеки только для используемых устройств. Если вы используете устройства разных производителей, установите соответствующие библиотеки для каждого из них.
Настройка устройств Smart Card
Настройте только те устройства, которые вы планируете использовать для аутентификации:
В Astra Linux устройства Smart Card работают со следующими ограничениями:
Графический вход. Выбор смарт-карты или USB-токена из списка недоступен. Для продолжения аутентификации оставьте подключенным одно устройство, используемое для входа.
Если подключено несколько устройств, на экране входа отображается подсказка:
Отключите все смарт-карты и USB-токены, не используемые для аутентификации.Разблокировка графического сеанса. Перед разблокировкой подключите нужную смарт-карту или USB-токен и отключите остальные устройства. В интерфейсе Astra Linux отсутствуют список устройств и подсказки о необходимости подключить карту или отключить лишние устройства.
Настройка Rutoken ЭЦП / Rutoken Lite
Установка библиотек различается в зависимости от операционной системы.
- Astra Linux
- РЕД ОС
Проверьте, что установлены базовые библиотеки службы PC/SC:
dpkg -l pcscd libpcsclite1 libccidЕсли библиотеки отсутствуют, установите их.
Проверьте, что установлена библиотека 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
Проверьте, что установлены базовые библиотеки службы PC/SC:
rpm -q pcsc-lite pcsc-lite-ccidЕсли библиотеки отсутствуют, установите их.
Проверьте, что установлена библиотека PKCS#11 Rutoken:
rpm -qa | grep -i rtpkcs
find /usr/lib64 /usr/lib -name 'librtpkcs11ecp.so*' -lsЕсли библиотека отсутствует, скачайте пакет для РЕД ОС и установите его:
sudo dnf install ./librtpkcs11ecp-<версия>.x86_64.rpm
sudo ldconfig
Укажите библиотеку в параметре
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Перезапустите службу
amdev:sudo systemctl restart amdevПроверьте работу устройства по журналу службы
amdev.
Настройка Rutoken S
Rutoken S работает с Linux Logon через модуль OpenSC. Библиотека Rutoken S не подключается напрямую: в amsvc.ini указывается библиотека opensc-pkcs11.so.
Перед настройкой убедитесь, что на токене Rutoken S инициализировано приложение PKCS#15. Без него токен не сможет работать с Linux Logon.
Чтобы настроить Rutoken S:
- Установите драйвер Rutoken S и модуль OpenSC.
- Проверьте наличие приложения PKCS#15 на токене и при необходимости создайте его.
- Укажите библиотеку OpenSC в
amsvc.ini.
Установка драйвера и OpenSC
Установка различается в зависимости от операционной системы.
- Astra Linux
- РЕД ОС
Проверьте, что специальный драйвер Rutoken S установлен:
dpkg -l | grep -i ifd-rutokens
find /usr/lib /usr/lib64 -path '*pcsc/drivers*' -iname '*rutoken*' -lsЕсли драйвер отсутствует, скачайте пакет для Astra Linux и установите его:
sudo apt install ./ifd-rutokens_<версия>_amd64.debПроверьте, что установлен модуль OpenSC. При необходимости установите его:
dpkg -l opensc
sudo apt install opensc
Проверьте, что специальный драйвер Rutoken S установлен:
rpm -q ifd-rutokens
find /usr/lib64/pcsc/drivers -iname '*rutoken*' -lsЕсли драйвер отсутствует, скачайте пакет для РЕД ОС и установите его:
sudo dnf install ./ifd-rutokens-<версия>.x86_64.rpmПроверьте, что установлен модуль OpenSC. При необходимости установите его:
rpm -q opensc
sudo dnf install opensc
Переподключите Rutoken S и перезапустите службу
pcscd:sudo systemctl restart pcscd.service
Проверка и создание приложения PKCS#15
Подключите Rutoken S и проверьте, что на токене есть приложение PKCS#15:
pkcs15-tool --dumpЕсли приложение отсутствует, команда завершится ошибкой:
Using reader with a card: Aktiv Co. Rutoken S 00 00
PKCS#15 binding failed: Unsupported cardЕсли приложение отсутствует, создайте его:
pkcs15-init --create-pkcs15 --so-pin "<PIN администратора>" --so-puk "" --pin "<PIN пользователя>"ПримечаниеУкажите собственные значения PIN-кодов. PIN администратора для Rutoken S должен содержать от 8 до 16 символов.
Повторите шаг 1 и убедитесь, что приложение создано: в выводе команды будут отображены данные карты (
PKCS#15 Card [Rutoken S]) и объектPIN [Security Officer PIN].Проверьте, что токен доступен через PKCS#11:
pkcs11-tool --module opensc-pkcs11.so -TВ выводе будут отображены модель токена
PKCS#15и его серийный номер (serial num).
Настройка amsvc.ini
Откройте файл
/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Перезапустите службу
amdev:sudo systemctl restart amdevПроверьте работу устройства по журналу службы
amdev.
Настройка JaCarta
Установка библиотек различается в зависимости от операционной системы.
- Astra Linux
- РЕД ОС
Проверьте, что установлены базовые библиотеки PC/SC:
dpkg -l pcscd libpcsclite1 libccidЕсли библиотеки отсутствуют, установите их.
Проверьте, что установлена библиотека PKCS#11 JaCarta:
dpkg -l | grep -iE 'jcpkcs11|jacarta'
find /usr/lib /usr/lib64 -name 'libjcPKCS11-2.so*' -lsЕсли библиотека отсутствует, скачайте дистрибутив JaCarta для Astra Linux в центре загрузки JaCarta и установите пакет
jcpkcs11-2:sudo apt install ./jcpkcs11-2_<версия>_al_x64.deb
sudo ldconfig
Проверьте, что установлены базовые библиотеки PC/SC:
rpm -q pcsc-lite pcsc-lite-ccidЕсли библиотеки отсутствуют, установите их.
Проверьте, что установлена библиотека PKCS#11 JaCarta:
rpm -qa | grep -iE 'jcpkcs11|jacarta'
find /usr/lib64 /usr/lib -name 'libjcPKCS11-2.so*' -lsЕсли библиотека отсутствует, скачайте дистрибутив JaCarta для РЕД ОС в центре загрузки JaCarta и установите пакет
jcpkcs11-2:sudo dnf install ./jcpkcs11-2_<версия>_x64.rpm
sudo ldconfig
Откройте файл
/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Перезапустите службу
amdev:sudo systemctl restart amdevПроверьте работу устройства по журналу службы
amdev.
Настройка библиотек в файле amsvc.ini
По умолчанию библиотеки настроены для одновременной работы с Rutoken ЭЦП / Rutoken Lite и JaCarta. Если вы используете другой вариант, настройте библиотеки вручную.
Чтобы настроить библиотеки:
Откройте файл
/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).
После сохранения настроек перезапустите службу:
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
Проверка работы устройств
После настройки проверьте журнал службы
amdev:journalctl -fu amdevПодключите и отключите устройство. При правильной настройке в журнале фиксируются события:
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-код.
Отключение устройства из показанного списка. Отключенное устройство не исчезает из уже отображенного списка, а попытка выбрать его завершается ошибкой аутентификации. Чтобы получить актуальный список, начните аутентификацию заново.