Как пробросить эцп на виртуальную машину

от admin

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

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

Давайте посмотрим, как реализовать проброс USB–ключа по сети в виртуальную машину с Linux в облаке Azure Pack Infrastructure от InfoboxCloud.

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

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

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

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

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

Скачайте USB Redirector:

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

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

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

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

Подключив USB–ключ к выделенному серверу проверим какие USB–устройства доступны:

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

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

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

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

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

Записки IT специалиста

RDP-token-crypto-000.png

Электронно-цифровая подпись (ЭЦП) и токены, как средство ее хранения, плотно вошли в нашу жизнь, трудно представить себе предприятие, где нет хотя бы одной подписи. Другая распространенная технология — это удаленный рабочий стол (RDP), это может быть как сервер терминалов, так и просто доступ к рабочему месту сотрудника. Вполне ожидаемы попытки использовать обе эти технологии совместно, где и начинаются проблемы. В большинстве своем они проистекают от непонимания того, что такое токен, для чего он нужен и как с ним правильно работать.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Если мы говорим о токенах применительно к ЭЦП, то их основная задача — безопасное хранение закрытого ключа. Компрометация закрытого ключа равносильна полной утере подписи, так как с его помощью любой желающий может совершать от вашего имени юридически значимые действия. Использование усиленной квалифицированной электронной подписи (УКЭП) равносильно нотариально заверенной собственноручной подписи владельца. Начиная с 2022 года УКЭП выдается ФНС в единственном экземпляре, тем самым завершив эпоху зоопарка подписей, когда одно и тоже лицо (юридическое или физическое) могло иметь кучу подписей от разных УЦ, каждая из которых использовалась для собственного сервиса.

Но мы немного отклонились от темы. Но, благодаря этому отступлению можно понять, что ЭЦП — это очень важно и к ее безопасности следует относиться серьезно. Токены решают одну простую задачу — не допустить выход закрытого ключа за свои пределы. При любых криптографических операциях закрытый ключ не покидает пределов токена и не может быть просто так оттуда скопирован. В этом его основное отличие от таких хранилищ ЭЦП как флеш-карта или реестр, откуда ключи можно легко извлечь при наличии доступа.

Учитывая важность ЭЦП сложилась следующая парадигма — токен это индивидуальное аппаратное средство подписи и аутентификации, а сама идея удаленного доступа к нему идет вразрез со всеми представлениями о безопасности.

Начиная с Windows Vista при подключении к компьютеру при помощи RDP работа со смарт-картами и токенами, подключенными к удаленной машине невозможна.

Чтобы лучше разобраться в этом вопросе давайте проведем некоторые практические эксперименты. Мы будем использовать в них токены JaCarta, но это не имеет никакого значения, аналогично будут вести себя любые токены от любого производителя.

Подключим токен непосредственно к серверу терминалов и подключимся к нему интерактивно, т.е. через локальную консоль. В системе токен определяется как смарт-карта и устройство чтения смарт-карт.

RDP-token-crypto-001.png

Родное ПО также видит токен и сертификаты на нем:

RDP-token-crypto-002.png

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

RDP-token-crypto-003.png

Как мы уже писали выше, из RDP-сессии доступ к токенам и смарт-картам, подключенным к удаленному устройству невозможен!

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

RDP-token-crypto-004.png

У многих здесь может возникнуть вопрос: а безопасно ли это? Пробрасывать токен на сервер? Да, безопасно, потому что пробрасывается стандартное устройство смарт-карта и все последующее взаимодействие идет именно с этим устройством, а критически важная информация, такая как закрытый ключ, ни при каких обстоятельствах не покидает пределы токена.

А если пользователей несколько и у каждого свой токен со своей ЭЦП? Ничего страшного, система предоставляет эффективную изоляцию токена в пределах сеанса. Берем еще один токен, подключаем ко второму компьютеру и соединяемся с сервером, как мы и ожидали, в текущей сессии пользователь видит только свой ключ.

RDP-token-crypto-005.png

Поэтому единственный правильный вариант сочетания ЭЦП расположенной на токенах и удаленного рабочего стола (RDP) — это расположение токена на клиенте с последующим пробросом устройства смарт-карты на терминальный сервер. С настройками по умолчанию это происходит автоматически, в противном случае проверьте, что у вас разрешен проброс смарт-карт как на клиенте, так и на сервере.

RDP-token-crypto-006.png

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

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

RDP-token-crypto-007.png

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

RDP-token-crypto-008.png

Как видим, если понимать основные принципы работы токенов при RDP-подключении, то никаких сложностей по работе с ними нет. Если необходим удаленный доступ, то вместо RDP используем иные средства, позволяющие непосредственно подключаться к локальному сеансу. Ну и не забываем, что ЭЦП — это большая ответственность и вопросы безопасности должны стоять на первом месте.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Поддержи проект!

Или подпишись на наш Телеграм-канал: Подпишись на наш Telegram-канал

Кто-нибудь пробовал ставить КриптоПро на виртульную машину?

