Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Практические руководства
    • Все руководства
    • Настройка сетевого взаимодействия ресурсов из разных каталогов
    • Создание бастионного хоста
    • Создание туннеля между двумя подсетями при помощи OpenVPN Access Server
    • Защищенный доступ пользователей к облачным ресурсам на основе WireGuard VPN
    • Создание и настройка шлюза UserGate в режиме межсетевого экрана
    • Реализация отказоустойчивых сценариев для сетевых ВМ
    • Реализация защищенной высокодоступной сетевой инфраструктуры с выделением DMZ на основе Check Point NGFW
    • Сегментация облачной инфраструктуры с помощью решения Check Point Next-Generation Firewall
    • Реализация защищенной высокодоступной сетевой инфраструктуры с выделением DMZ на основе UserGate NGFW
    • Организация доступа через Cloud Interconnect к облачным сетям, размещенным за NGFW
    • Настройка защищенного туннеля GRE поверх IPsec
    • Настройка сети для Yandex Data Processing
    • Переключение сетевого соединения при пересоздании кластера Yandex Data Processing
    • Подключение к Object Storage из VPC
    • Подключение к Container Registry из VPC
    • Создание прямого транкового подключения и приватного соединения в нем
    • Создание прямого транкового подключения и публичного соединения в нем
    • Создание нового партнерского транкового подключения и приватного соединения в нем
    • Создание нового партнерского транкового подключения и публичного соединения в нем
    • Добавление приватного соединения в прямое или партнерское транковое подключение
    • Добавление публичного соединения в прямое или партнерское транковое подключение
    • Изменить емкость транкового подключения
    • Изменить набор IP-префиксов в приватном соединении
    • Удалить приватное соединение
    • Удалить публичное соединение
    • Удалить транковое подключение
    • Настройка VRRP для кластера серверов BareMetal
    • Настройка сетевой связности в подсети BareMetal
    • Настройка сетевой связности между подсетями BareMetal и Virtual Private Cloud
    • Доставка USB-устройств на сервер BareMetal или виртуальную машину
    • Настройка межсетевого экрана OPNsense в режиме кластера высокой доступности на серверах BareMetal

В этой статье:

  • Перед началом работы
  • Необходимые платные ресурсы
  • Настройте облачную сеть
  • Создайте облачную сеть и подсеть
  • Создайте группу безопасности
  • Создайте виртуальную машину для VPN-сервера
  • Создайте приватную подсеть BareMetal
  • Арендуйте сервер BareMetal
  • Настройте VPN
  • Настройте VPN-сервер
  • Настройте VPN-клиенты
  • Проверьте работу VPN-соединения
  • Настройте USB over IP
  • Настройте usbip-сервер
  • Настройте usbip-клиент
  • Убедитесь в работоспособности решения
  • Как удалить созданные ресурсы
  1. Архитектура, сетевое взаимодействие
  2. Доставка USB-устройств на сервер BareMetal или виртуальную машину

Доставка USB-устройств на сервер BareMetal или виртуальную машину Compute Cloud

Статья создана
Yandex Cloud
Обновлена 15 мая 2025 г.
  • Перед началом работы
    • Необходимые платные ресурсы
  • Настройте облачную сеть
    • Создайте облачную сеть и подсеть
    • Создайте группу безопасности
  • Создайте виртуальную машину для VPN-сервера
  • Создайте приватную подсеть BareMetal
  • Арендуйте сервер BareMetal
  • Настройте VPN
    • Настройте VPN-сервер
    • Настройте VPN-клиенты
    • Проверьте работу VPN-соединения
  • Настройте USB over IP
    • Настройте usbip-сервер
    • Настройте usbip-клиент
  • Убедитесь в работоспособности решения
  • Как удалить созданные ресурсы

В данном руководстве вы настроите доставку USB-устройств на сервер Yandex BareMetal через VPN-подключение поверх публичного сегмента сети интернет. Для этого вы используете технологию USB over IP и свободно распространяемое программное обеспечение в составе дистрибутивов Linux.

Примечание

Аналогичным образом USB-устройства можно доставить на виртуальную машину Yandex Compute Cloud.

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

