Подробная гайд-инструкция по устранению ошибки инициализации Рутокен в РЕД ОС 7.2 - Часть 1

Подробная инструкция по устранению ошибки инициализации Рутокен в РЕД ОС 7.2. Настройка pcscd, установка драйверов и интеграция с КриптоПро CSP 5.

2026.11.09                  


Подробная гайд-инструкция по устранению ошибки инициализации Рутокен в РЕД ОС 7.2 - Часть 1Подробная гайд-инструкция по устранению ошибки инициализации Рутокен в РЕД ОС 7.2 - Часть 1

Разбираем проблему пока не в КриптоПро, а на уровне PC/SC:

  • lsusb видит устройство: ID 0a89:0025 — это токен Актив, судя по логу pcscd, Rutoken lite.
  • pcsc_scan не видит ни одного считывателя, т.е. подсистема PC/SC не зарегистрировала токен как смарт-карту.

- В отладке pcscd видно ключевую ошибку:

Attempting startup of Aktiv Rutoken lite 00 00 using /usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Linux/libccid.so
...
Aktiv Rutoken lite init failed.
Failed adding USB device: Aktiv Rutoken lite



Это означает: система обнаружила токен, но PC/SC пытается работать с ним через универсальный драйвер ifd-ccid, а для данного Рутокена нужен родной драйвер Актив, либо ccid конфликтует/не может корректно инициализировать именно эту модель.


1. Базовая проверка оборудования

Перед программными правками исключите простые аппаратные причины:

  1. Подключите Рутокен напрямую в порт компьютера, без USB-хаба, удлинительного кабеля, док-станции или KVM.
  2. Попробуйте другой USB-порт, желательно USB 2.0.
  3. Если это виртуальная машина или удаленный доступ, проверьте корректность проброса USB.
  4. Переподключите токен после загрузки ОС.
  5. Проверьте реакцию ядра в момент подключения:
sudo dmesg -w

Вставьте Рутокен. В выводе должны появляться строки usb, new full-speed USB device, Aktiv и т.п.


Если в dmesg есть ошибки вида:

device descriptor read/64, error -71
unable to enumerate USB device
reset full-speed USB device number ...

пробуйте другой порт/кабель/компьютер. Это уже похоже на USB-проблему, а не на драйвер.


2. Остановите все лишние процессы PC/SC

Иногда в системе может остаться несколько процессов pcscd, либо служба запущена через сокет.

Остановите всё:

sudo systemctl stop pcscd.socket pcscd.service 2>/dev/null || true
sudo service pcscd stop 2>/dev/null || true
sudo killall pcscd 2>/dev/null || true

Проверьте, что процессов нет:

ps aux | grep [p]cscd

Вывод должен быть пустым или не содержать активных pcscd.


3. Установите базовые пакеты PC/SC

В РЕД ОС 7.2 обычно используется dnf, но если нет — используйте yum.

sudo dnf clean all
sudo dnf install -y pcsc-lite pcsc-lite-libs
sudo dnf install -y pcsc-tools || echo "pcsc-tools не установлен, но он нужен только для утилиты pcsc_scan"

Если dnf отсутствует:

sudo yum install -y pcsc-lite pcsc-lite-libs pcsc-tools

После установки пока не запускайте pcscd постоянно — сначала лучше проверить его в режиме отладки.


4. Установите драйвер Рутокен для PC/SC

Это ключевой шаг. Ошибка Aktiv Rutoken lite init failed через ifd-ccid обычно лечится установкой драйвера Актив.

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

Поищите пакеты:

sudo dnf search rutoken
sudo dnf search ifd

В репозитории могут быть пакеты с названиями вида:

ifd-rutoken
librtpcsc
rutoken-driver

Установите подходящий, например:

sudo dnf install ifd-rutoken

или:

sudo dnf install librtpcsc

Если доступны оба, обычно достаточно одного. Если не уверены, какой именно нужен для вашей модели, лучше использовать официальный комплект Актив, см. ниже.


Вариант 2. Официальный драйвер Актив Рутокен

Если в репозитории РЕД ОС драйвера нет или он старый:

  1. Зайдите на сайт Актив/Рутокен в раздел поддержки и загрузки драйверов.
  2. Скачайте драйвер для РЕД ОС 7 или, если отдельного нет, для RHEL/CentOS 7 / RPM-систем.
  3. Нужен пакет для архитектуры x86_64.
  4. Распакуйте архив и установите.

