Юсб через интернет: ПО для удалённого доступа к USB по сети

Содержание

Как технология USB over IP позволила людям забыть о расстоянии / Хабр

Источник изображения
Сегодня быстрым ростом количества устройств сети Интернет и интернета вещей уже никого не удивишь. Существует множество различных протоколов и технологий, на которых основана обработка и обмен информацией между устройствами и, собственно, сама связь этих устройств.

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

В этой статье речь пойдет о технологии, не относящейся ни к одной, ни к другой группе — USB over IP. Без нее компьютерные сети существовали бы без особых проблем, но она способна значительно упростить работу и снизить затраты на эксплуатацию у крупных предприятий, небольших организаций и даже обычных пользователей.

К примеру, с помощью нее можно пробросить аппаратный USB-ключ защиты ПО внутрь облачной платформы или облака на базе VMware и использовать его так, словно он установлен на локальной машине. Но обо всем по порядку.

История появления технологии USB over IP


Сложно сказать, когда именно появилась технология проброса USB-девайсов через сеть в том виде, в каком ее используют сейчас. Вероятнее всего, с развитием возможностей программных компонентов Linux, ростом потребностей рынка и изобретательности энтузиастов.

В наши дни существуют два популярных инструмента для трассировки USB-устройств: usbip и usbip-win. Оба нацелены на совместное использование USB-устройств через IP-сеть за счет обработки USB I/O сообщений, их инкапсуляции в TCP/IP и последующей передачи между устройствами сети типа «клиент-сервер». В такой схеме устройства подключаются к серверу, и на нем же запускается необходимый демон.

На машине клиента, как правило, запускается любое приложение, которое не умеет работать с сетью, зато прекрасно справляется с USB-девайсами.

Технология проброса как раз позволяет эмулировать локальное подключение USB-устройств на клиентской машине.

  • usbip был разработан проектом «USB/IP» еще в 2009 году. Технология была успешной: ее добавили в сборки Linux-ветки операционных систем, и она все еще развивается. Поддержка же Windows клиента была остановлена в 2013 году на выпущенной двоичной цифровой подписи драйвера.
  • usbip-win является аналогичным проектом, умеющим работать с Windows 10. Более того, он позволяет поднимать на Windows 10 не только клиентскую, но и серверную часть. Также он совместим с Linux-версией.

Кому это интересно и где применяется


Преимущества сетевого проброса USB-устройств:

  • Безопасность. Возможность изолированного размещения USB-девайсов от их конечного пользователя, шифрование и контроль доступа к устройствам, защита от человеческого фактора (кражи или утраты устройства).
  • Мониторинг. Использование протокола SMTP и сценариев SNTP для отслеживания состояния устройств.
  • Доступность и мультитенантность. USB-устройства доступны для неограниченного числа пользователей (с возможностью создавать групповые политики и уровни доступа) без необходимости физического переключения из любой точки мира.
  • Централизованное администрирование. Удобство в управлении каждым USB-устройством, подключенным в концентратор.

Недостатки:

  • Работоспособность полностью зависит от стабильной работы сети.
  • Высокая стоимость аппаратных решений (управляемых USB-хабов с большим количеством портов).
  • Не все USB-устройства могут работать через сеть штатно по причине увеличенного времени отклика.

Используемые технологии и оборудование


Способ обмена информацией у локальных и удаленных устройств отличается лишь тем, что для удаленных девайсов будет использоваться виртуальный драйвер шины: набор инструкций и данных, осуществляющий преобразование логической информации или данных в физические сигналы.

Подключение локальных и удаленных устройств
Когда приложения отправляют запрос на конечное устройство, USB PDD (USB Personal Device Driver) преобразует запросы ввода-вывода в серию команд понятных для USB, а затем отправляет их через драйвер шины (связующее звено между драйвером устройства и конечным устройством) в виде блоков USB-запросов на конечное устройство.

Способы проброса аппаратных ключей


Персональный драйвер устройства (PDD), как ни странно, отвечает за управление отдельными USB-устройствами. PDD отправляет запросы в виде специальных блоков запросов URB (USB Request Block), которыми он обменивается данными с ядром USB (USB Core) — отдельной подсистемой внутри ОС, выполняющей роль поддержки USB-устройств и контроллеров.