С помощью технологии USB over IP:

  • USB-устройства можно доставлять в облачные сервисы, а клиентами в отношении удаленных USB-устройств могут выступать виртуальные машины Compute Cloud или серверы BareMetal.
  • К ВМ и серверам можно подключать удаленные принтеры, сканеры, камеры, аппаратные токены, флеш-накопители и другие периферийные USB-устройства.
  • Для доставки USB-устройств можно использовать как специализированные ПАК решения, так и свободно распространяемое программное обеспечение.
  • Ключи, токены, смарт-карты, доставляемые на серверы и ВМ, могут размещаться в контролируемом периметре с ограниченным доступом.
  • Подключение к удаленным USB-устройствам может быть ограничено стандартными средствами сетевой безопасности.

Важно

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

Схема решения:

  • USB-клиент на облачной площадке – виртуальная машина или физический сервер под управлением ОС Windows или Linux. В данном руководстве в качестве клиента будет использован физический сервер под управлением ОС Linux Ubuntu 24.04 LTS, арендованный в сервисе Yandex BareMetal.

  • USB-сервер на удаленной площадке – устройство под управлением ОС Linux с подключением к локальной сети и VPN-доступом (если доставка данных USB-устройства осуществляется через интернет). В USB-порты USB-сервера будут физически вставляться USB-устройства. В качестве сервера могут использоваться микро-компьютеры, например Raspberry Pi. В данном руководстве в качестве сервера будет использован компьютер под управлением ОС Linux Ubuntu 22.04 LTS, оснащенный несколькими USB-портами.

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

  • Подключаемое USB-оборудование:

    • USB-накопитель с данными.
    • USB-токен.
  • Способ доставки по сети. Доставка удаленных USB-устройств будет выполняться через VPN-подключение поверх публичного сегмента сети интернет с использованием решения WireGuard.

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

Чтобы доставить USB-устройства на сервер BareMetal с помощью технологии USB over IP:

  1. Подготовьте облако к работе.
  2. Настройте облачную сеть.
  3. Создайте виртуальную машину для VPN-сервера.
  4. Создайте приватную подсеть BareMetal.
  5. Арендуйте сервер BareMetal.
  6. Настройте VPN.
  7. Настройте USB over IP.
  8. Убедитесь в работоспособности решения.

Если созданные ресурсы вам больше не нужны, удалите их.

Перед началом работыПеред началом работы

Зарегистрируйтесь в Yandex Cloud и создайте платежный аккаунт:

  1. Перейдите в консоль управления, затем войдите в Yandex Cloud или зарегистрируйтесь.
  2. На странице Yandex Cloud Billing убедитесь, что у вас подключен платежный аккаунт, и он находится в статусе ACTIVE или TRIAL_ACTIVE. Если платежного аккаунта нет, создайте его и привяжите к нему облако.

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

Подробнее об облаках и каталогах.

Необходимые платные ресурсыНеобходимые платные ресурсы

В стоимость предлагаемого решения входят:

  • плата за использование публичного IP-адреса виртуальной машины (см. тарифы Yandex Virtual Private Cloud);
  • плата за вычислительные ресурсы и диски ВМ (см. тарифы Yandex Compute Cloud);
  • плата за аренду сервера BareMetal (см. тарифы Yandex BareMetal).

Настройте облачную сетьНастройте облачную сеть

Создайте облачную сеть и подсетьСоздайте облачную сеть и подсеть

Создайте облачную сеть и подсеть, к которым будет подключена виртуальная машина Compute Cloud – сервер VPN.

Консоль управления
  1. В консоли управления выберите каталог, в котором вы будете создавать облачную инфраструктуру.

  2. В списке сервисов выберите Virtual Private Cloud.

  3. Создайте облачную сеть:

    1. Справа сверху нажмите Создать сеть.
    2. В поле Имя укажите sample-network.
    3. В поле Дополнительно отключите опцию Создать подсети.
    4. Нажмите Создать сеть.
  4. Создайте подсеть:

    1. На панели слева выберите Подсети.
    2. Справа сверху нажмите Создать подсеть.
    3. В поле Имя укажите subnet-ru-central1-b.
    4. В поле Зона выберите зону доступности ru-central1-b.
    5. В поле Сеть выберите облачную сеть sample-network.
    6. В поле CIDR укажите 192.168.11.0/24.
    7. Нажмите Создать подсеть.

Создайте группу безопасностиСоздайте группу безопасности

Создайте группу безопасности vpn-sg для виртуальной машины – сервера VPN.