Обычно внутри есть скрипт установки, например:

tar -xf rutoken-*.tar.gz
cd rutoken-*
sudo ./install.sh

Если скрипта нет и лежат RPM-пакеты:

sudo dnf localinstall ./*.rpm

или:

sudo yum localinstall ./*.rpm

vили вручную:

sudo rpm -Uvh ./*.rpm

Но лучше именно dnf/yum localinstall, чтобы автоматически подтянулись зависимости.

Обычно для Рутокен ставятся пакеты, в именах которых встречаются:

librtpcsc
librtpkcs11ecp
librtengine
ifd-rutoken

Для обнаружения токена через pcscd критичен именно PC/SC-драйвер, чаще всего это librtpcsc или ifd-rutoken.




5. Проверьте, что драйвер Рутокен действительно установлен

Проверьте каталоги драйверов PC/SC:

find /usr/lib /usr/lib64 -type d -name '*.bundle' 2>/dev/null

Вы должны увидеть что-то вроде:

/usr/lib/pcsc/drivers/librtpcsc.bundle
/usr/lib/pcsc/drivers/ifd-rutoken.bundle
/usr/lib64/pcsc/drivers/librtpcsc.bundle
/usr/lib64/pcsc/drivers/ifd-rutoken.bundle

Также проверьте, что в файлах драйвера упоминается Vendor ID 0a89:

grep -R -Ei "0a89|0A89" /usr/lib/pcsc/drivers/*/Contents/Info.plist /usr/lib64/pcsc/drivers/*/Contents/Info.plist 2>/dev/null

Если вывода нет, значит драйвер Рутокен не установлен, установлен не тот драйвер или он установлен не в тот каталог, который использует pcscd.


6. Важный момент: конфликт с драйвером ifd-ccid

Ваш лог показывает, что токен пытается инициализировать ifd-ccid.bundle.

Если после установки родного драйвера Рутокен в отладке всё равно видно:

using /usr/lib/pcsc/drivers/ifd-ccid.bundle/...
...
init failed

значит ccid перехватывает устройство. Если у вас нет других смарт-карт/ридеров, которым нужен ccid, его лучше временно отключить.

Безопасное отключение ccid

for d in /usr/lib/pcsc/drivers /usr/lib64/pcsc/drivers; do
  if [ -e "$d/ifd-ccid.bundle" ]; then
    sudo mv "$d/ifd-ccid.bundle" "$d/ifd-ccid.bundle.disabled"
  fi
done

Либо удалите пакет:

sudo dnf remove ccid

или:

sudo yum remove ccid

Если у вас есть другие смарт-карты, например банковские или иные считыватели, удаление ccid может их отключить. Тогда лучше использовать вариант с переименованием .bundle, чтобы можно было быстро вернуть обратно.


Вернуть обратно можно так:

for d in /usr/lib/pcsc/drivers /usr/lib64/pcsc/drivers; do
  if [ -e "$d/ifd-ccid.bundle.disabled" ]; then
    sudo mv "$d/ifd-ccid.bundle.disabled" "$d/ifd-ccid.bundle"
  fi
done

7. Проверьте, что драйвер лежит в правильном каталоге

Иногда в РЕД ОС/RHEL-подобных системах возникает ситуация: pcscd ищет драйверы в /usr/lib/pcsc/drivers, а пакет установил их в /usr/lib64/pcsc/drivers, или наоборот.

Посмотрите, где у вас лежат .bundle:

find /usr/lib /usr/lib64 -type d -name '*.bundle' 2>/dev/null

Если, например, драйвер Рутокен есть только в /usr/lib64/pcsc/drivers, а pcscd в отладке использует /usr/lib/pcsc/drivers, можно сделать символические ссылки:

sudo mkdir -p /usr/lib/pcsc/drivers

for b in /usr/lib64/pcsc/drivers/*.bundle; do
  if [ -e "$b" ]; then
    sudo ln -sf "$b" /usr/lib/pcsc/drivers/
  fi
done

Если наоборот — сделайте ссылки из /usr/lib в /usr/lib64.


Информация предоставлена в ознакомительных целях. Применение описанных настроек в системах, должно осуществляться только после согласования с ответственными за информационную безопасность и в соответствии с требованиями ФСТЭК, ФСБ и иных уполномоченных органов.


Статью подготовил: Аверко Денис Сергеевич @Nymexis г. Омск (специалист по ЗИ)

Комментарии

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