Подробный гайд: Проброс 11 Рутокенов с Debian на Windows Server через FreeRDP - Часть 4
8. Правильная методика теста на 11 одновременных подключений
Чтобы понять, жесткий ли это лимит “10” или плавающая ошибка, используйте строгий порядок.
Тест 1. Полный сброс
- Перезагрузите сервер.
- Убедитесь, что нет старых сеансов.
- Перезагрузите все ВМ.
- Подключите токены к ВМ.
- В каждой ВМ проверьте:
opensc-tool -l
- Убедитесь, что в каждой ВМ виден ровно один читатель.
Тест 2. Поэтапное подключение
Не подключайте все 11 сессий одновременно.
Сделайте так:
Подключить 5 пользователей.
Подождать 30–60 секунд.
Проверить токены у этих 5.
Подключить еще 3 пользователей.
Подождать 30–60 секунд.
Проверить.
Подключить еще 3 пользователей.
Подождать 30–60 секунд.
Проверить.
Если при одновременном подключении 11 сессий есть сбои, а при поэтапном подключении все 11 работают, проблема в таймаутах, гонке, службе смарт-карт, pcscd, VirtualBox или серверной обработке массового подключения.
Тест 3. Проверка поведения при отключении одного из 10
Подключите 10 пользователей.
Затем:
- Отключите одного пользователя полностью, через logoff.
- Подождите 1–2 минуты.
- Подключите 11-го пользователя.
Если 11-й появляется только после освобождения одного из 10, это похоже на ресурсный лимит или утечку/неосвобождение устройств.
Если 11-й все равно не появляется, но при этом можно переподключить одного из 10 и он зайдет, проблема может быть не в числе 10, а в конкретном пользователе/сессии/токене/ВМ.
Тест 4. Один и тот же пользователь или разные?
Убедитесь, что 11 подключений идут под 11 разными пользователями.
Если использовать одного и того же пользователя, сервер может:
- завершить старый сеанс;
- переподключить существующий;
- не создать новый сеанс;
- повести себя иначе.
Для теста используйте разные учетные записи.
9. Особое внимание: если один Рутокен дает несколько читателей
Это важный момент именно для ограничения “больше 10”.
Проверьте на одной ВМ:
opensc-tool -l
Если один физический Рутокен дает два читателя, например:
Reader 0: Rutoken ...
Reader 1: Rutoken ...
тогда при 11 ВМ сервер может получать уже не 11 устройств, а больше. Если где-то есть скрытое ограничение на количество устройств смарт-карт или сервер плохо обрабатывает дубли, это может выглядеть как “10 пользователей работают, остальные нет”.
Что делать:
- Убедиться, что в каждой ВМ виден только один нужный читатель.
- Отключить лишний драйвер:
libccidилиifd-rutokens, оставив рабочий. - Явно указывать читатель в FreeRDP:
/smartcard:"имя читателя"
- Если устройство имеет контактный и бесконтактный интерфейс, по возможности отключить неиспользуемый интерфейс в драйвере/конфигурации, если это поддерживается.
10. Что делать, если проблема именно в ровно 10 подключениях
Если после всех проверок вы видите устойчивую картину:
10 пользователей через FreeRDP работают
11-й не работает всегда
замена токенов/пользователей не меняет границу
тогда это уже похоже на программный лимит или баг взаимодействия. В этом случае рекомендую следующий порядок.
10.1. Обновите клиентскую связку до актуальной
Это первое и самое важное.
Минимально разумная современная связка:
Debian 11/12 или Ubuntu LTS
FreeRDP 2.10+ / 3.x
pcsc-lite актуальной версии
актуальный драйвер Рутокен от Актив
Очень часто подобные проблемы лечатся именно обновлением клиентской части.
10.2. Проверьте, воспроизводится ли проблема на одной машине с 11 токенами
Если есть техническая возможность, подключите к одной современной Linux-машине все 11 токенов через активный хаб или разные контроллеры.
Затем проверьте локально:
lsusb
opensc-tool -l
pcsc_scan
Должно быть 11 читателей и 11 карт.
Если уже локально видно только 10, проблема в:
pcscd;- драйвере Рутокен;
libccid;- USB-контроллере/хабе;
- питании;
- прошивке токенов.
Если локально все 11 видны, но при пробросе через FreeRDP на сервер уходят только 10, проблема ближе к:
- FreeRDP;
- серверу;
- протоколу смарт-карт RDP;
- ограничениям сервера.
10.3. Соберите полный лог и откройте проблему у вендоров
Если проблема воспроизводится на актуальной клиентской версии, соберите комплект:
На клиенте:
lsusb
dpkg -l | grep -E 'pcscd|libccid|ifd-rutokens|freerdp'
xfreerdp /version
opensc-tool -l
journalctl -u pcscd.service --no-pager | tail -n 200
dmesg | tail -n 200
WLOG_LEVEL=TRACE xfreerdp /v:server /u:user /d:domain /smartcard 2>&1 | tee ~/freerdp-full.log
На сервере:
- события из журнала SmartCard;
- события TerminalServices;
- список сеансов
query user; - скриншот диспетчера устройств с читателями смарт-карт;
- скриншот свойств службы смарт-карт.
Этот комплект нужен для обращения:
- в поддержку Актив по Рутокену;
- в поддержку/сообщество FreeRDP;
- при необходимости к администраторам терминального сервера.
10.4. Попробуйте обходной вариант с распределением по двум серверам
Если лимит или ошибка связана с конкретным сервером 2012 R2, можно распределить пользователей:
1–10 пользователей -> сервер A
11–20 пользователей -> сервер B
Если используется ферма терминальных серверов и брокер подключений, это может стать рабочим обходом. Но это именно обход, если нужно быстро, а не исправление корневой причины.
10.5. Рассмотрите обновление серверной части
Windows Server 2012 R2 — старая система.
Для терминальных сценариев со смарт-картами лучше использовать более новые версии:
Windows Server 2016
Windows Server 2019
Windows Server 2022
Там лучше поддержка современных протоколов, смарт-карт, устройств и исправлений.
Информация предоставлена в ознакомительных целях. Применение описанных настроек в системах, должно осуществляться только после согласования с ответственными за информационную безопасность и в соответствии с требованиями ФСТЭК, ФСБ и иных уполномоченных органов.