Консоль управления
  1. В консоли управления выберите каталог, в котором вы создаете облачную инфраструктуру.

  2. В списке сервисов выберите Virtual Private Cloud.

  3. На панели слева выберите Группы безопасности и нажмите кнопку Создать группу безопасности.

  4. В поле Имя задайте имя vpn-sg.

  5. В поле Сеть выберите созданную ранее сеть sample-network.

  6. В блоке Правила создайте следующие правила для управления трафиком:

    Направление
    трафика
    Описание Диапазон портов Протокол Источник /
    Назначение
    CIDR блоки /
    Группа безопасности
    Входящий ssh 22 TCP CIDR 0.0.0.0/0
    Входящий vpn 63665 UDP CIDR 0.0.0.0/0
    Исходящий any Весь Любой CIDR 0.0.0.0/0
  7. Нажмите Создать.

Создайте виртуальную машину для VPN-сервераСоздайте виртуальную машину для VPN-сервера

Консоль управления
  1. В консоли управления выберите каталог, в котором вы создаете инфраструктуру.

  2. В списке сервисов выберите Compute Cloud.

  3. На панели слева выберите Виртуальные машины и нажмите кнопку Создать виртуальную машину.

  4. В блоке Образ загрузочного диска выберите образ Ubuntu 24.04.

  5. В блоке Расположение выберите зону доступности ru-central1-b.

  6. В блоке Сетевые настройки:

    • В поле Подсеть выберите созданную ранее подсеть subnet-ru-central1-b.
    • В поле Публичный IP-адрес выберите Автоматически.
    • В поле Группы безопасности выберите созданную ранее группу безопасности vpn-sg.
  7. В блоке Доступ выберите вариант SSH-ключ и укажите данные для доступа на ВМ:

    • В поле Логин введите имя пользователя: yc-user.
    • В поле SSH-ключ выберите SSH-ключ, сохраненный в вашем профиле пользователя организации.

      Если в вашем профиле нет сохраненных SSH-ключей или вы хотите добавить новый ключ:

      • Нажмите кнопку Добавить ключ.
      • Задайте имя SSH-ключа.
      • Загрузите или вставьте содержимое открытого SSH-ключа. Пару SSH-ключей для подключения к ВМ по SSH необходимо создать самостоятельно.
      • Нажмите кнопку Добавить.

      SSH-ключ будет добавлен в ваш профиль пользователя организации.

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

  8. В блоке Общая информация задайте имя ВМ: wireguard-vpn-server.

  9. Нажмите кнопку Создать ВМ.

Совет

Чтобы VPN-соединение не перестало работать в случае остановки и повторного запуска VPN-сервера, сделайте IP-адрес вашего VPN-сервера статическим.

Создайте приватную подсеть BareMetalСоздайте приватную подсеть BareMetal

Консоль управления
  1. В консоли управления выберите каталог, в котором вы создаете облачную инфраструктуру.
  2. В списке сервисов выберите BareMetal.
  3. На панели слева выберите Приватные подсети и нажмите кнопку Создать подсеть.
  4. В поле Пул выберите пул серверов ru-central1-m3.
  5. В поле Имя задайте имя подсети: subnet-m3.
  6. Не включая опцию IP-адресация и маршрутизация, нажмите кнопку Создать подсеть.

Арендуйте сервер BareMetalАрендуйте сервер BareMetal