(7) А ну если чисто для клиент-банка то согласен, у нас так и сделано стоит крипто про на виртаулках, потому что разные клиент-банки требуют разные версии ИЕ/Крипто про, а иногда и просто не дружат на одной машине. Поэтому пришлось распихивать по виртуалкам.

Плюс СБИС/Контур со своей крипто про стоит на отдельной виртуалки, прекрасно работает.

Просто форум 1С-никав и я думал что вопрос тоже имеет отношения к 1С

(3) не все йогурты одинаковы. и не все ключи экспортируемы.

(6) научи, как с джакарты ключ ну хоть куда (я уж не говорю про реестр) сохранить.

(10) Который при "плановой перегенерации" (3) прекрасно сохраняется уже не на тот же е-ру токен.

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

Читать:
Что делать если отвертка прокручивается в винте

НО! Есть косяк у Крипто про.
В логах постоянно ошибки на dll и время от времени отваливается доступ по Rdp

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

Как обычно наши разработают, на основе библиотек от MS.
MS библиотеку меняют. Наше ПО или не работает или мешает работе винды.

Для примера, ошибку с VipNet не исправляют уже год как.
Приходится не ставить штук 20 обновлений, иначе винда просто не загрузится )))

VirtualBox: Как прокинуть в виртуальную машину USB устройство

VirtualBox: Как прокинуть в виртуальную машину USB устройство

Данная статья предназначена специально для тех, кто хочет «прокинуть» напрямую в виртуальную машину под управлением VirtualBox USB устройство но не знает как. Этим устройством может быть что угодно — принтер, подключенный по USB, флешка, какой-либо USB токен (Рутокен, eToken) и т. д.

И так, что нужно для этого:

  1. Включаем виртуальную машину и ждем окончания её загрузки.
  2. В верхнем меню VirtualBox находим пункт «Устройства«, и нажимаем на него. Там находим пункт «USB«, и тоже нажимаем на него.
  3. В раскрывшемся списке устройств находим нужное и нажимаем на него. После этого оно будет проброшено прямо в виртуальную машину.

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

  1. Открываем главное окно программы VirtualBox, и нажимаем правой кнопкой на нужной виртуальной машине. В появившемся меню выбираем пункт «Свойства«.

    В свойствах переходим на вкладку под названием «USB».
  2. Если ваше устройство уже вставлено в компьютер, и нужно настроить его автоматический проброс, то нужно нажать на иконку с зеленым плюсом, которая находится в правой части окна. Там, в выпадающем списке нужно выбрать нужное USB устройство.
  3. Выбранное устройство появится в списке «Фильтр устройств USB», откуда его можно будет в любой момент либо удалить, либо выключить (просто нажав галочку). Теперь, для того, чтобы внесенные изменения вступили в силу, необходимо добавленное ранее USB устройство переподключить к компьютеру — для этого подойдет банальное физическое переподключение. Как только вы повторно подключите устройство к компьютеру, оно будет автоматически проброшено в виртуальную среду.
Была ли эта статья Вам полезна?

