Поддержка Usb-Ключей В Thinstation

Меня озадачил вопрос использования двухфакторной аутентификации для терминального доступа на тонких клиентах на базе Thinstation и немного удивил.

Оказывается, на данный момент ни одна сборка или конструктор Thinstation не поддерживает электронные USB-ключи, такие как eToken, RuToken, iKey. Несмотря на то, что дистрибутив Thinstation настолько популярен, что его используют вместо стандартного ПО на тонких клиентах HP, а средства аутентификации eToken получили большее распространение на постсоветском пространстве, чем решения других компаний, факт остается фактом: Thinstation не поддержка электронных USB-ключей.

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

Собственно говоря, это то, что я привожу сюда.

Чтобы использовать двухфакторную аутентификацию для терминального доступа через RDP в Thinstation, вам необходимы три компонента: RDP-клиент, приложение, работающее со смарт-картами (электронными ключами), и драйвер смарт-карты.

Первые два компонента (rdesktop и pcc) изначально присутствуют в дизайнере Thinstation, и мы не будем на них заострять внимание, разве что убедиться, что в rdesktop есть поддержка смарт-карт, а pcc — версия не ниже 1.5.5. Третий компонент, драйвер, а также связующее звено для pcsc — это пакет OpenCT. OpenCT поддерживает относительно большое количество USB-считывателей и токенов и, что самое важное, корректно работает с rdesktop. Так что давайте уделим ему больше внимания.

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



Создание OpenCT
Сборка будет происходить на Ubuntu, соответственно команды приведены для этого дистрибутива Linux, для других версий Linux команды будут другие Сначала устанавливаем необходимые для сборки пакеты: $ sudo apt-get install libhal1 libltdl7 dpkg-dev build-essential fakeroot Создаём в домашнем каталоге папку, в которой будем собирать OpenCT из исходников: $ mkdir ~/openct $ mkdir ~/openct/build $ cd ~/openct/build Загрузите исходники и установите зависимости для компиляции пакета.

$ sudo apt-get исходный код openct $ sudo apt-get build-dep openct Распаковка: $ sudo dpkg-source -x openct_0.6.20-1.1.dsc Собираем пакет OpenCT с необходимыми опциями — Enable-pcsc и Enable-usb: $cd openct-0.6.20 $ sudo DEB_BUILD_OPTIONS="--enable-pcsc --enable-usb" fakeroot двоичный файл debian/rules $компакт…

Компиляция пакета для Thinstation
Openct готов, давайте создадим структуру пакета для Thinstation. $ mkdir ~/openct/пакеты $ mkdir ~/openct/packages/openct $ mkdir ~/openct/packages/openct/bin $ mkdir ~/openct/packages/openct/etc $ mkdir ~/openct/packages/openct/etc/udev/ $ mkdir ~/openct/packages/openct/etc/udev/scripts $ mkdir ~/openct/packages/openct/lib $ mkdir ~/openct/packages/openct/usr $ mkdir ~/openct/packages/openct/usr/sbin $ mkdir ~/openct/packages/openct/var $ mkdir ~/openct/packages/openct/var/run $ mkdir ~/openct/packages/openct/var/run/openct Скопируйте необходимые файлы $ cp ~/openct/build/openct-0.6.20/debian/openct/usr/bin/openct-tool ~/openct/packages/openct/bin/openct-tool $ cp ~/openct/build/openct-0.6.20/debian/openct/usr/sbin/openct-control ~/openct/packages/openct/bin/openct-control $ cp ~/openct/build/openct-0.6.20/debian/openct/usr/sbin/if* ~/openct/packages/openct/usr/sbin/ $ cp -r ~/openct/build/openct-0.6.20/debian/openct/usr/lib/ ~/openct/packages/openct/ $ cp -r ~/openct/build/openct-0.6.20/debian/openct/lib/udev/rules.d ~/openct/packages/openct/etc/udev $ cp ~/openct/build/openct-0.6.20/debian/openct/lib/udev/openct* ~/openct/packages/openct/etc/udev/scripts $ cp ~/openct/build/openct-0.6.20/debian/openct/etc/openct.conf ~/openct/packages/openct/etc/openct.conf $ cp -r ~/openct/build/openct-0.6.20/debian/libopenct1/usr/lib/* ~/openct/packages/openct/lib $ cp -r /lib/libdbus* ~/openct/packages/openct/lib $ cp -r /usr/lib/libhal.so* ~/openct/packages/openct/lib $ cp -r /usr/lib/libltdl.so* ~/openct/packages/openct/lib

Редактирование файлов конфигурации
Хотя правило udev уже присутствует, его необходимо скорректировать.

$ nano ~/openct/packages/openct/etc/udev/rules.d/60-openct.rules После линии ACTION!=“add”, GOTO="openct_usb_rules_end" вам нужно добавить: SUBSYSTEM==“usb”, ACTION==“добавить”, ENV{DEVTYPE}==“usb_device”, \ NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", MODE="0644" А также убедитесь, что правила, касающиеся необходимых электронных ключей, не закомментированы, а пути к исполняемым скриптам указаны правильно.

В Thinstation они находятся в /etc/udev/scripts. Файл openct_usb претерпевает более «серьёзную» модификацию.

$ nano ~/openct/packages/openct/etc/udev/scripts/openct_usb Вытаскиваем все и пишем только: #!/бин/ш Завершение работы /bin/openct-control /bin/openct-control инициализация выход 0 Было бы неплохо заглянуть в openct.conf и убедиться, что необходимый драйвер ключа загружен.

$ nano ~/openct/packages/openct/etc/openct.conf Создаем зависимость пакета openct в Thinstation на pcscd: $ echo 'pccd' | кот > ~/openct/packages/openct/зависимости

Сборка образа Thinstation
Создал пакет openct в папке packages: $ cp -r ~/openct/packages/openct ~/Thinstation-2.2.2/packages Сообщаем дизайнеру о необходимости включения пакета openct в сборку дистрибутива Thinstation: $ nano ~/Thinstation-2.2.2/build.conf пакеты openct Сборка образа тонкого клиента $ компакт-диск ~/Thinstation-2.2.2 $ судо .

/сборка Изображение готово.

Загружаемся, подключаем токен и проверяем в консоли командами pcscd_scan и/или opensc-tool –l

Поддержка USB-ключей в Thinstation

Если все хорошо, то подключаемся к терминальному серверу, не забыв указать –r scard в параметрах подключения к серверу.

Теги: #linux #Системное администрирование #тонкие клиенты #смарткарты #rutoken #rutoken #etoken #thinstation #Thinstation #Thinstation #thinstation #Thinstation #Thinstation #Thinstation #Thinstation #смарткарты

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.