Консоль управления
  1. В консоли управления выберите каталог, в котором вы создаете облачную инфраструктуру.

  2. В списке сервисов выберите BareMetal и нажмите кнопку Заказать сервер.

  3. В поле Пул выберите пул серверов ru-central1-m3.

  4. В блоке Конфигурация выберите подходящую конфигурацию сервера.

  5. (Опционально) В блоке Диск настройте разметку дисков:

    1. Нажмите кнопку Настроить разделы диска.

    2. Укажите параметры разделов. Чтобы создать новый раздел, нажмите кнопку Добавить раздел.

      Чтобы самостоятельно собрать RAID-массивы и настроить разделы дисков, нажмите кнопку Разобрать RAID.

    3. Нажмите кнопку Сохранить.

  6. В блоке Образ выберите образ Ubuntu 24.04.

  7. В поле Период аренды выберите период, на который вы заказываете аренду: 1 день, 1 месяц, 3 месяца, 6 месяцев или 1 год.

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

  8. В блоке Сетевые настройки:

    1. В поле Приватная подсеть выберите созданную ранее подсеть subnet-m3.
    2. В поле Публичный адрес выберите Автоматически.
  9. В блоке Доступ:

    1. В поле Пароль воспользуйтесь одним из вариантов создания пароля для root-пользователя:

      • Чтобы сгенерировать пароль для root-пользователя, выберите опцию Новый пароль и нажмите кнопку Сгенерировать.

        Важно

        Этот вариант предусматривает ответственность пользователя за безопасность пароля. Сохраните сгенерированный пароль в надежном месте: он не сохраняется в Yandex Cloud, и после заказа сервера вы не сможете посмотреть его.

      • Чтобы использовать пароль root-пользователя, сохраненный в секрете Yandex Lockbox, выберите опцию Секрет Lockbox:

        В полях Имя, Версия и Ключ выберите соответственно секрет, его версию и ключ, в которых сохранен ваш пароль.

        Если у вас еще нет секрета Yandex Lockbox, нажмите кнопку Создать, чтобы создать его.

        Этот вариант позволяет вам как задать собственный пароль (тип секрета Пользовательский), так и использовать пароль, сгенерированный автоматически (тип секрета Генерируемый).

    2. В поле Открытый SSH-ключ выберите SSH-ключ, сохраненный в вашем профиле пользователя организации.

      Если в вашем профиле нет сохраненных SSH-ключей или вы хотите добавить новый ключ:

      • Нажмите кнопку Добавить ключ.
      • Задайте имя SSH-ключа.
      • Загрузите или вставьте содержимое открытого SSH-ключа. Пару SSH-ключей для подключения к серверу по SSH необходимо создать самостоятельно.
      • Нажмите кнопку Добавить.

      SSH-ключ будет добавлен в ваш профиль пользователя организации.

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

  10. В блоке Информация о сервере в поле Имя задайте имя сервера: my-usbip-client.

  11. Нажмите кнопку Заказать сервер.

Примечание

Подготовка сервера и установка на него операционной системы может занять до 45 минут — в это время сервер будет находиться в статусе Provisioning. После завершения установки ОС сервер перейдет в статус Ready.

Настройте VPNНастройте VPN

Чтобы настроить доставку USB-устройств на сервер BareMetal с компьютера на удаленной площадке, организуйте VPN-подключение в составе VPN-сервера, развернутого на виртуальной машине Compute Cloud, и двух VPN-клиентов – на сервере BareMetal и на компьютере на удаленной площадке.

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

Примечание

На стороне сервера должен быть открыт порт TCP 3240, трафик на который должен быть разрешен VPN-соединением.

