Xrdp-usb

Материал из ALT Linux Wiki

Данный компонент пробрасывает широкий спектр устройств, начиная от 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 смотрим идентификаторы.

Lsusb.png

Необходимые для нас данные на скриншоте сверху это идентификатор (в нашем случае это ID 13fe:4300). Теперь нам нужно добавить его в файл /etc/xrdp-usb

# vim /etc/xrdp-usb

Etc-xrdp-usb.png

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

Проброс

На терминальный сервер (Альт 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