Перейти к содержанию

Перенаправление USB

Общие сведения

Перенаправление USB-устройств с хостовой машины на удаленную в Space Client реализовано с помощью трех технологий:

Перенаправление USB-устройств на виртуальную машину:

  • RemoteFX USB

    Поддерживает подключение по протоколу RDP.

  • USBREDIR

    Поддерживает подключение по протоколам SPICE, RDP, GLINT и Loudplay.

Перенаправление USB-устройств на физическую машину:

  • USB over IP

    Поддерживает подключение по протоколам SPICE, RDP, GLINT.

Для использования данного функционала необходимо выполнение следующих условий:

  • Пользователь должен иметь право на перенаправление USB.

  • Если Space Client запущен на ОС Linux, то пользователь должен иметь разрешение на открытие USB.

    Для разрешения открытия USB необходимо выполнить одно из трех действий:

    • Выполнить команду chmod 666 для устройства.
    • Добавить пользователя в группу, владеющую устройством.
    • Изменить разрешения устройства.
  • В Web-интерфейсе SpaceVM у ВМ должен быть добавлен USB-контроллер nec-xhci (USB3.0).

    Виртуальные машины - <ВМ> - USB-устройства -
    Подключить USB-устройство.

  • Если удаленная машина работает под управлением ОС Windows 7 или Windows Server 2008, то для корректной работы на этих машинах должен быть установлен драйвер NEC USB 3.0 Driver.

Примечание

В случае расхождения разрешений в Space Client и Space Disp решающими будут разрешения, установленные на стороне Space Disp.


Способы перенаправления USB

RemoteFX USB

Примечание

RemoteFX USB - единственный способ перенаправления USB для RDS-пула.

Виртуальная машина должна быть размещена на хосте с поддержкой RemoteFX (ОС Windows Server 2008 R2 SP1 и новее).

  • Выполнить в терминале команду:

    gpedit
    
  • В открывшемся окне перейти по пути Политика Локальный компьютер - Конфигурация компьютера - Административные шаблоны - Компоненты Windows - Службы удаленных рабочих столов - Узел сеансов удаленных рабочих столов - Перенаправление устройств и ресурсов.

  • Перевести политику Не разрешать перенаправление поддерживаемых самонастраиваемых устройств в состояние Отключено.

  • Выполнить в терминале команду:

    gpupdate /force
    
  • После запуска Space Client необходимо перейти в Настройки - RDP и нажать на кнопку Выбрать USB для перенаправления.

    Для автоматического перенаправления USB-устройств после подключения к ВМ необходимо включить опцию Запоминать перенаправленные USB.

  • В открывшемся окне выбрать необходимое USB-устройство и нажать Закрыть - Сохранить.


USBREDIR

Примечание

Для перенаправления USB-устройств используется подключение по протоколу SPICE c созданием канала SPICE_USBREDIR_CHANNEL.

Настройка инфраструктуры

Настройка инфраструктуры для использования USBREDIR:

  • В Web-интерфейсе SpaceVM добавить к ВМ USB SPICE канал.

    Виртуальные машины - <ВМ> - USB-устройства -
    Подключить USB-устройство.

  • В Web-интерфейсе SpaceVM включить удаленный доступ к ВМ.

    Данное действие происходит автоматически при создании пула в Space Disp.

  • После запуска Space Client и подключения по протоколу RDP выбрать в меню USB-устройства - USBREDIR SPICE.

  • В открывшемся окне выбрать USB-устройство для перенаправления.

    Для автоматического перенаправления USB необходимо включить опцию Запоминать перенаправленные USB.

    Запрещен проброс клавиатуры и "мыши".

    При пробросе накопителей с ОС Linux на ОС Windows ФС накопителя должна поддерживаться ОС Windows (и наоборот).

    USBREDIR

    image

Запрет перенаправления

Настройку автоматического перенаправления или запрета перенаправления USB-устройств при использовании технологии USBREDIR можно реализовать двумя способами:

  • С помощью графического интерфейса Space Client. Для этого следует:

    • Перейти в раздел SPICE настроек.

    • В поле Фильтр USB при подключении по Spice указать фильтр USB-устройств, представляющий собой группу правил формата class,vendor,product,version,allow, соединенных символом |.

  • С помощью конфигурационного файла. Для этого следует:

    • Открыть в текстовом редакторе конфигурационный файл client_settings.ini.

    • Для подключения по протоколу SPICE создать поле show_usb_filter в группе SpiceSettings.

    • Для подключения по протоколу RDP создать поле spice_show_usb_filter в группе RDPSettings.

    • В созданном поле указать фильтр USB-устройств, представляющий собой группу правил формата class,vendor,product,version,allow, соединенных символом |.

