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

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

2026.11.09                  


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

16. Временно проверьте с отключенным SELinux

В РЕД ОС может быть включен SELinux. Он иногда блокирует доступ к USB, PC/SC или файлам КриптоПро.

Проверьте режим:

getenforce

Если вывод:

Enforcing

Временно переведите в разрешающий режим:

sudo setenforce 0

Затем переподключите токен и снова проверьте:

pcsc_scan
/opt/cproc/bin/csptest -enum

Если после отключения SELinux всё заработало, значит нужно не оставлять систему в permissive, а добавить политику.



Посмотрите свежие запреты:

sudo ausearch -m avc -ts recent

Можно отфильтровать:

sudo ausearch -m avc -ts recent | grep -Ei 'pcscd|pcsc|usb|cprocsp|rutoken'

Если есть запреты, можно сгенерировать локальный модуль политики:

sudo ausearch -m avc -ts recent > /tmp/avc.log
sudo audit2allow -i /tmp/avc.log -M local_rutoken
sudo semodule -i local_rutoken.pp
sudo setenforce 1

Если audit2allow отсутствует, установите:

sudo dnf install policycoreutils-python policycoreutils-python-utils

или аналогичный пакет для РЕД ОС.


17. Отключите USB autosuspend для Рутокен

Иногда токен пропадает или не инициализируется из-за энергосбережения USB.

Создайте правило udev:

sudo tee /etc/udev/rules.d/99-rutoken-no-autosuspend.rules > /dev/null <<'EOF'
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="0a89", ATTR{idProduct}=="0025", ATTR{power/autosuspend}="-1"
EOF

Перезагрузите правила:

sudo udevadm control --reload-rules

После этого переподключите Рутокен. Если у вас другая модель Рутокен, idProduct может отличаться.

Ваш случай:

idVendor  = 0a89
idProduct = 0025

18. Если это виртуальная машина или удаленный доступ

VirtualBox

Если РЕД ОС работает в VirtualBox:

  1. В настройках ВМ включите USB 2.0 или USB 3.0.
  2. Добавьте USB-фильтр для устройства:
Vendor ID: 0a89
Product ID: 0025
  1. Убедитесь, что токен не занят хост-системой.
  2. После добавления фильтра переподключите токен и перезапустите ВМ.

VMware / Proxmox / KVM

Нужен полноценный USB passthrough именно устройства 0a89:0025, а не проброс всего хаба.


RDP / VDI

Если вы подключаетесь к РЕД ОС удаленно, токен должен быть корректно проброшен в сессию. Простого подключения к локальному компьютеру пользователя недостаточно, если операционная система работает на сервере.


Для FreeRDP обычно используется что-то вроде:

/usb:id,dev:0a89:0025

или параметры проброса устройств в конкретном клиенте.


19. Проверка зависимостей драйвера

Если драйвер Рутокен установлен, но pcscd всё равно не может его загрузить, проверьте отсутствующие библиотеки.

Найдите .so-файлы внутри установленных драйверов:

find /usr/lib/pcsc/drivers /usr/lib64/pcsc/drivers -name '*.so' 2>/dev/null

Для каждого файла можно проверить зависимости, например:

ldd /usr/lib/pcsc/drivers/librtpcsc.bundle/Contents/Linux/librtpcsc.so

Если в выводе есть строки:

not found

нужно установить соответствующую библиотеку. Чаще всего это зависимости от libusb, libpcsclite, librt, libc и т.п.


20. Полный диагностический набор команд

Если проблема сохранится, соберите один файл с диагностикой:

{
  echo "=== OS ==="
  cat /etc/os-release
  uname -a

  echo "=== USB ==="
  lsusb

  echo "=== Packages ==="
  rpm -qa | grep -Ei 'pcsc|ccid|rutoken|cprocsp|lsb'

  echo "=== PCSC drivers ==="
  find /usr/lib /usr/lib64 -type d -name '*.bundle' 2>/dev/null

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

  echo "=== pcscd log ==="
  sudo cat /tmp/pcscd-rutoken.log 2>/dev/null

  echo "=== journal pcscd ==="
  sudo journalctl -u pcscd -b --no-pager | tail -n 100

  echo "=== CryptoPro packages ==="
  rpm -qa | grep -Ei 'cprocsp|lsb-cprocsp'

  echo "=== CryptoPro enum ==="
  /opt/cproc/bin/csptest -enum 2>/dev/null

  echo "=== CryptoPro keyset enum ==="
  /opt/cproc/bin/csptest -keyset -enum -fqcn 2>/dev/null

  echo "=== SELinux ==="
  getenforce
  sudo ausearch -m avc -ts recent | tail -n 100
} > ~/rutoken-diag.txt


Файл:

~/rutoken-diag.txt

можно приложить к обращению в поддержку Актив, РЕД ОС или КриптоПро.


21. Краткий вероятный сценарий исправления именно вашего случая

Ваш случай почти наверняка лечится так:

  1. Установить драйвер Рутокен для PC/SC.
  2. Убедиться, что появился librtpcsc.bundle или ifd-rutoken.bundle.
  3. Отключить конфликтующий ifd-ccid.bundle.
  4. Перезапустить pcscd.
  5. Проверить pcsc_scan.
  6. Проверить КриптоПро.

Команды коротко:

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

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

# Далее установить драйвер Актив:
# либо из репозитория, например:
sudo dnf install -y ifd-rutoken || sudo dnf install -y librtpcsc

# Если драйвер скачан с сайта Актив:
# распаковать архив и выполнить sudo ./install.sh
# либо:
# sudo dnf localinstall ./*.rpm

# Проверить, что драйвер появился:
find /usr/lib /usr/lib64 -type d -name '*.bundle' 2>/dev/null

# Временно отключить 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 /usr/sbin/pcscd -f -d

В соседнем терминале:

pcsc_scan

Если токен появился, остановить отладочный pcscd через Ctrl+C и запустить службу:

sudo systemctl start pcscd.socket pcscd.service 2>/dev/null || sudo service pcscd start

22. Если ничего не помогло

Если после всех шагов в pcscd -d всё равно остается:

Aktiv Rutoken lite init failed

Или драйвер Рутокен установлен, но устройство не инициализируется:

  1. Попробуйте другой Рутокен, если есть.
  2. Попробуйте этот Рутокен на другой ОС, например на Windows, через «Панель управления Рутокен».
  3. Если на другом компьютере токен не виден вообще или определяется некорректно, возможна аппаратная неисправность или сбой прошивки токена.
  4. Если на другом компьютере токен работает, а на РЕД ОС нет — проблема в версии драйвера Актив, версии pcsc-lite, ядре, SELinux или USB-пробросе.
  5. Обновите систему:
sudo dnf update

или:

sudo yum update

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

sudo reboot

Важно

Главная причина по вашим логам:

pcscd видит Рутокен, но пытается инициализировать его через ifd-ccid и получает init failed

Значит нужно:

  1. Установить родной драйвер Рутокен для PC/SC: обычно librtpcsc или ifd-rutoken.
  2. Отключить или убрать конфликтующий ifd-ccid.bundle, если других смарт-карт нет.
  3. Убедиться, что pcsc_scan видит токен.
  4. Только после этого проверять КриптоПро через:
/opt/cproc/bin/csptest -enum
/opt/cproc/bin/csptest -keyset -enum -fqcn

Если после установки драйвера Рутокен и отключения ccid токен появляется в pcsc_scan, но не появляется в КриптоПро, значит отдельно нужно доустановить компонент КриптоПро с поддержкой Рутокен и проверить права/SELinux.


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


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

Комментарии

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