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

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

2026.11.09                  


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

6. Проверка FreeRDP

6.1. Проверьте версию и поддержку смарт-карт

xfreerdp /version

или:

xfreerdp --version

Проверьте наличие опции смарт-карт:

xfreerdp --help | grep -i smartcard

Должна быть опция вроде:

/smartcard:<name>

или просто:

/smartcard

Если xfreerdp --help не показывает смарт-карты, значит сборка без поддержки смарт-карт или отсутствует нужный модуль.


6.2. Обновите FreeRDP



Это один из самых важных шагов. Debian 9 и старый FreeRDP 2 из stretch-backports — очень плохая основа для диагностики таких проблем.

Рекомендуемый минимальный ориентир:

актуальный Debian LTS;
FreeRDP 2.10+ или FreeRDP 3.x;
актуальный pcsc-lite;
актуальный драйвер Рутокен.

Если есть возможность, лучше обновить ВМ до:

Debian 11 / Debian 12 / современный Ubuntu LTS

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


6.3. Запускайте подключение с подробным логом

Для диагностики используйте логирование.

Простой вариант:

xfreerdp \
  /v:ADDRESS \
  /u:USER \
  /d:DOMAIN \
  /smartcard \
  /log-level:TRACE \
  2> ~/freerdp-smartcard.log

Например:

xfreerdp /v:192.168.1.10 /u:user1 /d:domain.local /smartcard /log-level:TRACE 2> ~/freerdp-smartcard.log

Можно также использовать:

WLOG_LEVEL=TRACE xfreerdp /v:ADDRESS /u:USER /d:DOMAIN /smartcard 2>&1 | tee ~/freerdp-smartcard.log

В логе ищите строки, связанные с:

smartcard
scard
reader
PCSC
SCARD_E_NO_READERS_AVAILABLE
SCARD_E_NO_SERVICE
SCARD_E_SERVICE_STOPPED
SCARD_F_COMM_ERROR
SCARD_E_TIMEOUT

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


Если читатель вообще не найден, проблема в pcscd/драйвере/USB.


6.4. Попробуйте явно указать читателя

Если в ВМ вдруг видно несколько читателей, лучше явно указать нужный.

Сначала получите имя:

opensc-tool -l

Пример условного имени:

Aktiv Co. Rutoken Lite 00 00

Затем попробуйте:

xfreerdp /v:ADDRESS /u:USER /d:DOMAIN \
  /smartcard:"Aktiv Co. Rutoken Lite 00 00" \
  /log-level:TRACE

Если имя содержит пробелы — обязательно кавычки.

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

/smartcard

но тогда убедитесь, что в системе только один нужный читатель.


6.5. Временно отключите лишние функции сеанса

Для чистоты эксперимента можно запустить минимальный сеанс:

xfreerdp \
  /v:ADDRESS \
  /u:USER \
  /d:DOMAIN \
  /smartcard \
  -clipboard \
  -themes \
  -wallpaper \
  /network:lan \
  /log-level:TRACE

Это не всегда влияет на смарт-карты, но помогает исключить побочные эффекты других каналов.


6.6. Попробуйте разные режимы безопасности

Иногда смарт-карточные сценарии чувствительны к режиму аутентификации и согласованию безопасности.

Попробуйте по очереди:

xfreerdp /v:ADDRESS /u:USER /d:DOMAIN /smartcard /sec:nla
xfreerdp /v:ADDRESS /u:USER /d:DOMAIN /smartcard /sec:tls
xfreerdp /v:ADDRESS /u:USER /d:DOMAIN /smartcard /sec:rdp

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


6.7. Проверьте, что FreeRDP не sandboxed

Если вы используете не обычный пакет xfreerdp, а, например, Flatpak/Snap/AppImage, возможны ограничения доступа к pcscd или USB. Для диагностики используйте нативный пакет из репозитория дистрибутива.


7. Проверка сервера Windows Server 2012 R2


7.1. Проверьте службу смарт-карт

На сервере выполните:

sc query SCardSvr

или откройте:

services.msc

Служба:

Smart Card
Смарт-карта

должна быть:

Status: Running
Startup type: Automatic

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

Smart Card Certificate Propagation
Распространение сертификата смарт-карты

Обычно она может быть в ручном режиме, но должна нормально запускаться по запросу.


7.2. Проверьте политики проброса смарт-карт

Проверьте групповые политики:



Computer Configuration
 -> Administrative Templates
 -> Windows Components
 -> Remote Desktop Services
 -> Remote Desktop Session Host
 -> Device and Resource Redirection

Параметр:

Allow smart card device redirection

должен быть:

Not Configured

или:

Enabled

Параметр:

Do not allow smart card device redirection

не должен быть включен.

Также проверите свойства коллекции удаленных рабочих столов:

Server Manager
 -> Remote Desktop Services
 -> Collections
 -> Properties
 -> Client Settings

Смарт-карты должны быть разрешены.


7.3. Проверьте журнал событий смарт-карт

На сервере откройте eventvwr.msc и посмотрите:

Applications and Services Logs
 -> Microsoft
 -> Windows
 -> SmartCard
 -> Operational

Если события нет или журнал не включен, можно включить его.

Также полезны журналы:

Applications and Services Logs
 -> Microsoft
 -> Windows
 -> TerminalServices-LocalSessionManager
 -> Operational

и:

Applications and Services Logs
 -> Microsoft
 -> Windows
 -> TerminalServices-RemoteConnectionManager
 -> Operational

Ищите события вокруг момента подключения 11-го пользователя.


7.4. Используйте certutil, а не только панель Рутокен

В сеансе пользователя, который сообщает об ошибке, выполните:

certutil -scinfo

Если certutil пишет, что смарт-карта недоступна, а служба работает, значит читатель не появился в сеансе.


Если certutil видит карту, а панель Рутокен — нет, проблема в панели/кэше/драйвере панели.


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

На терминальном сервере должна быть актуальная версия:

  • панели управления Рутокен;
  • драйверов Рутокен;
  • криптопровайдера, если используется.

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


Если на сервере установлена очень старая панель Рутокен, она может некорректно работать с новыми токенами или некорректно отображать состояние устройств в сеансах.


7.6. Очистите скрытые устройства смарт-карт

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

Сделайте так:

1. Откройте командную строку:

set devmgr_show_nonpresent_devices=1
start devmgmt.msc

2. В диспетчере устройств включите:

Вид -> Показать скрытые устройства

3. Раскройте:

Устройства чтения смарт-карт
  1. Удалите старые/серые/неактивные устройства.
  2. Перезагрузите сервер.
    Это может помочь, если проблема связана с накоплением призрачных устройств.

7.7. Перед массовым тестом завершите все старые сеансы

Не просто отключите пользователей, а именно завершите сеансы.

Проверить сеансы можно:

query user
query session

Для завершения сеанса:

logoff SESSION_ID

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


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


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

Комментарии

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