Настройте VPN-серверНастройте VPN-сервер

  1. Подключитесь по SSH к созданной ранее виртуальной машине wireguard-vpn-server.

  2. Установите WireGuard и необходимые зависимости:

    sudo apt update && sudo apt install wireguard resolvconf
    
  3. Включите IP Forwarding в настройках ядра Linux:

    1. Откройте файл конфигурации sysctl.conf:

      sudo nano /etc/sysctl.conf
      
    2. Добавьте в конец файла sysctl.conf строку:

      net.ipv4.ip_forward = 1
      
    3. Примените измененные настройки ядра:

      sudo sysctl -p
      
  4. Сгенерируйте ключи для шифрования VPN-трафика:

    wg genkey | sudo tee server_private.key | wg pubkey | sudo tee server_public.key > /dev/null
    wg genkey | sudo tee bms_private.key | wg pubkey | sudo tee bms_public.key > /dev/null
    wg genkey | sudo tee remote_private.key | wg pubkey | sudo tee remote_public.key > /dev/null
    

    В текущей директории созданы шесть файлов:

    • server_private.key – содержит закрытый ключ шифрования VPN-сервера.
    • server_public.key – содержит открытый ключ шифрования VPN-сервера.
    • bms_private.key – содержит закрытый ключ шифрования VPN-клиента – сервера BareMetal.
    • bms_public.key – содержит открытый ключ шифрования VPN-клиента – сервера BareMetal.
    • remote_private.key – содержит закрытый ключ шифрования VPN-клиента на удаленной площадке.
    • remote_public.key – содержит открытый ключ шифрования VPN-клиента на удаленной площадке.

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

  5. Создайте файл конфигурации WireGuard VPN-сервера:

    1. Откройте файл конфигурации:

      sudo nano /etc/wireguard/wg0.conf
      
    2. Добавьте в файл следующую конфигурацию, указав содержимое полученных на предыдущем шаге ключей шифрования:

      [Interface]
      Address = 192.168.100.1/24
      ListenPort = 63665
      PrivateKey = <содержимое_файла_server_private.key>
      
      [Peer]
      PublicKey = <содержимое_файла_bms_public.key>
      AllowedIPs = 192.168.100.2/32
      
      [Peer]
      PublicKey = <содержимое_файла_remote_public.key>
      AllowedIPs = 192.168.100.3/32
      
  6. Запустите WireGuard:

    sudo wg-quick up wg0
    

    Результат:

    [#] ip link add wg0 type wireguard
    [#] wg setconf wg0 /dev/fd/63
    [#] ip -4 address add 192.168.100.1/24 dev wg0
    [#] ip link set mtu 1420 up dev wg0
    

    Чтобы остановить WireGuard, используйте команду sudo wg-quick down wg0.

    Примечание

    Чтобы включить автоматический запуск WireGuard, выполните команду:

    sudo systemctl start wg-quick@wg0 && sudo systemctl enable wg-quick@wg0
    

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

  1. Подключитесь по SSH к арендованному ранее серверу BareMetal my-usbip-client.

  2. Установите WireGuard и необходимые зависимости:

    sudo apt update && sudo apt install wireguard resolvconf
    
  3. Включите IP Forwarding в настройках ядра Linux:

    1. Откройте файл конфигурации sysctl.conf:

      sudo nano /etc/sysctl.conf
      
    2. Добавьте в конец файла sysctl.conf строку:

      net.ipv4.ip_forward = 1
      
    3. Примените измененные настройки ядра:

      sudo sysctl -p
      
  4. Создайте файл конфигурации WireGuard VPN-клиента:

    1. Откройте файл конфигурации:

      sudo nano /etc/wireguard/wg0.conf
      
    2. Добавьте в файл следующую конфигурацию:

      [Interface]
      PrivateKey = <содержимое_файла_bms_private.key>
      Address = 192.168.100.2/32
      
      [Peer]
      PublicKey = <содержимое_файла_server_public.key>
      Endpoint = <публичный_IP-адрес_ВМ>:63665
      AllowedIPs = 192.168.100.0/24
      PersistentKeepalive = 15
      

      Где:

      • PrivateKey – содержимое созданного при настройке VPN-сервера файла bms_private.key с закрытым ключом шифрования этого VPN-клиента.
      • PublicKey – содержимое созданного при настройке VPN-сервера файла server_public.key с открытым ключом шифрования VPN-сервера.
      • <публичный_IP-адрес_ВМ> – публичный IP-адрес виртуальной машины с развернутым VPN-сервером. Публичный IP-адрес ВМ можно узнать в консоли управления, в поле Публичный IPv4-адрес блока Сеть на странице с информацией о ВМ.
  5. Запустите WireGuard:

    sudo wg-quick up wg0
    

    Результат:

    [#] ip link add wg0 type wireguard
    [#] wg setconf wg0 /dev/fd/63
    [#] ip -4 address add 192.168.100.2/32 dev wg0
    [#] ip link set mtu 1420 up dev wg0
    [#] ip -4 route add 192.168.100.0/24 dev wg0
    
  6. Аналогичным образом настройте VPN-клиент WireGuard на компьютере на удаленной площадке, при этом в файле конфигурации WireGuard wg0.conf в поле PrivateKey укажите содержимое созданного при настройке VPN-сервера файла remote_private.key с закрытым ключом шифрования VPN-клиента на удаленной площадке.

Проверьте работу VPN-соединенияПроверьте работу VPN-соединения

На этом этапе VPN-соединение установлено. Чтобы проверить его работу:

  1. Подключитесь по SSH к серверу BareMetal my-usbip-client и выполните команду:

    ping 192.168.100.3 -c 5
    

    Результат:

    PING 192.168.100.3 (192.168.100.3) 56(84) bytes of data.
    64 bytes from 192.168.100.3: icmp_seq=1 ttl=63 time=29.9 ms
    64 bytes from 192.168.100.3: icmp_seq=2 ttl=63 time=30.9 ms
    64 bytes from 192.168.100.3: icmp_seq=3 ttl=63 time=35.5 ms
    64 bytes from 192.168.100.3: icmp_seq=4 ttl=63 time=30.5 ms
    64 bytes from 192.168.100.3: icmp_seq=5 ttl=63 time=28.2 ms
    
    --- 192.168.100.3 ping statistics ---
    5 packets transmitted, 5 received, 0% packet loss, time 4005ms
    rtt min/avg/max/mdev = 28.249/30.987/35.453/2.405 ms
    

    Сетевая связность между VPN-клиентами установлена, пакеты проходят без потерь.

  2. В терминале компьютера на удаленной площадке выполните команду:

    ping 192.168.100.2 -c 5
    

    Результат:

    PING 192.168.100.2 (192.168.100.2) 56(84) bytes of data.
    64 bytes from 192.168.100.2: icmp_seq=1 ttl=63 time=30.2 ms
    64 bytes from 192.168.100.2: icmp_seq=2 ttl=63 time=28.4 ms
    64 bytes from 192.168.100.2: icmp_seq=3 ttl=63 time=31.6 ms
    64 bytes from 192.168.100.2: icmp_seq=4 ttl=63 time=27.4 ms
    64 bytes from 192.168.100.2: icmp_seq=5 ttl=63 time=27.6 ms
    
    --- 192.168.100.2 ping statistics ---
    5 packets transmitted, 5 received, 0% packet loss, time 4007ms
    rtt min/avg/max/mdev = 27.381/29.041/31.600/1.608 ms
    

    Сетевая связность между VPN-клиентами установлена, пакеты проходят без потерь.

Настройте USB over IPНастройте USB over IP

Доставка USB-устройства на сервер BareMetal будет осуществлена с помощью программы usbip.

Настройте usbip-серверНастройте usbip-сервер

В качестве usbip-сервера будет выступать компьютер на удаленной площадке, оснащенный несколькими USB-портами. В терминале этого компьютера:

  1. Установите дополнительные пакеты, необходимые для работы usbip:

    sudo apt install linux-tools-`uname -r`
    
  2. Загрузите необходимые для работы usbip модули ядра:

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

    Где:

    • usbip-core – главный компонент серверной части.
    • usbip-host – компонент, отвечающий за управление USB-устройствами.
    • vhci-hcd – компонент, отвечающий за экспорт USB-устройств.

    Примечание

    Чтобы настроить автоматическую загрузку этих модулей при запуске системы, откройте файл /etc/modules-load.d/modules.conf в любом текстовом редакторе и добавьте в него строки:

    usbip-core
    usbip-host
    vhci-hcd
    
  3. Вставьте USB-устройства в порты компьютера.

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

  4. Запросите список доступных для публикации USB-устройств:

    sudo usbip list -l
    

    Результат:

    - busid 1-1.2 (0951:1666)
      Kingston Technology : DataTraveler 100 G3/G4/SE9 G2/50 (0951:1666)
    
    - busid 1-1.3 (058f:a001)
      Alcor Micro Corp. : unknown product (058f:a001)
    
    - busid 1-1.4 (0cf3:3005)
      Qualcomm Atheros Communications : AR3011 Bluetooth (0cf3:3005)
    
    - busid 1-1.5 (1050:0407)
      Yubico.com : Yubikey 4/5 OTP+U2F+CCID (1050:0407)
    
    - busid 2-1.1 (0458:6001)
      KYE Systems Corp. (Mouse Systems) : GF3000F Ethernet Adapter (0458:6001)
    
  5. Опубликуйте устройства с busid 1-1.2 и busid 1-1.5:

    sudo usbip bind -b 1-1.2
    sudo usbip bind -b 1-1.5
    

    Результат:

    usbip: info: bind device on busid 1-1.2: complete
    usbip: info: bind device on busid 1-1.5: complete
    
  6. Запустите демон usbipd:

    sudo usbipd -4 -D
    

На этом этапе выбранные USB-устройства опубликованы и доступны для импорта по сети на стороне usbip-клиента.

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

В качестве usbip-клиента будет выступать сервер BareMetal my-usbip-client.

  1. Подключитесь по SSH к серверу BareMetal my-usbip-client.

  2. Установите дополнительные пакеты, необходимые для работы usbip:

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

    Примечание

    Если в качестве usbip-клиента вы используете виртуальную машину Yandex Compute Cloud, дополнительно установите пакет linux-image-extra-virtual:

    sudo apt install linux-image-extra-virtual
    
  3. Загрузите необходимые для работы usbip модули ядра:

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

    Где:

    • usbip-core – главный компонент серверной части.
    • usbip-host – компонент, отвечающий за управление USB-устройствами.
    • vhci-hcd – компонент, отвечающий за экспорт USB-устройств.
  4. Запросите список доступных для импорта с usbip-сервера USB-устройств:

    usbip list -r 192.168.100.3
    

    Результат:

    Exportable USB devices
    ======================
    - 192.168.100.3
          1-1.5: Yubico.com : Yubikey 4/5 OTP+U2F+CCID (1050:0407)
              : /sys/devices/platform/vhci_hcd.0/usb1/1-1/1-1.5
              : (Defined at Interface level) (00/00/00)
    
          1-1.2: Kingston Technology : DataTraveler 100 G3/G4/SE9 G2/50 (0951:1666)
              : /sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2
              : (Defined at Interface level) (00/00/00)
    
  5. Импортируйте устройства с usbip-клиента:

    usbip attach -r 192.168.100.3 -b 1-1.2
    usbip attach -r 192.168.100.3 -b 1-1.5
    

На этом этапе выбранные USB-устройства импортированы по сети на сервер BareMetal.

Убедитесь в работоспособности решенияУбедитесь в работоспособности решения

Чтобы проверить подключение к удаленным USB-устройствам, подключитесь по SSH к серверу BareMetal my-usbip-client и выполните в терминале несколько проверочных действий:

  1. Выполните команду, чтобы посмотреть журнал dmesg:

    dmesg
    

    Результат:

    Флеш-накопитель
    Устройство YubiKey
    ...
    [522540.280156] vhci_hcd vhci_hcd.0: pdev(0) rhport(0) sockfd(3)
    [522540.280165] vhci_hcd vhci_hcd.0: devid(65539) speed(3) speed_str(high-speed)
    [522540.280177] vhci_hcd vhci_hcd.0: Device attached
    [522540.500110] usb 3-1: new high-speed USB device number 2 using vhci_hcd
    [522540.618122] usb 3-1: SetAddress Request (2) to port 0
    [522540.671557] usb 3-1: New USB device found, idVendor=0951, idProduct=1666, bcdDevice= 0.01
    [522540.671571] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    [522540.671577] usb 3-1: Product: DataTraveler 3.0
    [522540.671581] usb 3-1: Manufacturer: Kingston
    [522540.671585] usb 3-1: SerialNumber: D067E5162216F1B14605943F
    [522540.690082] usb-storage 3-1:1.0: USB Mass Storage device detected
    [522540.690801] scsi host7: usb-storage 3-1:1.0
    [522540.691020] usbcore: registered new interface driver usb-storage
    [522540.694262] usbcore: registered new interface driver uas
    [522541.728481] scsi 7:0:0:0: Direct-Access     Kingston DataTraveler 3.0      PQ: 0 ANSI: 6
    [522541.729122] sd 7:0:0:0: Attached scsi generic sg2 type 0
    [522541.763235] sd 7:0:0:0: [sdc] 15109516 512-byte logical blocks: (7.74 GB/7.20 GiB)
    [522541.775808] sd 7:0:0:0: [sdc] Write Protect is off
    [522541.775829] sd 7:0:0:0: [sdc] Mode Sense: 4f 00 00 00
    [522541.788402] sd 7:0:0:0: [sdc] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
    [522541.890019]  sdc: sdc1
    [522541.890454] sd 7:0:0:0: [sdc] Attached SCSI removable disk
    ...
    

    На стороне сервера было смонтировано и отдано в удаленный доступ USB-устройство производителя Kingston, которое является блочным флеш-накопителем. Устройство было распознано как /dev/sdc.

    ...
    [1039400.471187] vhci_hcd vhci_hcd.0: pdev(0) rhport(1) sockfd(3)
    [1039400.471211] vhci_hcd vhci_hcd.0: devid(65540) speed(2) speed_str(full-speed)
    [1039400.471223] vhci_hcd vhci_hcd.0: Device attached
    [1039400.640976] vhci_hcd: vhci_device speed not set
    [1039400.697969] usb 3-2: new full-speed USB device number 4 using vhci_hcd
    [1039400.763979] vhci_hcd: vhci_device speed not set
    [1039400.820985] usb 3-2: SetAddress Request (4) to port 1
    [1039400.872797] usb 3-2: New USB device found, idVendor=1050, idProduct=0407, bcdDevice= 5.43
    [1039400.872812] usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
    [1039400.872818] usb 3-2: Product: YubiKey OTP+FIDO+CCID
    [1039400.872822] usb 3-2: Manufacturer: Yubico
    [1039400.894510] input: Yubico YubiKey OTP+FIDO+CCID as /devices/platform/vhci_hcd.0/usb3/3-2/3-2:1.0/0003:1050:0407.0003/input/input7
    [1039400.977251] hid-generic 0003:1050:0407.0003: input,hidraw2: USB HID v1.10 Keyboard [Yubico YubiKey OTP+FIDO+CCID] on usb-vhci_hcd.0-2/input0
    [1039400.987196] hid-generic 0003:1050:0407.0004: hiddev0,hidraw3: USB HID v1.10 Device [Yubico YubiKey OTP+FIDO+CCID] on usb-vhci_hcd.0-2/input1
    ...
    

    На стороне сервера было смонтировано и отдано в удаленный доступ USB-устройство производителя Yubico.

  2. Убедитесь в наличии доступа к данным на удаленных USB-устройствах:

    Флеш-накопитель
    Устройство YubiKey
    1. Получите информацию о блочных устройствах сервера BareMetal:

      lsblk /dev/sdc
      

      Результат:

      NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
      ...
      sdc      8:32   1  7.2G  0 disk 
      └─sdc1   8:33   1  7.2G  0 part
      
    2. Смонтируйте раздел флеш-накопителя /dev/sdc1 в директорию /mnt/sdc1:

      mkdir -p /mnt/sdc1
      mount /dev/sdc1 /mnt/sdc1
      
    3. Посмотрите список смонтированных устройств и доступное для записи дисковое пространство:

      df -h
      

      Результат:

      Filesystem      Size  Used Avail Use% Mounted on
      ...
      /dev/sdc1       7.2G   16K  7.2G   1% /mnt/sdc1
      
    4. Скопируйте файл конфигурации WireGuard на удаленный USB-накопитель:

      cp -r /etc/wireguard /mnt/sdc1
      
    5. Просмотрите список файлов на удаленном USB-накопителе:

      ls -la /mnt/sdc1/wireguard/
      

      Результат:

      total 48
      drwxr-xr-x 2 root root 16384 Apr 20 19:46 .
      drwxr-xr-x 4 root root 16384 Jan  1  1970 ..
      -rwxr-xr-x 1 root root   247 Apr 20 19:46 wg0.conf
      

    Проверка завершена: файл успешно скопирован на удаленный USB-накопитель.

    1. Установите набор утилит, необходимых для работы с аппаратным токеном YubiKey:

      apt install yubico-piv-tool
      
    2. Выполните запрос статуса оборудования Yubico:

      yubico-piv-tool -a status
      

      Результат:

      Version:        5.4.3
      Serial Number:  ********
      CHUID:  No data available
      CCC:    No data available
      Slot 9c:
              Algorithm:      RSA2048
              Subject DN:     CN=5-ay-yubi
              Issuer DN:      CN=ChangeMe
              Fingerprint:    15e4ec25********************************************************
              Not Before:     Feb 19 08:29:13 2025 GMT
              Not After:      Feb 16 08:29:13 2035 GMT
      PIN tries left: 3
      
    3. Получите открытый сертификат клиента из хранилища аппаратного токена Yubico, указав в параметре -s значение поля Slot из вывода предыдущей команды:

      yubico-piv-tool -a read-cert -s 9c
      

      Результат:

      -----BEGIN CERTIFICATE-----
      MIIDUjCCA*******************************************************
      ****************************************************************
      ****************************************************************
      ****************************************************************
      ****************************************************************
      ****************************************************************
      ****************************************************************
      ****************************************************************
      ****************************************************************
      ****************************************************************
      ****************************************************************
      ****************************************************************
      ****************************************************************
      ****************************************************************
      ****************************************************************
      ****************************************************************
      ****************************************************************
      ***************************************t7Ts9P8CTUsyw=
      -----END CERTIFICATE-----
      

    Проверка завершена: оборудование Yubico возвращает корректный статус, данные сертификата из хранилища токена считываются без ошибок.

Как удалить созданные ресурсыКак удалить созданные ресурсы

Чтобы перестать платить за созданные ресурсы:

  1. Удалите виртуальную машину.
  2. Удалить сервер BareMetal нельзя. Вместо этого откажитесь от продления аренды сервера.

Была ли статья полезна?

Предыдущая
Настройка сетевой связности между подсетями BareMetal и Virtual Private Cloud
Следующая
Настройка межсетевого экрана OPNsense в режиме кластера высокой доступности на серверах BareMetal
Проект Яндекса
© 2025 ООО «Яндекс.Облако»