- PVSM.RU - https://www.pvsm.ru -

Пробрасываем USB–ключ в облако (Linux клиент — Linux сервер)

Заказчику потребовалось подключить USB–ключ для банковской системы к Linux–серверу в облаке [1], где он разворачивает свой разработанный продукт. Напрямую подключить USB–ключ к виртуальной машине нельзя — она работает в отказоустойчивом кластере и может быть смигрирована на любой из хост-серверов без даунтайма.

Пробрасываем USB–ключ в облако (Linux клиент — Linux сервер) - 1
Давайте посмотрим, как реализовать проброс USB–ключа по сети в виртуальную машину с Linux в облаке Azure Pack Infrastructure от InfoboxCloud [1].

Раз подключить ключ к виртуальной машине нельзя — его нужно подключить к чему-то реальному. Есть аппаратные решения, например AnyWhere USB [2], но заказчик выбрал более универсальное решение: выделенный сервер [3] в ЦОД Infobox (что для одного ключа получилось дешевле — аппаратные требования к выделенному серверу для такой задачи минимальны — можно использовать самый дешевый сервер с софтовым Raid).

Для проброса использовалось ПО USB Redirector (версия для Linux бесплатна).
На выделенный сервер [4] и в виртуальную машину в облаке была установлена Ubuntu 16.04 LTS и были применены все обновления.

apt-get update && apt-get -y upgrade && apt-get -y dist-upgrade

Для установки USB Redirector потребуются исходные тексты ядра, установите их:

apt-get install linux-source

Теперь необходимо отключить обновления ядра ОС, так как они могут сломать работу USB Redirector (служба проброса после обновления ядра не будет запускаться до переустановки), если необходимо — их можно устанавливать вручную переустанавливая USB Redirector.

sudo apt-mark hold linux-image-generic linux-headers-generic

Установка и настройка USB Redirector на сервере с подключенным ключом USB

Скачайте USB Redirector:

wget http://www.incentivespro.com/usb-redirector-linux-x86_64.tar.gz

Распакуйте:

tar -xvzf usb-redirector-linux-x86_64.tar.gz

Перейдите в папку с ним:

cd usb-redirector-linux-x86_64/

Разрешите запуск инсталлятора:

chmod +x installer.sh

Устанавливаем сервер:

./installer.sh install-server

Если все прошло корректно, вы увидите сообщение об этом.

Добавьте службу проброса в автозагрузку, если ранее этого не произошло:

systemctl enable rc.usbsrvd

Подключив USB–ключ к выделенному серверу проверим какие USB–устройства доступны:
Пробрасываем USB–ключ в облако (Linux клиент — Linux сервер) - 2

Есть 2 варианта расшарить устройство по сети.
Вариант 1:

usbsrv -share -vid 2022 -pid 0202 -usbport 2-1

, в этом случае мы привязываемся к конкретному id устройства и порту, если включить usb-ключ в другой порт сервера — номер usb порта сменится и работать не будет.

Вариант 2:

usbsrv -share 1

, в этом случае мы привязываемся только к id устройства.
Теперь USB–устройство расшарено по сети.

Конечно делать его доступным для всех пользователей Интернет не правильно, поэтому добавим ограничения в firewall:

ufw allow 22
ufw allow from *.*.*.* to any port 32032
ufw enable

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

Установка клиента USB Redirector в облаке

Скачайте USB Redirector:

wget http://www.incentivespro.com/usb-redirector-linux-x86_64.tar.gz

Распакуйте:

tar -xvzf usb-redirector-linux-x86_64.tar.gz

Перейдите в папку с ним:

cd usb-redirector-linux-x86_64/

Разрешите запуск инсталлятора:

chmod +x installer.sh

Устанавливаем сервер:

./installer.sh install-client

Если все прошло корректно, вы увидите сообщение об этом.

Добавьте службу проброса в автозагрузку, если ранее этого не произошло:

systemctl enable rc.usbsrvd

Теперь добавим наш сервер:

usbclnt -addserver **.**.**.**:32032

, где вместо **.**.**.** нужно указать ip–адрес сервера.

Теперь можно посмотреть список доступных устройств:

usbclnt -list

Пробрасываем USB–ключ в облако (Linux клиент — Linux сервер) - 3
Видим, что на сервере 1 доступно устройство 1.
Подключаем:

usbclnt -connect 1-1

Включаем автоматическое соединение с устройством:

usbclnt -autoconnecton 1-1

Проверяем:

usbclnt -list

Пробрасываем USB–ключ в облако (Linux клиент — Linux сервер) - 4

USB–ключ был успешно проброшен в виртуальную машину в облаке [1].

Если вы хотите попробовать наши облака, оставьте заявку на тестирование на главной странице https://infoboxcloud.ru [5].
Если вы не можете оставлять комментарии на Хабре, напишите нам в Сообществе InfoboxCloud [6].

Успешной работы!

Автор: Infobox

Источник [7]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/oblako/209378

Ссылки в тексте:

[1] облаке: https://infoboxcloud.ru/services/azurepack/

[2] AnyWhere USB: http://www.digi.com/ru/products/usb/anywhereusb

[3] выделенный сервер: https://infobox.ru/servers/dedicated/

[4] выделенный сервер: https://www.reg.ru/?rlink=reflink-717

[5] https://infoboxcloud.ru: https://infoboxcloud.ru

[6] Сообществе InfoboxCloud: https://infoboxcloud.ru/community/blog/azurepack/399.html

[7] Источник: https://habrahabr.ru/post/315076/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best