Модель обмена данными между USB-устройствами и конечным пользователем
Для реализации проброса протокола USB через IP-сеть была разработана сущность, называемая виртуальным интерфейсом хост-контроллера, или Virtual Host Controller Interface (VHCI). VHCI относится к виртуальному контроллеру и способен экспортировать виртуальные USB-устройства, не поддерживаемые физическими устройствами. В Linux контроллеры VHCI используются для доступа к USB-устройствам с удаленных машин, подключенных по уже известному нам протоколу USBIP.

VHCI является эквивалентом драйвера хост-контроллера (HCD) и отвечает за обработку URB-запросов. И VHCI, и HCD отвечают за обработку URB-запросов, полученных от ядра, и делят их на более простые запросы, именуемые Transfer Descriptions (дескрипторы передачи TD) для их дальнейшей передачи на хост-контроллер интерфейса, он же USB-контроллер (Host Controller Interface HCI). Данный интерфейс работает на уровне физических регистровых передач и обеспечивает коммуникацию с периферийными устройствами, подключенными к USB.

Теперь о том, как USB попадает в сеть. Блок запросов URB преобразуется в блок запроса USB / IP драйвером VHCI и отправляется на удаленный компьютер. Драйвер заглушки также добавлен как новый тип USB PDD.

Драйвер-заглушка отвечает за декодирование входящих USB / IP-пакетов с удаленных машин, извлечение URB и последующую отправку их на локальные USB-устройства.

Модуль ядра vhci-hcd — это только виртуальный хост-контроллер, к которому вы можете подключить виртуальные устройства.

Как это устроено в Selectel


Рассмотрим работу с USB-концентратором на примере устройства DistKontrolUSB-16. Для того, чтобы пробросить USB-устройство с порта концентратора, необходимо:

  1. Создать USB-устройство, указав его Vendor/ProductID (VID/PID) и серийный номер. Именно по нему концентратор будет проводить отбор подключенных устройств:
  2. Указать внешний IP-адрес клиента, который будет подключаться к USB-концентратору и указать разрешенные для подключения порты:
  3. В клиентском приложении найти необходимое устройство и отправить команду на его использование. После этого девайс будет доступен словно физически подключенное устройство.

Заключение


Описанная технология способна обеспечить необходимую масштабируемость и гибкость в современной, постоянно изменяющейся среде. Проброс USB-устройств через сеть также обеспечивает надежность за счет ограничения физического доступа к устройствам.

Отсутствует необходимость перемещать оборудование, а безопасность сети повышается за счет возможности использования алгоритмов шифрования и настройки прав доступа. Доступна планировка сценариев для каждого отдельно взятого устройства.

Снижение рисков и затрат на обслуживание, удобство совместного использования ресурсов между рабочими станциями — все это делает технологию usbip конкурентоспособной в отношении безопасной авторизации и передачи данных (с TOTP/HOTP, OCRA) и применимой для решения широкого спектра задач IT.

Проброс USB через сеть | USB over IP концентратор

В связи с последними событиями, компании ищут все больше различных вариантов, упрощающих работу в удаленном режиме.

Но, есть часть вопросов, которые сложно перенести в удаленный формат, допустим передача ключей для доступа к различным сервисам. Так как доступ к ресурсам должны получать несколько сотрудников, а ключ один, и каждый раз передавать его физически разным сотрудником дело трудоемкое. Поэтому данный недостаток можно решить по средствам аппаратного USB концентратора.

 

Регистрируйся на следующий вебинар по системному администрированию!

>> Подробнее о вебинаре <<

 

В чем суть работы, есть определенное устройство, в которое подключаются все USB ключи или вообще любые USB устройства, и доступ к ним могут получать сотрудники из любого места где есть сеть интернет. Причем, подключение USB устройства к компьютеру через интернет для операционной системы будет аналогично, как если бы его подключили физически.

И в данном видео предлагаю рассмотреть, как все это реализовать на практике.

В каких ситуациях чаще всего используется данная возможность?

  • — совместное использование USB устройством, как я и рассказал ранее
  • — проброс в виртуальный сервер, к которому нет возможности подключить USB устройство
  • — компьютеры с поврежденными или маленьким количеством USB портов
  • — доступ к USB устройству из любой точки мира, где есть интернет