Комментарии к статье (24)

    • Гость
    • 11.07.2022 22:04

    Мне не помогло описанное решение, флешка по прежнему не видна в гостевой машине.

    • Ответить
    • Гость
    • 27.11.2021 16:52

    выходит ошибка. Что делать? помогите пожалуйста

    • Ответить
      • Recluse
      • 28.11.2021 15:01

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

      • Ответить
      • Гость
      • 03.04.2021 11:33

      Нет описания случая когда USB устройство не отображается в списке. Например, принтер

      • Ответить
      • Айдар
      • 18.07.2020 14:49

      Есть переходник usb-rs232. На основной ОС (WINDOWS 10) установлены дравйвера и устройство работает нормально. Но необходимо чтобы перезодник работал на виртуальном windows 2000. Как заставить windows 2000 видеть переходник. Драйвера туда отдельно ставить и как настроить COM порты.

      • Ответить
        • Recluse
        • 19.07.2020 15:45

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

        • Ответить
        • Александр
        • 03.06.2020 03:43

        Извините не знал, что устанавливать Extension Pack нужно без установленной гостевой машине. Установил VirtualBox Extension Pack версия соответствует номеру версии VirtualBox. При подключении USB флешки пишет «Не удалось подсоединить устройство». Причём в Основной системе флешка пропадает.

        • Ответить
        • Александр
        • 03.06.2020 02:26

        Сергей. Пробовал устанавливать VirtualBox Extension Pack, но в настройках VirtualBox нет пункта Плагины. Есть пункты: Общие, Система, Дисплей, Носители, Аудио, Сеть, COMпорты, USB, Общие папки, Интерфейс пользователя. Как установить?

        • Ответить
          • Анонимно
          • 08.09.2021 11:24

          Искать надо в настройках программы.

          • Ответить
          • Александр
          • 01.06.2020 10:34

          Здравствуте! Никак не могу увидеть сканер в виртуалке. Основная ОС win7 x64 гостевая winXP SP3 сканер HP ScanJet 2200C. После манипуляций описанных Вами появляется окно с текстом Не удалость установить драйвер для этого устройства. Причём это относится и к попытке пробросить USB флеш. На вирт.машине не устанавливал драйвер для сканера.

          • Ответить
            • Recluse
            • 01.06.2020 12:46

            Судя по тому, что даже флешка у Вас не прокидывается, проблема не с драйверами, а с чем-то другим.

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

            Так же, возможно, Вам нужно поставить VirtualBox Extension Pack той же версии, что и VirtualBox.

            • Ответить
            • Сергей
            • 17.04.2020 11:15

            Плскажите, что может быть не так.
            ОС Rosa 8.2
            VitrualBox 6.1.6
            Установлена Win7
            Пакет расширения установлен.
            Включено USB2.0

            Но USB устройств не видит. Их просто нет в списке, хотя они подключены и из основной ОС они видны.

            • Ответить
              • Recluse
              • 17.04.2020 13:12

              Возможно Вам нужно поставить VirtualBox Extension Pack той же версии, что и VirtualBox.

              Например, в этой теме официального форума данного дистрибутива, человек пишет, что хоть у него и стоял VirtualBox Extension Pack, но удаление и повторная установка решила его проблему.

              • Ответить
              • Сергей
              • 03.02.2019 12:50

              А возможно как-либо подключить сканер в виртуалку (где установлена WinXP), если он выше WinXP не работает (не поддерживается), при том что это проделывается в Ubuntu? В фильтрах usb сканера нет, только видно в терминале через lsusb что устройство в наличии, но драйверов нет и он не работает под убунту, тем более под 64 бит.
              В общем ситуация когда основная система не имеет на устройство драйвера.

              • Ответить
                • Recluse
                • 03.02.2019 16:03

                Если не ошибаюсь, то возможность прокидывать устройство в ВМ без наличия драйверов хоста у VirtualBox есть. Для этого нужно прописать корректные параметры для вашего сканера в фильтре.

                • Ответить
                • Руслан
                • 13.01.2019 13:40
                • Ответить
                • Руслан
                • 08.01.2019 10:59

                Почему при подключении сканера, USB постоянно начинает переподключаться пока не выключешь VB. Основная ОС — Win10 (х64), виртуалка — ХР (х32). Патчи установленны. И там и там устройство видно, только в десятке неизвестное, в хрюшке определяется но не подключается. Пробовал экспериментировать в настройках с USB 2.0 и 1.1 — без результата. Так же пробовал подключать сканер уже после запуска ВМ и перед. Перед — определяет, но невозможно подключить в VB, а если после — начинает переподключаться, как вроде конфликт ОС, друг у друга его выхватывают и в итоге ни тот ни тот не успевает определить оборудование и это не прекращается пока не выключу VB, только после этого десятка определяет его как неизвестное. Как его пробросить в VB?

                • Ответить
                  • Recluse
                  • 08.01.2019 18:58

                  В «фильтрах устройств USB» у вас что?

                  • Ответить
                    • Руслан
                    • 13.01.2019 13:14

                    Стоит галочка «Включить контроллер USB», чек на «Контроллер USB 2.0», в фильтре устройств сканер Mustek 1200 UB Plus определяется как «Ultima Electronics Corp. Artec Ultima 2000 (GT6801 based)/Lifetec LT9385/ScanMagic 1200 UB Plus Scanner [0100]», в свойствах которого есть ID поставщика — 05d8, ID продукта — 4002, Ревизия — 0100, в Удаленный стоит «нет», а в остальном пусто. На нетбуке с Windows 7 x32 устройство работает нормально, а на ПК с WIN10 x64 ни в какую.
                    Старый принтер ML-1520 пробрасывается без проблем, печатает.

                    • Ответить
                      • Recluse
                      • 13.01.2019 13:54

                      У меня были мысли, что у вас возможно как-то ошибочно настроен фильтр в VB, но судя по всему там у вас все нормально. Пробовали создать новую ВМ и попробовать пробросить устройство туда? Увы, больше мыслей у меня не возникает про то, как можно решить данную ситуацию.

                      • Ответить
                        • Руслан
                        • 13.01.2019 15:34

                        Пробовал создавать заново, пересоздавать, пробовал менял образы windows xp. Даже образ windows 7 , который установлен на ноутбуке, так же не прокидывает этот сканер в VB. А на нетбуке с этой виндой все ок. Сканирует. Какой-то конфликт драйверов. Ну не может это быть связано с тем что хостовая винда х64, а в VB х86

                        • Ответить
                          • Руслан
                          • 13.01.2019 20:09

                          Кажется нашел в чем проблема. Забыл что лет 5 назад уже пытался подружить эту винду и сканер и по ошибке подсунул не тот драйвер (то же семейство с теми же ID). После очистки реестра от неправильных драйверов все заработало.

                          • Ответить
                          • Иван
                          • 13.12.2019 18:12

                          У меня та же самая ситуация, с тем же самым сканером. У вас в итоге получилось подружить виртуалку с ним? Можете сбросить мне правильные драйвера? Спасибо.

Похожие статьи