Xrdp-usb
Данный компонент пробрасывает широкий спектр устройств, начиная от USB-веб-камер, до USB-токенов и смарт-карт.
Схема работы подключения usb-устройств через xfreerdp. Все дальнейшие действия выполняются под рутом su-.
Терминальный сервер - сервер
Терминальный клиент - клиент
Сервер
Перед началом работы, необходимо обновить систему. Обновить систему необходимо как на терминальном сервере (Альт 8 СП), так и на терминальном клиенте (в моем случае это Альт Образование)
# apt-get update # apt-get dist-upgrade
На терминальном сервере (Альт 8 СП) устанавливаем xrdp-usb-session:
# apt-get install xrdp-usb-session
xrdp-usb-session для сеанса xrdp-sesman добавляет запуск автоподключения всех USB-устройств с клиента.
Далее, после установки xrdp-usb-session необходимо перезапустить службу xrdp-sesman.
# systemctl restart xrdp-sesman.service
Клиент
Теперь, переходим к терминальному клиенту (В моем случае, Альт Образование).
Как мы уже говорили выше, обновить систему необходимо как на терминальном сервере, так и на клиенте.
# apt-get update # apt-get dist-upgrade
Устанавливаем xrdp-usb-terminal:
# apt-get install xrdp-usb-terminal
А так же, после установки xrdp-usb-terminal, нам необходимо добавить нашего пользователя в группу disk:
# usermod -a -G disk alt-1
Там где alt-1, необходимо ваше имя пользователя
Далее, после успешной установки xrdp-usb-terminal и после того, как мы добавили нашего пользователя в группу disk, нам необходимо перезагрузить систему (чтобы загрузились все модули) и запустилась служба usbipd. По умолчанию никакие устройства не передаются. Чтобы они передавались, необходимо отредактировать файл xrdp-usb.
Первым делом в терминале с помощью команды lsusb смотрим идентификаторы.
Необходимые для нас данные на скриншоте сверху это идентификатор (в нашем случае это ID 13fe:4300). Теперь нам нужно добавить его в файл /etc/xrdp-usb
# vim /etc/xrdp-usb
Указывать можно сколько угодно идентификаторов, но необходимо быть осторожным с идентификаторами мыши и клавиатуры. Если они будут проброшены, то они не будут доступны на локальной системе.
Проброс
На терминальный сервер (Альт 8 СП) необходимо установить openuds-client. Openuds при подключении самостоятельно экспортирует указанные устройства.
Для того, чтобы обратиться к терминальному серверу (через Remmina или xfreerdp), то перед подключением необходимо на клиенте запустить программу usbip-export.
Далее, со стороны клиента подключаемся к терминальному серверу:
# usbip attach -r 192.168.0.1 -b 3-2
- Ключ -r указывает ip-адрес терминального сервера
- Ключ -b указывает идентификатор устройства, который мы отредактировали в файле /etc/xrdp-usb, а так же, который был подтвержден посредством команды usbip-export
При ошибках связанных с подключением, рекомендуется проверить настройки брандмауэра и проверить соответствие версий приложения usbip