Форум русскоязычного сообщества Ubuntu


За новостями русскоязычного сообщества и Ubuntu в целом можно следить на нашей страничке в Google+

Автор Тема: Проброс NFC Кард ридера в сеанс RDP через Remmina  (Прочитано 146 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ChiefTech

  • Автор темы
  • Новичок
  • *
  • Сообщений: 26
    • Просмотр профиля
Помоги уважаемые форумчане.

Есть внутренний корпоративный софт который работает на Windows Server 2012 в терминальном режиме. Этот софт в реальном времени сканирует USB устройства и если видит КартРидер то сразу переключается в режим авторизации через карту(иначе по номеру телефона)
Если подключаюсь по RDP c любой виндовой машины то софт сразу просит положить карту.
В убунте этого не происходит.

RDP клиент Remmina, в настройках подключения галочка "Общий доступ к смарт-карте" включена.
Пакеты pcscd libccid libpcsclite1 установлены.
КартРидер в lsusb светится, модель ACS ACR122U
Ubuntu 16.04 LTS
Remmina 1.1.2

Вообще задача была добиться работы в гостевом сеансе, но и под админом ничего не работает(

Буду рад помощи.
« Последнее редактирование: 05 Апрель 2017, 15:39:07 от ChiefTech »

Оффлайн ChiefTech

  • Автор темы
  • Новичок
  • *
  • Сообщений: 26
    • Просмотр профиля
Re: Проброс NFC Кард ридера в сеанс RDP через Remmina
« Ответ #1 : 06 Апрель 2017, 23:56:57 »
Раз никто информацией не обладает поделюсь тем что удалось выяснить. Может кому пригодится

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

Первое что посоветовали умные люди это проверить что выдает команда pcsc_scan

root@Sim4-11:/# pcsc_scan
PC/SC device scanner
V 1.4.25 (c) 2001-2011, Ludovic Rousseau <ludovic.rousseau@free.fr>
Compiled with PC/SC lite version: 1.8.14
Using reader plug'n play mechanism
Scanning present readers...
Waiting for the first reader...

По выводу ясно что картридер пакетом не распознается.

Вычитал на просторах что для этого картридера желательно отключить встроенный драйвер
Поэтому идем в /etc/modprobe.d/blacklist.conf и добавляем туда строки:

install nfc /bin/false
install pn533 /bin/false


После решил заинсталить родной драйвер с сайта производителя картридера. Там оказался архив с деб пакетами под нужную версию Убунты и соответсвующую архитектуру.

Инсталится просто командой dpkg -i /путь к файлу

Перезугружаемся и снова pcsc_scan

root@Sim4-11:/# pcsc_scan
PC/SC device scanner
V 1.4.25 (c) 2001-2011, Ludovic Rousseau <ludovic.rousseau@free.fr>
Compiled with PC/SC lite version: 1.8.14
Using reader plug'n play mechanism
Scanning present readers...
0: ACS ACR122U 00 00

Thu Apr  6 22:45:25 2017
Reader 0: ACS ACR122U 00 00
  Card state: Card removed,

Карт ридер определился и отвечает. Прикладываем карту

Thu Apr  6 22:46:41 2017
Reader 0: ACS ACR122U 00 00
  Card state: Card inserted,
  ATR: 3B 8F 80 01 80 4F 0C A0 00 00 03 06 03 00 01 00 00 00 00 6A

ATR: 3B 8F 80 01 80 4F 0C A0 00 00 03 06 03 00 01 00 00 00 00 6A
+ TS = 3B --> Direct Convention
+ T0 = 8F, Y(1): 1000, K: 15 (historical bytes)
  TD(1) = 80 --> Y(i+1) = 1000, Protocol T = 0
-----
  TD(2) = 01 --> Y(i+1) = 0000, Protocol T = 1
-----
+ Historical bytes: 80 4F 0C A0 00 00 03 06 03 00 01 00 00 00 00
  Category indicator byte: 80 (compact TLV data object)
    Tag: 4, len: F (initial access data)
      Initial access data: 0C A0 00 00 03 06 03 00 01 00 00 00 00
+ TCK = 6A (correct checksum)

Possibly identified card (using /usr/share/pcsc/smartcard_list.txt):
3B 8F 80 01 80 4F 0C A0 00 00 03 06 03 00 01 00 00 00 00 6A
3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 01 00 00 00 00 ..
Mifare Standard 1K (as per PCSC std part3)
3B 8F 80 01 80 4F 0C A0 00 00 03 06 03 00 01 00 00 00 00 6A
3B 8F 80 01 80 4F 0C A0 00 00 03 06 03 .. .. 00 00 00 00 ..
RFID - ISO 14443 Type A Part 3 (as per PCSC std part3)
3B 8F 80 01 80 4F 0C A0 00 00 03 06 03 00 01 00 00 00 00 6A
Philips MIFARE Standard (1 Kbytes EEPROM)
http://www.nxp.com/#/pip/pip=[pfp=41863]|pp=[t=pfp,i=41863]
RFID - ISO 14443 Type A - Transport for London Oyster
ACOS5/1k Mirfare
RFID - ISO 14443 Type A - NXP Mifare card with 1k EEPROM
vivotech ViVOcard Contactless Test Card
Bangkok BTS Sky SmartPass

Вроде бы все работает.

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

« Последнее редактирование: 23 Апрель 2017, 20:58:16 от ChiefTech »

Оффлайн ChiefTech

  • Автор темы
  • Новичок
  • *
  • Сообщений: 26
    • Просмотр профиля
Re: Проброс NFC Кард ридера в сеанс RDP через Remmina
« Ответ #2 : 20 Апрель 2017, 21:54:24 »
Итак, вот каких результатов удалось достичь.

Remmina и freerdp в комплекте с Убунтой не хотят работать корректно.

Поэтому пришлось использовать Remmina-next

На странице берем их репозиторий и инсталим remmina и freerdp
Естественно из под root

Для начала удаляем установленную:

apt-get update
apt-get purge --yes remmina
apt-get autoremove --yes
apt-get clean


Проверяем и при надобности доставляем сервисы для смарт-карт со всеми зависимостями:

apt-get update
apt-get install --yes pcscd pcsc-tools libacsccid1
apt-get clean


Далее добавляем репозитории Remmina-next

apt-add-repositiry --yes ppa:remmina-ppa-team/remmina-next

и устанавливаем remmina и freerdp со всеми сопутствующими пакетами

apt-get update
apt-get install --yes remmina remmina-common remmina-plugin-rdp remmina-plugin-vnc freerdp-x11 libfreerdp1 libfreerdp-plugins-standart
apt-get clean


Зависимости установятся автоматически из основного репозитория Ubuntu

Работу продолжал устанавливая на чистую систему и выяснилось что с карт-ридером ACS ACR122U достаточно было добавить пару строк в modeprobe.d как описано постом выше, и этого хватило чтобы он нормально заработал. Драйвер с сайта производителя устанавливать не нужно.

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

Если хотите пользоваться freerdp то выполняем последовательно

lsusb

Ищем там строки своего карт-ридера

duty@Sim:~$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 008: ID 0cf3:3004 Atheros Communications, Inc. AR3012 Bluetooth 4.0
Bus 001 Device 006: ID 072f:2200 Advanced Card Systems, Ltd ACR122U
Bus 001 Device 005: ID 174f:14ca Syntek
Bus 001 Device 004: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 001 Device 003: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller
Bus 001 Device 002: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

У меня это:
Bus 001 Device 006: ID 072f:2200 Advanced Card Systems, Ltd ACR122UНам нужны эти символы: 072f:2200

Далее запускаем freerdp

xfreerdp /v:ip.ip.ip.ip /u:username /p:password /smartcard:nnnn:nnnn

где указываем ip, пользователя, пароль и позывной карт-ридера соответсвенно


В гостевом сеансе смарт-карты не работают.
Remmina просто не видит картридер а freerdp в логах пишет вот это:
[ERROR][com.freerdp.channels.smartcard.client] - SCardEstablishContext failed with error - nnnnnnnnnn
Если есть знания поделитесь с нуждающимися.

 

Страница сгенерирована за 0.09 секунд. Запросов: 23.