Кроме того, можно:

  • — разграничивать права доступа пользователей к разным USB устройствам
  • — шифрование и контроль доступа к устройствам с парольной защитой
  • — централизованное и защищенное хранение ключей
  • — проброс лицензий 1С в терминальный сеанс
  • — удаленный доступ нескольких сотрудников к одному ключу из разных филиалов офиса
  • — централизованный доступ к ключам во время удаленной работы сотрудников
  • — функция уведомления через e-mail

То, что я буду демонстрировать в данном видео уже работает в боевой среде. Поэтому поясню, по какой схеме будет выполняться подключение к удаленному USB устройству.

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

На удаленном компьютере, через интернет подключаемся к внешнему IP адресу компании с указанием порта 81, ну это в моем примере, все зависит от того, какой порт вы перенаправите на USB концентратор. По правилу проброса в коммутаторе, нас перенаправляет на сетевой интерфейс USB концентратора откуда мы можем управлять и настраивать устройство.

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

Я буду демонстрировать настройку и работу USB концентратора DistKontrolUSB 16. Ссылку на более подробную информацию о нем сможете найти в описании к видео.

Во-вторых, это схема подключения непосредственно к нужному USB устройству.

На компьютере, с которого требуется получить доступ к удаленному USB устройству, запускается портативная программа клиент, через которую выполняется подключение к USB концентратору. В данном случае, это также через проброс портов на коммутаторе, но здесь нам необходимо добраться до порта 6565, который задается по умолчанию.

Настройка USB концентратора

Для настройки USB концентратора подключимся к его веб-интерфейсу ip:81, так как на этот порт у меня настроен проброс порта к интерфейсу настройки \ Вводим логин и пароль пользователя с админскими правами на устройстве.

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

Переименование позволяет проще понять, какой ключ подключен к порту (Имя \ Ключ СБИС (бухгалтер) \ Флешка (юрист) и т.д. \ Сохранить \ Перезапустить службу). Причем, переименовывать можно как через веб-интерфейс, так и через программу клиент, но её я покажу чуть позже.

Так же тут можем управлять питанием порта. Отключение и включение порта равносильно физическому отключению устройства от USB концентратора. Просто бывают некоторые ключи, которые невозможно повторно использовать для разных операций пока не вытащишь и не вставишь его обратно. По сути данная операция делает то же самое.

Для начала нам нужно решить, как мы будем выполнять разграничение прав между пользователями (Сервисы \ Настройки USB \ Настройки доступа)

Здесь есть различные параметры ограничения доступа:

  • — к USB устройству по логину и паролю
  • — к USB порту по логину и паролю
  • — к USB устройству по IP адресу
  • — к USB порту по IP адресу

В чем у нас отличия между USB устройством и USB портом в рамках данной системы:

— USB порт, это непосредственно номер физического порта на USB концентраторе;

— USB устройство, это объект, который привязывается непосредственно к определенному устройству.

В чем суть?

Если мы будем настраивать доступ к USB портам, то тут все понятно, мы будем получать доступ только к тому устройству, которое подключено в этот порт. Но, бывают ситуации, когда ключ через некоторое время вставили в другой порт. Тогда можно настроить доступ к USB устройству, и тут уже без разницы в какой порт оно подключено, человек получить доступ именно к тому устройству, к которому это разрешено.

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

Я же буду настраивать доступ к USB порту по логину и паролю.

Так же нужно включить (Настройка прав \ Авторизация: использовать системное имя / введенное пользователем \ Сохранить \ Применить)

По умолчанию система будет брать имя пользователя, под которым был выполнен вход в систему, такой вариант оптимально подходит для доменных пользователей, которых так же можно импортировать. Однако, если имена пользователей отличаются, то нужно его ввести вручную. Как раз эту возможность мы и включили.

Теперь нужно создать пользователей, чтобы разграничить доступ (Управление правами доступа \ Пользователь \ Добавить \ Добавить, как вы видите, можно импортировать пользователей из AD, чтобы авторизовать пользователей через учетные записи, под которыми пользователи выполняют вход в систему \ Имя: buhgalter, обязательно в латинской раскладке \ Пароль \ Доступ к USB портам: 1.1 и 1.2 \ Сохранить \ Применить)

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

Перейдем к подключению пользователя к разрешенным USB портам. Для этого нужно скачать программу клиент и запустить на удаленном компьютере (Информация \ Поддержка \ Скачать DistKontrolUSB \ Запустить)

