- Краткое описание задачи
- #16 ответ от аверченко кирилл 2021-03-01 11:48:10
- #17 ответ от pestov_ev 2021-03-01 12:40:13
- Re: проброс 11 рутокенов средствами freerdp
- Ru1084 – база знаний – сервер документации рутокен
- Выбор решения
- Клиент для linux
- Клиент для windows
- Настройка virtualhere
- Настройка сервера
- Проброс 11 рутокенов средствами freerdp
- Проброс 11 рутокенов средствами freerdp (страница 1 из 2)
- Проброс 11 рутокенов средствами freerdp (страница 2 из 2)
- Сообщений с 16 по 18 из 18
- Токены и удаленный рабочий стол (rdp подключение)
Краткое описание задачи
Задача, собственно, проста. Есть порядка 5-10 USB устройств, которые будут периодически подключаться к разным клиентам. Соответственно, все эти USB устройства физически должны быть подключены к какому-то одному устройству, которое будет доступно всем клиентам. Клиенты же уже в порядке живой очереди будут “разбирать” пул доступных устройств.
В силу особенностей работы 1 USB устройство в один момент времени будет подключено только к одному клиенту.
Если у вас исключительно Linux окружение, то вы можете использовать встроенное решение USB/IP.
#16 ответ от аверченко кирилл 2021-03-01 11:48:10
- Аверченко Кирилл
- Техническая поддержка
- Неактивен
#17 ответ от pestov_ev 2021-03-01 12:40:13
- pestov_ev
- Посетитель
- Неактивен
Re: проброс 11 рутокенов средствами freerdp
Провели повторное тестирование.В предыдущем тестировании каждый токен был подключен к отдельному ПК, в текущем использовано 5 ПК, на некоторых из которых запускалось несколько ВМ, через каждую из которых прокидывался 1 рутокен на сервер.
Эксперимент 1
Действия на каждой ВМ Debian
Рутокен проброшен в ВМ средствами VirtualBox
Рутокен проверен командой pcsc_scan
Ru1084 – база знаний – сервер документации рутокен
Простая, но мощная по возможностям программа, состоит из двух частей. Первая – это Server который нужно установить или запустить на удаленном компьютере и Viewer, который позволяет управлять другим компьютером. Для работы программа требует больше навыков и опыта от пользователя. Сервер можно один раз установить и больше никаких действий от пользователя не нужно, ID будет всегда постоянный, его даже можно задать самому вручную, что очень удобно для запоминания. Версия LiteManager Free является бесплатной для личного и коммерческого использования.
§
§
Выбор решения
Программного обеспечения, которое может обеспечить проброс USB устройств по сети, очень много. После долгих сравнений набора возможностей, стоимости и предлагаемого набора клиентов решение было выбрано – VirtualHere.
Скажу сразу – решение платное (49$). Однако, лицензируется сервер целиком, т.е. нет ограничений на количество подключенных устройств. Без лицензии в один и тот же момент времени можно использовать только одно USB устройство. Для настройки PoC (Proof of Concept) решения этого достаточно. Вы сможете проверить – подойдет ли вам этот продукт или нет.
Почему VirtualHere?
Аргументы в сторону выбора этого решения:
- Большой выбор серверной части – Window, Linux, Android, OSX.
- До безобразия простая настройка сервера.
- Достаточно большой набор клиентов. Есть клиент под Windows, Linux, Mac OS и Android.
- Клиент может быть запущен как сервис.
- У клиента есть как графический вариант, так и консольный аналог.
- У клиента есть свой API.
- Относительно гуманная стоимость – 49$.
ВАЖНО: В Linux CentOS 8 и 9 из коробки нет модуля vhci_hcd. Поэтому нужно либо добавлять этот модуль вручную. Либо использовать контейнеры. Признаюсь честно, я потратил около 2-х часов на то, чтобы попробовать реализовать какой-то из этих вариантов, но из этого толком ничего не получилось. Пробовал даже сторонний модуль vhci_hcd от elrepo. Насколько я понял, модуль от elrepo не работает на ядре 4.18.0-394, а рассчитан на работу с более старой версией ядра. Но это только мои догадки - не так много у меня опыта работы с Linux. Если у кого-то получилось запустить клиент на CentOS 8 или 9 - поделитесь в комментариях опытом.
В качестве физической коробки, к которой будут подключены устройства будет выступать небольшой неттоп. Можно использовать любое практически любое физическое устройство, т.к. ресурсов серверу много не нужно. Можно даже использовать Raspberry Pi.
Могу ошибаться, но все или некоторые аппаратные решения DistKontrolUSB, например, используют клиент как две капли воды похожий на клиент VirtualHere. Возможно, что серверная часть тоже. Но это лишь мои наблюдения и догадки.
Клиент для linux
Теперь я покажу, как выглядит клиент для Linux. Скачиваем его с сайта проекта.
Разрешаем выполнение:
chmod x vhuit64
И запускаем клиент.
sudo ./vhuit64
В остальном работа Linux клиента аналогична работе Windows клиента. Также нужно указать расположение сервера:
Теперь мы можем увидеть перечень устройств и подключить одно из них:
Стоит отметить, что для Linux есть отдельный консольный клиент для тех случае, если вы будите использовать клиент, например, на Linux сервере.
Клиент для windows
Сначала я покажу, как выглядит клиент для Windows. Скачиваем его с сайта проекта.
Запускаем клиент:
Если вы находитесь в одной подсети с сервером, то клиент скорее всего найдет его автоматически. Если сервер автоматически не найдет, то нужно подсказать клиенту, по какому IP-адресу находится сервер:
Теперь мы видим все подключенные к серверу USB устройства и можем примонтировать одно из них:
Также можем зарегистрировать клиент в качестве службы Windows:
Работу клиента я проверил на следующих серверных ОС: Windows Server 2008 R2, 2022 R2, 2022 и 2022 и соответствующим им клиентским ОС – Windows 7, 8.1, 10 Windows 11.
Также можно использовать API для работы с клиентом. Например, запросим перечень всех устройств на сервере:
vhui64.exe -t list
Настройка virtualhere
Теперь я покажу вам, как выполняется как выполняется настройка сервера, а также подключение к серверу с клиентских рабочих мест.
Настройка сервера
Мы будем использовать вариант с Linux сервером. Наш дистрибутив – Ununtu 20.04. Вы можете использовать любой дистрибутив. Но у меня под рукой для написания статьи был только этот 🙂
Если у вас абсолютно новая установка Ubuntu, то предварительно необходимо установить curl:
apt update
apt install curl
При наличии на сервере прямого выхода в Интернет установка производится в одну команду:
Проброс 11 рутокенов средствами freerdp
Коротко о проблемеС Windows удаётся пробросить на сервер 11 рутокенов одновременно, однако с Debian через FreeRDP удаётся пробросить максимум 10 рутокенов или меньше.
ДаноWindows Server 2022 R2 Standart с панелью управления рутокен и настроенным сервером терминалов.11 ПК с Windows 10, к каждому из которых подключен 1 рутокен.На каждом ПК c Windows 10 установлен VirtualBox и есть ВМ с Debian 9.
ТокеныВзяли токены, какие были.Название; Версия; КоличетсвоРутокен ЭЦП Flash; 55.02.19.00; 1Рутокен ЭЦП 2.0; 20.05.23.02; 2Рутокен Lite; 54.01.09.00; 3Рутокен Lite; 51.04.10.00; 4Рутокен S; 51.00.36.00; 1
Шаги
К каждому из 11 ПК был подключен 1 рутокен.
С 11 ПК было выполнено 11 подключений по RDP средствами Windows с пробросом токена к серверу терминалов.
На сервере через диспетчер задач было зафиксировано 11 параллельно подключенных пользователей.
Все 11 пользователей подтвердили, что они видят рутокен в панели управления рутокен на сервере.
Пользователи отключились от сервера, пробросили токены в ВМ с Debian и выполнили подключение к терминальному серверу с пробросом токенов средствами FreeRDP (ключ /smartcard)
На сервере через диспетчер задач было зафиксировано 11 параллельно подключенных пользователей.
8 пользователей подтвердили, что видят рутокен в панели сервера. 3 пользователя сообщили об ошибке «служба смарткарт не запущена» (панель управления рутокен была запущена до подключения по RDP)
Никак не получается пробросить более 10 токенов с Debian на Windows Server. Выше описана одна из попыток. Видимо существует проблема интеграции FreeRDP и рутокен, которая вызывает ограничение на количество терминальных сессий с пробросом рутокен.
Проброс 11 рутокенов средствами freerdp (страница 1 из 2)
Форум Рутокен → Рутокен для Linux → Проброс 11 рутокенов средствами FreeRDP
Проброс 11 рутокенов средствами freerdp (страница 2 из 2)
Форум Рутокен → Рутокен для Linux → Проброс 11 рутокенов средствами FreeRDP
Страницы Назад 1 2
Сообщений с 16 по 18 из 18
Страницы Назад 1 2
Форум Рутокен → Рутокен для Linux → Проброс 11 рутокенов средствами FreeRDP
Источник
Токены и удаленный рабочий стол (rdp подключение)
Электронно-цифровая подпись (ЭЦП) и токены, как средство ее хранения, плотно вошли в нашу жизнь, трудно представить себе предприятие, где нет хотя бы одной подписи. Другая распространенная технология – это удаленный рабочий стол (RDP), это может быть как сервер терминалов, так и просто доступ к рабочему месту сотрудника. Вполне ожидаемы попытки использовать обе эти технологии совместно, где и начинаются проблемы. В большинстве своем они проистекают от непонимания того, что такое токен, для чего он нужен и как с ним правильно работать.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Если мы говорим о токенах применительно к ЭЦП, то их основная задача – безопасное хранение закрытого ключа. Компрометация закрытого ключа равносильна полной утере подписи, так как с его помощью любой желающий может совершать от вашего имени юридически значимые действия. Использование усиленной квалифицированной электронной подписи (УКЭП) равносильно нотариально заверенной собственноручной подписи владельца. Начиная с 2022 года УКЭП выдается ФНС в единственном экземпляре, тем самым завершив эпоху зоопарка подписей, когда одно и тоже лицо (юридическое или физическое) могло иметь кучу подписей от разных УЦ, каждая из которых использовалась для собственного сервиса.
Но мы немного отклонились от темы. Но, благодаря этому отступлению можно понять, что ЭЦП – это очень важно и к ее безопасности следует относиться серьезно. Токены решают одну простую задачу – не допустить выход закрытого ключа за свои пределы. При любых криптографических операциях закрытый ключ не покидает пределов токена и не может быть просто так оттуда скопирован. В этом его основное отличие от таких хранилищ ЭЦП как флеш-карта или реестр, откуда ключи можно легко извлечь при наличии доступа.
Учитывая важность ЭЦП сложилась следующая парадигма – токен это индивидуальное аппаратное средство подписи и аутентификации, а сама идея удаленного доступа к нему идет вразрез со всеми представлениями о безопасности.
Начиная с Windows Vista при подключении к компьютеру при помощи RDP работа со смарт-картами и токенами, подключенными к удаленной машине невозможна.
Чтобы лучше разобраться в этом вопросе давайте проведем некоторые практические эксперименты. Мы будем использовать в них токены JaCarta, но это не имеет никакого значения, аналогично будут вести себя любые токены от любого производителя.
Подключим токен непосредственно к серверу терминалов и подключимся к нему интерактивно, т.е. через локальную консоль. В системе токен определяется как смарт-карта и устройство чтениясмарт-карт.
Родное ПО также видит токен и сертификаты на нем:
А теперь подключимся к этому же серверу по RDP, нас ожидает совершенно иная картина, хотя Диспетчер устройств будет продолжать нам показывать присутствие токена в системе:
Как мы уже писали выше, из RDP-сессии доступ к токенам и смарт-картам, подключенным к удаленному устройству невозможен!
Если же мы подключим токен к локальному компьютеру и снова подключимся к удаленному серверу, то увидим, что ПО на сервере видит токен и может полноценно с ним работать. При этом на локальном компьютере не нужно устанавливать ПО для токена, если вы будете работать с ним только удаленно. Обратите внимание, что Диспетчер устройств не показывает подключенного к серверу устройства.
У многих здесь может возникнуть вопрос: а безопасно ли это? Пробрасывать токен на сервер? Да, безопасно, потому что пробрасывается стандартное устройство смарт-карта и все последующее взаимодействие идет именно с этим устройством, а критически важная информация, такая как закрытый ключ, ни при каких обстоятельствах не покидает пределы токена.
А если пользователей несколько и у каждого свой токен со своей ЭЦП? Ничего страшного, система предоставляет эффективную изоляцию токена в пределах сеанса. Берем еще один токен, подключаем ко второму компьютеру и соединяемся с сервером, как мы и ожидали, в текущей сессии пользователь видит только свой ключ.
Поэтому единственный правильный вариант сочетания ЭЦП расположенной на токенах и удаленного рабочего стола (RDP) – это расположение токена на клиенте с последующим пробросом устройства смарт-карты на терминальный сервер. С настройками по умолчанию это происходит автоматически, в противном случае проверьте, что у вас разрешен проброс смарт-карт как на клиенте, так и на сервере.
Но иногда все-таки бывают задачи, которые требуют использовать токен удаленно, в этих случаях следует использовать иные средства удаленного доступа, предполагающие подключение к текущему консольному сеансу. Последнее условие важно, сеанс к которому вы будете подключаться должен быть создан на сервере локально, а не через удаленный доступ.
Потому что даже если мы запустим TeamViewer или аналогичное ПО в RDP-сеансе, то мы не увидим токена, а попытавшись закрыть удаленный сеанс потеряем с ним связь.
Если же мы выполним локальный вход на сервер и запустим в рамках этого сеанса средство удаленного доступа, то токен снова будет доступен.
Как видим, если понимать основные принципы работы токенов при RDP-подключении, то никаких сложностей по работе с ними нет. Если необходим удаленный доступ, то вместо RDP используем иные средства, позволяющие непосредственно подключаться к локальному сеансу. Ну и не забываем, что ЭЦП – это большая ответственность и вопросы безопасности должны стоять на первом месте.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.