Пробрасываем USB–ключ в облако (Linux клиент — Linux сервер)
Давайте посмотрим, как реализовать проброс USB–ключа по сети в виртуальную машину с Linux в облаке Azure Pack Infrastructure от InfoboxCloud.
Раз подключить ключ к виртуальной машине нельзя — его нужно подключить к чему-то реальному. Есть аппаратные решения, например AnyWhere USB, но заказчик выбрал более универсальное решение: выделенный сервер в ЦОД Infobox (что для одного ключа получилось дешевле — аппаратные требования к выделенному серверу для такой задачи минимальны — можно использовать самый дешевый сервер с софтовым Raid).
Для проброса использовалось ПО USB Redirector (версия для Linux бесплатна). На выделенный сервер и в виртуальную машину в облаке была установлена 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–устройства доступны:
Есть 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
Видим, что на сервере 1 доступно устройство 1.
Подключаем:
usbclnt -connect 1-1
Включаем автоматическое соединение с устройством:
usbclnt -autoconnecton 1-1
Проверяем:
usbclnt -list
USB–ключ был успешно проброшен в виртуальную машину в облаке.
Если вы хотите попробовать наши облака, оставьте заявку на тестирование на главной странице infoboxcloud.ru. Если вы не можете оставлять комментарии на Хабре, напишите нам в Сообществе InfoboxCloud.
Успешной работы!
Комментарии (13)
13 ноября 2016 в 11:40 (комментарий был изменён)
+3↑
↓
Вот вы в начале статьи используете такие выражения как «отказоустойчивый кластер», «без даунтайма». Возможен ли длительный даунтайм на современном программном обеспечении при возникновении проблем у хостера?
Пользуясь вашим блогом, хочу задать немного отвлечённый вопрос. Я арендую у вас виртуальную машину (номер договора 726546076), на которой расположено сразу несколько моих сайтов. Уже больше недели назад на этой машине по вине хостера был даунтайм в 3 часа. Я попытался узнать в причинах произошедшего на вашей главной странице в лайв-чате. Сотрудница записала мои учётные данные и пообещала решить вопрос с компенсацией. Вот прошло уже более недели, но со мной так никто и не связывался. Означает ли это, что принято решение не в мою пользу?13 ноября 2016 в 12:45
0↑
↓
Это включилась стандартная процедура «Потянуть время — гляди забьет и забудет».13 ноября 2016 в 13:16 (комментарий был изменён)
0↑
↓
>Возможен ли длительный даунтайм на современном программном обеспечении при возникновении проблем у хостера?
Чудес не бывает, есть конкретные технические решения и регламенты действий, которые позволяют предотвратить даунтайм. Например услуга Azure Pack Infrastructure высокодоступна — выход из строя оборудования не оказывает влияние на пользователей, процесс обновления ПО кластера также не оказывает, так как каждая виртуальная машина управления в 2х экземплярах в кластере — один обновляется, другой работает. Возникли проблемы при обновлении — можно откатить изменения без влияния на пользователей. Можно включить репликацию VM в глобальное облако Azure и в случае недоступности дата-центра виртуальные машины поднимутся там. Высокая доступность достигается не «хорошим ПО или классным хостером», а конкретным техническим решением, каждый уровень защиты стоит денег так как использует ресурсы облаков, нужно выбирать адекватно вашей задаче какой уровень высокой доступности или катастрофоустойчивости нужен. Выбирая услугу если вам нужна высокая доступность стоит интересоваться за счет чего она реализована. Если берем хостинг за 200 рублей, расчитывать на высокую доступность не стоит (так как невозможно сделать такую услугу за 200 рублей), но для клиентов хостинга она и не требуется. При необходимости мы поможем организовать высокодоступное решение для вас согласно вашим требованиям и бюджету. Для получения персональной консультации можно заполнить заявку на главной https://infoboxcloud.ruКасательно вашего номера договора — у нас нет договоров с такими номерами. Напишите пожалуйста в ЛС реальный номер договора или номер обращения в нашу поддержку, если мы действительно являемся вашим провайдером. Посмотрим какой услугой вы пользуетесь и суть обращения. У Azure Pack Infrastructure с запуска облака аптайм реальный — 100%.
13 ноября 2016 в 14:12
0↑
↓
Написал все имеющиеся данные в ЛС. Справедливости ради, я плачу более 1100 руб в месяц за вашу услугу и хотел бы получить взамен хотя бы оперативное и справедливое решение проблем.13 ноября 2016 в 14:42 (комментарий был изменён)
0↑
↓
ответили в ЛС. Последнее обращение от вас было в апреле 2016 года, проблема была решена за 17 минут. Более новых заявок от вас нет, но если что-то не так — напишите пожалуйста заявку из панели управления и пришлите номер тикета в ЛС.
13 ноября 2016 в 13:04
0↑
↓
ufw allow 22 ufw allow from *.*.*.* to any port 32032 ufw enable
Плохая идея, шарить надо через туннель с шифрованием.
13 ноября 2016 в 13:19
0↑
↓
Да, через тунель с шифрованием так лучше делать. С другой стороны если ключ используется для получения одноразового кода активации лицензии на ПО раз в час — если он будет перехвачен — не страшно.13 ноября 2016 в 13:45
0↑
↓
Я правильно понимаю, что Вы считаете хорошей идее открывать доступ к железу напрямую по сети без туннелирования?
13 ноября 2016 в 13:48 (комментарий был изменён)
0↑
↓
Все зависит от задачи и требований/возможностей заказчика. Если нужно — подключим железным решением, это не проблема.
13 ноября 2016 в 13:22
0↑
↓
Какое максимальное количество ключей можно одновременно пробрасывать таким способом?13 ноября 2016 в 13:24
0↑
↓
Мы не встречались с ограничениями на количество ключей: все что подключалось можно было пробрасывать. В случае использования Windows–версии ПО количество ключей ограничивается кол-вом лицензий на USB Redirector.13 ноября 2016 в 13:43
0↑
↓
В Windows сталкивался с тем, что больше 7–8 однотипных ключей (rutoken) сама система просто не видела (устройство определяется, но дрова не ставятся). Хотелось узнать как в linux с этим дела обстоят.13 ноября 2016 в 14:12
0↑
↓
Не сталкивались с подобными проблемами на Linux. Если столкнемся, добавим комментом.