Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Оглавление

Предупреждение

В данной статье рассматривается предоставление удалённого доступа к USB-устройствам с помощью сервиса USB-over-IP. При принятии решения о возможности использования этого сервиса следует помнить, что:

  • доступ к USB-устройствам предоставлятся всем без авторизации (пароля или другого способа проверки). Т.е. разделённое таким способом устройство будет доступно всем в рамках локальной сети;
  • данные передаются в открытом виде, без применения защитных преобразований;

что может противоречить принятой политике безопасности.

Недопустимо использовать сервис USB-over-IP для предоставления удалённого доступа к носителям, содержащим конфиденциальные данные.

В статье приводятся примеры автоматического запуска службы, однако следует помнить, что после перезагрузки компьютера к нему могут оказаться подключены совсем другие устройства, получившие те же идентификаторы busid, которые автоматически станут доступны всем удалённым пользователям.



Информация
titleИнструкция применима к:
  • ОС ОН Орёл 2.12.29 и выше
  • ОС СН Смоленск 1.6 + update 5


    Установка пакетов на сервере и на клиенте

    На сервере и на клиенте должен быть установлен пакет linux-tools соответствующий версии используемого ядра. При наличии подключенных репозиториев установить пакет можно выполнив на сервере и клиенте команду:

    Command
    sudo apt install linux-tools-`uname -r`

    Настройка сервера

    На сервере загрузить необходимые модули ядра, для чего выполнить команду:

    Command
    sudo modprobe usbip-core
    sudo modprobe usbip-host
    sudo modprobe vhci-hcd

    Для того, чтобы модули загружались автоматически при загрузке ОС можно создать в каталоге /etc/modules-load.d/ файл с именем, например,  /etc/modules-load.d/usb-over-ip-load.conf, и перечислить в нём названия загружаемых модулей:

    Блок кода
    title/etc/modules-load.d/usb-over-ip-load.conf
    usbip-core
    usbip-host
    vhci-hcd

    Запустить процесс как сервисную службу:

    Command
    sudo usbipd -D

    Для того, чтобы usbipd запускался автоматически при старте компьютера можно оформить его в виде системного юнита, для чего:

    1. Создать файл /etc/systemd/system/usbipd.service со следующим содержимым:

      Блок кода
      [Unit] 
      Description=USBIPd 
      
      [Service] 
      ExecStart=/usr/bin/usbipd -D 
      Type=oneshot 
      RemainAfterExit=yes 
      
      [Install] 
      WantedBy=multi-user.target



    2. Обновить конфигурацию сервисов и разрешить запуск созданного юнита:

      Command
      sudo systemctl daemon-reload
      sudo systemctl enable usbipd



    Проверка подключенных  к локальному компьютеру USB -устройств: 

    Command
    Titleusbip list -l
    busid 1-2 (03f0:4c17)
    Hewlett-Packard : EWS UPD (03f0:4c17)

    Идентификаторы busid далее используются для привязки эскспортируемых устройств.

    Информация

    Если при выполнении указанной  выше команды выдаётся сообщение об ошибке открытия по пути /usr/share/hwdata//usb.ids, то создать каталог /usr/share/hwdata/ и создать в нём ссылку на нужный файл:

    Command

    sudo mkdir -p /usr/share/hwdata
    sudo ln -s /var/lib/usbutils/usb.ids /usr/share/hwdata/usb.ids


    Далее привязать устройство к службе usbipd, после чего оно станет доступно извне:

    Command
    sudo usbip bind -b <bus ID устройства>


    Информация

    Если используется межсетевой экран, то для корректной работы usbipd должен быть открыт порт 3240.


    Проверить, что устройство действительно привязано и доступно, можно выполнив на сервере команду:

    Command
    usbip list -r localhost

    Настройка клиента

    Установить пакеты:

    Command
    sudo apt install linux-tools-`uname -r`

    Загрузить необходимые модули ядра:

    Command
    sudo modprobe usbip-core
    sudo modprobe vhci-hcd

    Автоматическую загрузку модулей ядра для клиента можно сделать так же, как описано выше для сервера.

    Проверить видимость устройств, подключенных к серверу, можно выполнив на клиентском компьютере команду:

    Command
    Titlesudo usbip list -r IP-адрес-сервера

    Exportable USB devices
    ======================
     - 192.168.122.45
                   3-1: Aktiv : Rutoken ECP (0a89:0030)
                                      : /sys/devices/pci0000:00/0000:00:05.1/usb3/3-1
                                      : (Defined at Interface level) (00/00/00)


    Информация

    Если при выполнении указанной  выше команды выдаётся сообщение об ошибке открытия по пути /usr/share/hwdata//usb.ids, то создать каталог /usr/share/hwdata/ и создать в нём ссылку на нужный файл:

    Command

    sudo mkdir -p /usr/share/hwdata
    sudo ln -s /var/lib/usbutils/usb.ids /usr/share/hwdata/usb.ids


    Подключить USB-устройство на клиенте:

    Command
    sudo usbip attach -r <server> -b <bus ID>

    После подключения устройство будет доступно как физически подключенный накопитель, и может монтироваться/отмонтироваться командами mount/umount так же, как физические накопители.

    Для отключения устройства:

    1. Проверить, к какому порту присоединено устройство:

      Command
      sudo usbip port

      для единственного устройства это будет порт 00.

    2. Отключить устройство (используется номер порта 00, обычный для единственного устройства):

      Command
      sudo usbip detach -p 00