В данной статье рассматривается предоставление удалённого доступа к USB-устройствам с помощью сервиса USB-over-IP. При принятии решения о возможности использования этого сервиса следует помнить, что:
- доступ к USB-устройствам предоставлятся всем без авторизации (пароля или другого способа проверки). Т.е. разделённое таким способом устройство будет доступно всем в рамках локальной сети;
- данные передаются в открытом виде, без применения защитных преобразований;
что может противоречить принятой политике безопасности.
Недопустимо использовать сервис USB-over-IP для предоставления удалённого доступа к носителям, содержащим конфиденциальные данные.
В статье приводятся примеры автоматического запуска службы, однако следует помнить, что после перезагрузки компьютера к нему могут оказаться подключены совсем другие устройства, получившие те же идентификаторы busid, которые автоматически станут доступны всем удалённым пользователям.
Инструкция применима к:
- Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7), РУСБ.10015-10
- Astra Linux Special Edition РУСБ.10015-17
Astra Linux Special Edition РУСБ.10015-37 (очередное обновление 7.7)
Astra Linux Special Edition РУСБ.10015-03 (очередное обновление 7.6)
Astra Linux Special Edition РУСБ.10152-02 (очередное обновление 4.7) - Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6) с установленным обновлением БЮЛЛЕТЕНЬ № 20200327SE16 (оперативное обновление 5)
- Astra Linux Special Edition РУСБ.10015-16 исп. 1 с установленным обновлением Бюллетень № 20201007SE16
- Astra Linux Common Edition 2.12
Установка пакетов на сервере и на клиенте
На сервере и на клиенте должен быть установлен пакет linux-tools соответствующий версии используемого ядра. При наличии подключенных репозиториев установить пакет можно выполнив на сервере и клиенте команду:
Настройка сервера
На сервере загрузить необходимые модули ядра, для чего выполнить команду:
sudo modprobe usbip-host
sudo modprobe vhci-hcd
usbip-core usbip-host vhci-hcd
Запустить процесс как сервисную службу:
Создать файл /etc/systemd/system/usbipd.service со следующим содержимым:
[Unit] Description=USBIPd [Service] ExecStart=/usr/bin/usbipd -D Type=oneshot RemainAfterExit=yes [Install] WantedBy=multi-user.target
Обновить конфигурацию сервисов и разрешить запуск созданного юнита:
sudo systemctl daemon-reload
sudo systemctl enable usbipd
Проверка подключенных к локальному компьютеру USB -устройств:
busid 1-2 (03f0:4c17)
Hewlett-Packard : EWS UPD (03f0:4c17)
Если при выполнении указанной выше команды выдаётся сообщение об ошибке открытия по пути /usr/share/hwdata//usb.ids, то создать каталог /usr/share/hwdata/ и создать в нём ссылку на нужный файл:
sudo ln -s /var/lib/usbutils/usb.ids /usr/share/hwdata/usb.ids
Далее привязать устройство к службе usbipd, после чего оно станет доступно извне:
Если используется межсетевой экран, то для корректной работы usbipd должен быть открыт порт 3240.
Проверить, что устройство действительно привязано и доступно, можно выполнив на сервере команду:
Установить пакеты:
sudo modprobe vhci-hcd
Проверить видимость устройств, подключенных к серверу, можно выполнив на клиентском компьютере команду:
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/ и создать в нём ссылку на нужный файл:
sudo ln -s /var/lib/usbutils/usb.ids /usr/share/hwdata/usb.ids
Подключить USB-устройство на клиенте:
После подключения устройство будет доступно как физически подключенный накопитель, и может монтироваться/отмонтироваться командами mount/umount так же, как физические накопители.
Для отключения устройства:
Проверить, к какому порту присоединено устройство:
sudo usbip portдля единственного устройства это будет порт 00.Отключить устройство (используется номер порта 00, обычный для единственного устройства):
sudo usbip detach -p 00