Подробный гайд: Проброс 11 Рутокенов с Debian на Windows Server через FreeRDP - Часть 2

Гайд по диагностике и решению проблемы проброса 11 Рутокенов через FreeRDP с Debian на Windows Server. Разбор ошибок VirtualBox, pcscd, драйверов и настроек RDP.

2026.11.09                  


Подробный гайд: Проброс 11 Рутокенов с Debian на Windows Server через FreeRDP - Часть 2Подробный гайд: Проброс 11 Рутокенов с Debian на Windows Server через FreeRDP - Часть 2

5. Проверка гостевого Debian

Это ключевой раздел. Если токен не виден в Debian средствами PC/SC, FreeRDP не сможет его нормально пробросить.

5.1. Установите нужные пакеты

Внутри каждой ВМ должны быть установлены как минимум:

sudo apt-get update
sudo apt-get install pcscd pcsc-tools libccid opensc

Драйвер Рутокен:

ifd-rutokens

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



Проверьте установленные версии:

dpkg -l | grep -E 'pcscd|pcsc-tools|libccid|ifd-rutokens|freerdp'

Также проверьте:

xfreerdp /version

или:

xfreerdp --version

5.2. Проверьте, видит ли ядро сам токен

В ВМ выполните:

lsusb

Рутокен должен быть в списке как устройство.

Если устройства нет, проблема до уровня ОС:

  • USB не проброшен в ВМ;
  • неправильный фильтр VirtualBox;
  • неисправен порт/кабель/хаб;
  • токен не питается;
  • устройство отключается по питанию;
  • токен завис.

Если устройства нет в lsusb, дальнейшая настройка pcscd и FreeRDP не имеет смысла.


5.3. Проверьте PC/SC

Установите/запустите pcscd.

Проверьте статус:

systemctl status pcscd.service
systemctl status pcscd.socket

Если используется pcscd.socket, иногда возникает ситуация, когда служба активируется поздно или не успевает подхватить устройство.

Для более предсказуемой диагностики можно временно перевести pcscd в обычный режим без активации через сокет:

sudo systemctl disable --now pcscd.socket
sudo systemctl enable --now pcscd.service
sudo systemctl restart pcscd.service

Если юнита pcscd.socket нет — это нормально, просто используйте:

sudo systemctl enable --now pcscd.service
sudo systemctl restart pcscd.service

Далее проверьте читателей:

opensc-tool -l

или:

pcsc_scan

Ожидаемый результат:

есть один читатель;
карта вставлена;
есть ATR;
нет ошибок.

Если opensc-tool -l не видит читателя, а lsusb видит устройство, проблема в pcscd или драйвере.


5.4. Проверьте, что драйвер Рутокен подхватывается

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

ls -l /usr/lib/pcsc/drivers/

Там могут быть, например:

ifd-ccid.bundle
ifd-rutokens.bundle

Проверьте зависимости библиотек драйвера:

find /usr/lib/pcsc/drivers -type f -name '*.so*' -exec ldd {} \; | grep -B1 'not found'

Если есть строки not found, значит драйверу не хватает библиотек.


5.5. Проверьте конфликт между libccid и ifd-rutokens

Это очень важный пункт.

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

  • через общий драйвер libccid;
  • через специализированный драйвер ifd-rutokens;
  • иногда система пытается использовать оба варианта, и возникают дубли, конфликты или нестабильность.

Проверьте, сколько читателей показывает система:

opensc-tool -l

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

Например, отключить общий CCID-драйвер:

sudo mkdir -p /root/pcsc-drivers-disabled
sudo mv /usr/lib/pcsc/drivers/ifd-ccid.bundle /root/pcsc-drivers-disabled/
sudo systemctl restart pcscd.service

Затем проверить:

opensc-tool -l
pcsc_scan

Если Рутокен виден нормально — можно оставить только ifd-rutokens.

Если после этого токены перестали видиться, верните драйвер:

sudo mv /root/pcsc-drivers-disabled/ifd-ccid.bundle /usr/lib/pcsc/drivers/
sudo systemctl restart pcscd.service

Затем можно попробовать наоборот: временно отключить ifd-rutokens и оставить libccid, если ваша модель токена нормально с ним работает. Но для Рутокенов обычно лучше использовать актуальный специализированный драйвер от Актив, если он поддерживает конкретную модель.


5.6. Убедитесь, что токен виден именно как смарт-карта, а не только как флешка

Для Рутокен ЭЦП Flash и некоторых других модификаций устройство может иметь несколько функций. Важно, чтобы в гостевом Debian была активна именно смарт-карта/криптографическая часть.



Проверьте:

lsusb
opensc-tool -l

Если opensc-tool -l не видит читателя, но токен виден как накопитель, возможно, устройство переключено не в тот режим, либо драйвер не работает со смарт-картой.


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


5.7. Проверьте права доступа пользователя

Пользователь, из-под которого запускается FreeRDP, должен иметь доступ к USB-устройствам и сокету pcscd. Обычно в Debian это работает из коробки при использовании pcscd, но проверить стоит.

Проверьте группы пользователя:

groups

Иногда полезно добавить пользователя в группу plugdev:

sudo usermod -aG plugdev $USER

После этого нужно выйти из сеанса и зайти заново.

Также проверьте сокет pcscd:

ls -l /var/run/pcscd/

Не должно быть ошибок доступа для пользователя.


5.8. Проверьте, не занят ли токен другим процессом

Если какое-то приложение в Debian уже открыло смарт-карту в монопольном режиме, могут быть проблемы.

Временно закройте:

  • pcsc_scan, если он запущен постоянно;
  • графические утилиты Рутокен;
  • браузеры;
  • криптографические агенты;
  • scdaemon, если он есть;
  • любые приложения, работающие с токеном.

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

sudo systemctl restart pcscd.service

Затем снова проверить:

opensc-tool -l

5.9. Важный момент: порядок подключения

Очень частая ошибка:

  1. ВМ загружена.
  2. pcscd уже работает.
  3. Токен подключили в ВМ уже после запуска xfreerdp.
  4. FreeRDP не видит читателя или видит его поздно.

Правильный порядок для диагностики:

1. Подключить токен к ПК/ВМ.
2. Дождаться появления в lsusb.
3. Перезапустить pcscd.
4. Убедиться, что токен виден в opensc-tool / pcsc_scan.
5. Только после этого запускать xfreerdp.

Команды:

sudo systemctl restart pcscd.service
sleep 2
opensc-tool -l

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


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

Комментарии

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