Версия программы портативная, так что не требует установки в систему.

Для начала нужно настроить доступ USB концентратору (USB серверы \ ПКМ \ Подключиться к серверу \ Добавить IP и порт подключения \ После успешного подключение выбираем USB порт, к которому хотим подключиться \ Имя пользователя: buhgalter \ Пароль \ ОК \ Устройство подключено к системе)

Подключим оба устройства в первом и втором портах, одно ключ, второе USB флешка.

Если попытаемся подключиться к порту, к которому у нас нет доступа, то получим сообщение «Вы не авторизованы для подключения к данному устройству»

Вот таким образом работает USB концентратор.

Может возникнуть вопрос, а как дела с безопасностью?

Как я и говорил в самом начале, мы можем настроить шифрование через SSL сертификат, но это тема для отдельного видео.

0

6 лучших инструментов USB over IP | Совместное использование USB через IP

Тип лицензии Варианты подписки Ограничения бесплатной демоверсии Цена от Вход с нескольких устройств Прокси-сервер На стороне сервера: Сторона клиента: Прошивки для микроконтроллеров Безопасность Шифрование поддержка удаленного рабочего стола Поддержка устройств COM-порта

Гибкий концентратор

Различные планы подписки

• Персональный: 3 соединения*/5 узлов**

• Команда: мин. 5 членов

• Бизнес: пользовательский

5 общих устройств
30 дней
14 долларов США/месяц/1 устройство до 5 узлов/аккаунт***

Сервер перенаправления

• нет необходимости во внешнем IP

• мультисетевая связь

• работает через Брандмауэр

✓ Windows

✓ Линукс

✓ macOS

✓ Андроид

✓ Windows

✓ Линукс

✓ macOS

Малина (по желанию)

Токены входа для безопасного совместного использования учетной записи

Замок для контроля доступа к устройству

2048-битный SSL Да только Windows

Сетевой шлюз USB

Единая статическая лицензия, Индивидуальные варианты разработки Н/Д Н/Д 159,95 долларов США за одно устройство 1, 2, 10 или неограниченное количество USB-устройств, которые можно использовать одновременно на одном компьютере. Н/Д

✓ Windows

✓ Линукс

✓ macOS

✓ Андроид

✓ Windows

✓ Линукс

✓ macOS

Индивидуальная разработка под заказ Н/Д Н/Д Да Нет

USB-перенаправитель (IncentivesPro)

Одиночная статическая лицензия

Н/Д 2 общих устройства
15 дней
Только Windows
74,99 долларов США за 2 устройства Н/Д Н/Д

✓ Windows

✓ Линукс

✓ Windows

✓ Линукс

Н/Д

Список контроля доступа

Н/Д Н/Д Нет

VirtualHere

Единая статическая лицензия Н/Д 1 общее устройство 10 дней 49 долларов США Н/Д EasyFind за дополнительные 10 долларов США в месяц

✓ Windows

✓ Линукс

✓ macOS

✓ Андроид

✓ Windows

✓ Линукс

✓ macOS

Маршрутизаторы Raspberry NAS (QNAP, Synology и др. ) Скрипты для контроля доступа SSL Да Нет

Проект USB/IP

Открытый источник Н/Д Н/Д Н/Д Неограниченный Н/Д

✓ Windows

✓ Линукс

✓ Windows

✓ Линукс

Н/Д Н/Д Н/Д Н/Д Нет

USB по сети (FabulaTech)

Н/Д SSL

Пароль на стороне сервера

Правила обмена
Н/Д

✓ Windows

✓ Linux (по запросу)

✓ Windows

✓ Линукс

Н/Д Только для лицензии сайта

Лицензия: 149,95 долларов США за 1 устройство

Подписка: 102,60 долларов США в год за 1 устройство.
1 общее устройство
15 дней

Ежемесячно: 1–64 устройства

Сайт: мин. 10 устройств
Единая статическая лицензия
Различные планы подписки
Нет

USB по сети — общий доступ и доступ к вашим USB-устройствам через локальную сеть или Интернет.

Обзор

USB over Network позволяет использовать удаленные USB-устройства, совместно используемые в локальной сети или Интернете.

Неважно, находитесь ли вы в другом офисе или даже стране, теперь вы можете использовать любое USB-устройство удаленно, как если бы оно было подключено к вашему компьютеру локально.