Пример 1

Если указать фильтр 0x08,-1,-1,-1,0|-1,-1,-1,-1,1, то в графическом интерфейсе в окне выбора USB-устройства для перенаправления не будут показаны устройства класса 0x08 (flash-накопители).

Пример 2

Если указать фильтр -1,0x0951,0x1603,-1,0|-1,-1,-1,-1,1, то в графическом интерфейсе в окне выбора USB-устройств для перенаправления не будет показано устройство с vendor id: 0x0951 и product id: 0x1603.


USB over IP

Для перенаправления USB-устройств с использованием технологии USB over IP необходимо соблюдение дополнительных условий:

  • Space Client версии 2.4.0 или выше.

  • На удаленной машине установлен USBIP-сервис.

    Установка USBIP-сервиса space-usbip-daemon описана в разделе Space-vd-utils.

Перенаправление USB-устройств с ОС Linux

Для перенаправления USB-устройств с хостовой машины с ОС семейства Linux на удаленную машину необходимо выполнить следующие шаги:

  1. Запустить Space Client.

  2. Подключиться к выбранной удаленной машине по протоколу SPICE, RDP или GLINT.

  3. Установить USBIP-сервис на удаленную машину.

  4. Нажать в меню USB-устройства - USB IP redirection.

  5. В открывшемся окне в поле Remote machine address ввести IP-адрес удаленной машины.

    При подключении к ВМ по протоколам RDP или GLINT IP-адрес будет указан автоматически.

  6. Активировать опцию напротив выбранного для перенаправления USB-устройства.

  7. Нажать кнопку Закрыть.

  8. Ввести пароль пользователя sudo хостовой машины.

    USB over IP

    img

  9. Для проверки перенаправления USB-устройства на удаленной машине необходимо ввести в терминале команду:

    lsusb


Настройка беспарольного проброса USB IP с ОС Linux

Внимание

Необходим Space Client версии 3.6.4 и выше.

Для проброса USB IP с ОС семейства Linux без ввода root-пароля необходимо:

  1. Создать в системе группу space_usbip командой:

    sudo groupadd space_usbip
    
  2. Создать файл /etc/sudoers.d/space_usbip.

  3. В созданный файл записать:

    %space_usbip  ALL = NOPASSWD: /opt/thin-client/usbip_cmd_without_sudo.sh*  
    

    Примечание

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

    Примечание

    Шаги 1-3 выполняются автоматически, если во время автоматической установки Space Client без параметра при ответе на вопрос Would you like to set up passwordless USB IP forwarding? (yes/no) был дан утвердительный ответ.

  4. Добавить в группу space_usbip пользователей, для которых необходим беcпарольный проброс USB IP командой:

    sudo usermod -a -G space_usbip username
    
  5. Выполнить команду:

    sudo visudo
    
    Убедиться, что строка в конце файла имеет следующий вид:
    %astra-admin ALL=(ALL:ALL) NOPASSWD: ALL
    

  6. Если графическая сессия на машине, где запущен Space Client, была открыта для настраиваемого пользователя, необходимо выйти из сессии и зайти снова. Только после этого будут применены правила, созданные для группы.


Автоматическое монтирование «проброшенных» USB-накопителей

Для проброса USB под ОС Astra Linux

  1. Выполнить команду lsblk для отображения информации обо всех доступных устройствах:

    lsblk -o NAME,VENDOR,HOTPLUG
    
    Пример вывода команды lsblk

    image

  2. В выводе команды lsblk найти подключаемое устройство и его NAME.

  3. Выполнить в терминале команду монтирования USB-устройства:

    udisksctl mount -b /dev/sda4
    
  4. При запросе пароля ввести пароль от локального администратора на машине.

  5. Размонтирование USB-устройства выполняется командой:

    udisksctl unmount -b /dev/sda4
    

Для проброса USB под ОС РЕД ОС

Если в системе используется специальный модуль безопасности SELinux (метод мандатного управления доступа) и его отключение не планируется, то необходимо выполнить дополнительную настройку службы управления устройствами в ядре Linux udevadm.

Для этого:

  1. Создать или дополнить конфигурационный файл /etc/udev/rules.d/99-usb.rules, добавив строку ENV{ID_USB_DRIVER}=="usb-storage",ENV{UDISKS_IGNORE}="0".

  2. Применить политики командой:

    sudo udevadm control --reload-rules
    

Более подробная информация про доступ к USB-накопителям на сайте RedSoft.