Bug 50711

Summary: xrdp не работает проброс usb
Product: Sisyphus Reporter: AVG <nikul-sasha>
Component: xrdpAssignee: Andrey Cherepanov <cas>
Status: NEW --- QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: antohami, cas, lakostis, lav, lepata, novopoltsevdv, tatyana
Version: unstable   
Hardware: x86_64   
OS: Linux   

Description AVG 2024-06-22 01:07:21 MSK
С актуальной версией xrdp (0.10.0-alt0.p10.1) не работает проброс usb.
Версия ядра 6.1.90-un-def-alt1.
Важно! Для воспроизведения ошибки в системе (RDP-сервер) не должно быть следов от предыдущих версий пакета xrdp (в идеале свежеустановленная ОС).

На сервере (RDP-сервер):
1. Установил необходимые пакеты с их зависимостями
# apt-get install xrdp xrdp-usb-session
2. Добавил службы в автозапуск:
# systemctl enable xrdp xrdp-sesman usbip-client (последний сервис равнозначен добавлению модуля 'vhci-hcd' в '/etc/modules')
3. Чтобы системе хватало прав для монтирования usb-устройств, изменил политику безопасности службы 'udisks' в файле '/usr/share/polkit-1/actions/org.freedesktop.UDisks2.policy'.
В самом низу блока <action id="org.freedesktop.udisks2.filesystem-mount-other-seat"> изменил следующее:
    <defaults>
      <allow_any>auth_admin</allow_any>
      <allow_inactive>auth_admin</allow_inactive>
      <allow_active>yes</allow_active>
    </defaults>
на
    <defaults>
      <allow_any>yes</allow_any>
      <allow_inactive>yes</allow_inactive>
      <allow_active>yes</allow_active>
    </defaults>
4. Добавил пользователя rdpuser в группы tsusers и fuse:
# usermod -aG fuse,tsusers rdpuser
5. Перезагрузил сервер

На клиенте (машина, подключающаяся к RDP-серверу):

1. Установил необходимые пакеты с их зависимостями
# apt-get install xfreerdp xrdp-usb-terminal freerdp-plugins-standart
2. Добавил пользователя testuser в группу disk:
# gpasswd -a testuser disk
3. Вставил флешку в ПК, узнал её идентификатор (команда lsusb) и добавил этот идентификатор в файл '/etc/xrdp-usb' для его проброса в RDP-сессию.
4. Экспортировал прописанное в файле '/etc/xrdp-usb' usb-устройство для RDP-сессии:
# usbip-export
5. Запустил RDP-сеанс с учетной записи testuser:
$ xfreerdp /v:<IP> /u:rdpuser /p:Qwerty123

Ожидаемый результат:
Проброшен usb-носитель в RDP-сессию

Реальный результат:
usb-носитель не проброшен

Дополнительно:
Если я откатываю пакет xrdp на версию 0.9.25.1-alt1 (вместе с зависимостью xorg-drv-xrdp-0.9.24-alt1), то проброс работает, мало того что работает, так если после установки этой версии xrdp установить актуальную (на текущий момент 0.10.0-alt0.p10.1), то проброс будет работать уже и в актуальной версии.
Comment 1 Tatyana Gagina 2024-07-15 18:11:46 MSK
Ошибка воспроизводится на Sisyphus с версией xrdp-0.10.0-alt4
 uname -a
Linux kworkstation-10-3-x86-64-20240621.localdomain 6.6.38-un-def-alt1 #1 SMP PREEMPT_DYNAMIC Tue Jul  9 12:12:21 UTC 2024 x86_64 GNU/Linux

Проверялось на p10, аналогично.
Версия на p10: xrdp-0.10.0-alt0.p10.1.
 uname -a
Linux workstation-10-2-x86-64-20240709.localdomain 6.1.94-un-def-alt1 #1 SMP PREEMPT_DYNAMIC Mon Jun 24 12:14:35 UTC 2024 x86_64 GNU/Linux
Comment 2 Антон Мидюков 2025-09-28 21:25:46 MSK
Предлагаю проверить, какой из конфигурационных файлов версии 0.9.25.1-alt1 починит (или не починит) xrdp:
$ rpm -qc xrdp
/etc/pam.d/xrdp-sesman
/etc/sysconfig/xrdp
/etc/xrdp/cert.pem
/etc/xrdp/gfx.toml
/etc/xrdp/key.pem
/etc/xrdp/rsakeys.ini
/etc/xrdp/sesman.ini
/etc/xrdp/xrdp.ini
Comment 3 Новопольцев Дмитрий 2025-10-02 16:42:51 MSK
xrdp-0.10.4.1-alt4 xrdp-usb-session-1.2-alt1 libusbip-5.10-alt1 usbip-5.10-alt1 mate-reduced-resource-0.2-alt1
Alt Education XFCE 11 x86_64
Alt Workstation 11 x86_64

На данный момент единственной проблемой осталось то, что по умолчанию порт 3240 закрыт

При открытии порта в firewalld (на стороне USB хоста) usb устройства успешно пробрасываются и монтируются

Сама проблема, судя по логике работы usbip-attach, который просто достаёт IP последнего RDP подключения через "journalctl -u xrdp-sesman" и подкидывает его в команду usbip, получая через неё список всех устройств и подключая их в цикле, с xrdp связанна не была

В качестве предложения - можно дополнить руководство по установке usbip командой firewall-cmd --zone=public --add-port=3240/tcp --permanent && firewall-cmd --reload
Comment 4 Антон Мидюков 2025-10-02 16:45:34 MSK
(Ответ для Новопольцев Дмитрий на комментарий #3)
> xrdp-0.10.4.1-alt4 xrdp-usb-session-1.2-alt1 libusbip-5.10-alt1
> usbip-5.10-alt1 mate-reduced-resource-0.2-alt1
> Alt Education XFCE 11 x86_64
> Alt Workstation 11 x86_64
> 
> На данный момент единственной проблемой осталось то, что по умолчанию порт
> 3240 закрыт
> 
> При открытии порта в firewalld (на стороне USB хоста) usb устройства успешно
> пробрасываются и монтируются
> 
> Сама проблема, судя по логике работы usbip-attach, который просто достаёт IP
> последнего RDP подключения через "journalctl -u xrdp-sesman" и подкидывает
> его в команду usbip, получая через неё список всех устройств и подключая их
> в цикле, с xrdp связанна не была
> 
> В качестве предложения - можно дополнить руководство по установке usbip
> командой firewall-cmd --zone=public --add-port=3240/tcp --permanent &&
> firewall-cmd --reload

Елена Мишина, это предложение вам.
Comment 5 Elena Mishina 2025-10-02 17:47:05 MSK
Добавлено примечание: https://www.altlinux.org/USBIP#Настройка_сервера