Как это работает

Программа состоит из двух частей — Серверной и Клиентской. Серверная часть устанавливается на компьютер, к которому физически подключены USB-устройства, что позволяет совместно использовать устройства для удаленного подключения. Клиент должен быть установлен на компьютерах, где вам необходимо получить доступ к удаленным общим USB-устройствам.

Когда вы подключаете удаленное USB-устройство с помощью клиентской части на вашем ПК, создается впечатление, что устройство подключено напрямую к вашему компьютеру.


Технология виртуализации Real USB

Благодаря многолетним исследованиям и разработкам мы смогли выпустить уникальную технологию виртуализации USB. Он полностью эмулирует USB-стек удаленных USB-устройств на стороне клиента, создавая точную виртуальную копию каждого общего аппаратного USB-устройства.


Работает с любыми USB-устройствами

Программа не ограничивается некоторыми конкретными моделями USB-устройств. Он совместим с любым из них. Так что это действительно универсальное решение для удаленного доступа к USB-устройствам. Доступ даже к самым экзотическим USB-устройствам возможен через сеть или Интернет.


Поддерживает все основные операционные системы

USB по сети поддерживает Windows, Linux и macOS. Любой компьютер с Windows или Linux с установленной клиентской частью может получить доступ к удаленным USB-устройствам, совместно используемым в Windows, Linux или macOS, где установлена ​​серверная часть.


Решение без драйверов

USB over Network не требует драйверов USB-устройств на стороне сервера. Эта функция действительно все упрощает, поскольку позволяет совместно использовать USB-устройства, даже если их драйверы не были установлены локально (или в случае, если устройство не поддерживается серверной ОС). Имейте в виду, что драйверы USB-устройств в любом случае требуются на стороне клиента.


Совместное использование порта USB

В некоторых случаях действительно удобно использовать выделенный USB-порт для совместного использования устройства. Таким образом, любое USB-устройство, подключенное к нему, автоматически становится общим. Это не повлияет на другие USB-устройства, подключенные к другим USB-портам.


Все ваши данные в безопасности

USB over Network передает данные напрямую только между клиентской и серверной программными частями, установленными на ваших компьютерах. Он не подключается к FabulaTech или каким-либо сторонним серверам. Единственным исключением является необязательная проверка на наличие новых версий, поэтому она полностью функциональна даже без доступа в Интернет.

Secure Sockets Layer (SSL) можно настроить для установления зашифрованной связи между сервером и клиентом. А для еще большей защиты конфиденциальных данных можно использовать защиту паролем как для каждого отдельного USB-устройства, так и для всего сервера.

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


Перевернутые соединения устройств

Иногда необходимо инициировать подключение устройства со стороны сервера на сторону клиента. Таким образом, вместо подключения удаленного USB-устройства конечный пользователь может «протолкнуть» локальное USB-устройство на удаленный компьютер. Функция обратного соединения особенно полезна в случае, если Сервер находится за брандмауэром или в сети NAT.


Совместное использование интерфейса

Существует возможность совместного использования интерфейса для составных устройств, которые обычно содержат несколько USB-устройств. Например, если вы используете веб-камеру со встроенным динамиком, можно без проблем предоставить общий доступ к веб-камере для удаленного доступа, но оставить динамики только для локального использования.


Дополнительные правила общего доступа

Система Sharing Rules позволяет тонко настроить процесс совместного использования как конкретного устройства, так и группы USB-устройств с одинаковыми характеристиками. Встроенный менеджер правил общего доступа делает процесс создания правил очень простым.


Автоматическое обнаружение USB-сервера

USB over Network Client может обнаруживать USB-серверы, установленные в вашей локальной сети. Таким образом, в большинстве случаев даже не требуется указывать удаленный IP-адрес или имя хоста Сервера. Просто выберите нужный сервер из списка, чтобы подключить Сервер на постоянной основе.


Преимущества лицензии OEM

Функциональность USB over Network может быть легко интегрирована в ваше приложение. Таким образом, вы можете совместно использовать USB-устройства или подключать их напрямую из вашего приложения. Читать больше…

Что говорят клиенты

Цели разработки дистанционно управляемого транспортного средства направлены на изучение возможности применения робототехники в подводных исследованиях.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *