Pki client etoken ��� linux
Для обеспечения работы с электронными ключами eToken понадобится установить драйвер (http://www.aladdin-rd.ru/support/downloads/etoken/).
Устанавливаем драйвер:
/Desktop# alien -kci ‘/home/qwer/Desktop/pkiclient-5.00.28-0.i386.rpm’
error: incorrect format: unknown tag
dpkg —no-force-overwrite -i pkiclient_5.00.28-0_i386.deb
Selecting previously deselected package pkiclient.
(Reading database . 128922 files and directories currently installed.)
Unpacking pkiclient (from pkiclient_5.00.28-0_i386.deb) .
Setting up pkiclient (5.00.28-0) .
Processing triggers for ureadahead .
Processing triggers for libc-bin .
ldconfig deferred processing now taking place
Устанавливаем КриптоПро CSP 3.6 (обязательные пакеты):
/Desktop/linux-ia32# alien -kci lsb-cprocsp-base-3.6.1-4.noarch.rpm
error: incorrect format: unknown tag
dpkg —no-force-overwrite -i lsb-cprocsp-base_3.6.1-4_all.deb
Selecting previously deselected package lsb-cprocsp-base.
(Reading database . 129507 files and directories currently installed.)
Unpacking lsb-cprocsp-base (from lsb-cprocsp-base_3.6.1-4_all.deb) .
Setting up lsb-cprocsp-base (3.6.1-4) .
Adding system startup for /etc/init.d/cprocsp .
Processing triggers for ureadahead .
/Desktop/linux-ia32# alien -kci lsb-cprocsp-rdr-3.6.1-4.i486.rpm
error: incorrect format: unknown tag
dpkg —no-force-overwrite -i lsb-cprocsp-rdr_3.6.1-4_i386.deb
Selecting previously deselected package lsb-cprocsp-rdr.
(Reading database . 129675 files and directories currently installed.)
Unpacking lsb-cprocsp-rdr (from lsb-cprocsp-rdr_3.6.1-4_i386.deb) .
Setting up lsb-cprocsp-rdr (3.6.1-4) .
Adding new reader:
Nick name: FLASH
Name device: FLASH
/Desktop/linux-ia32# alien -kci lsb-cprocsp-capilite-3.6.1-4.i486.rpm
error: incorrect format: unknown tag
dpkg —no-force-overwrite -i lsb-cprocsp-capilite_3.6.1-4_i386.deb
Selecting previously deselected package lsb-cprocsp-capilite.
(Reading database . 129713 files and directories currently installed.)
Unpacking lsb-cprocsp-capilite (from lsb-cprocsp-capilite_3.6.1-4_i386.deb) .
Setting up lsb-cprocsp-capilite (3.6.1-4) .
/Desktop/linux-ia32# alien -kci lsb-cprocsp-kc1-3.6.1-4.i486.rpm
error: incorrect format: unknown tag
dpkg —no-force-overwrite -i lsb-cprocsp-kc1_3.6.1-4_i386.deb
Selecting previously deselected package lsb-cprocsp-kc1.
(Reading database . 129761 files and directories currently installed.)
Unpacking lsb-cprocsp-kc1 (from lsb-cprocsp-kc1_3.6.1-4_i386.deb) .
Setting up lsb-cprocsp-kc1 (3.6.1-4) .
Устанавливаем модуль поддержки PCSC-считывателей (дополнительный пакет):
/Desktop/linux-ia32# alien -kci cprocsp-rdr-pcsc-3.6.1-4.i486.rpm
error: incorrect format: unknown tag
dpkg —no-force-overwrite -i cprocsp-rdr-pcsc_3.6.1-4_i386.deb
Selecting previously deselected package cprocsp-rdr-pcsc.
(Reading database . 129772 files and directories currently installed.)
Unpacking cprocsp-rdr-pcsc (from cprocsp-rdr-pcsc_3.6.1-4_i386.deb) .
Setting up cprocsp-rdr-pcsc (3.6.1-4) .
Электронный ключ eToken должен стоять в ПК, проверяем через list_pcsc:
available reader: AKS ifdh 00 00
Добавляем считыватель:
/Desktop/linux-ia32# /opt/cprocsp/sbin/ia32/cpconfig -hardware reader -add «AKS ifdh 00 00»
Adding new reader:
Nick name: AKS ifdh 00 00
Просмотр списка настроенных считывателей:
/Desktop/linux-ia32# /opt/cprocsp/sbin/ia32/cpconfig -hardware reader -view
Nick name: AKS ifdh 00 00
Reader name: AKS ifdh 00 00
Nick name: FLASH
Reader name: FLASH
Nick name: HDIMAGE
Reader name: HDIMAGE
Устанавливаем модуль поддержки для etoken:
# alien -kci ‘/home/qwer/Desktop/cprocsp-rdr-etoken_3.6.1-1.0.2-1.i386.rpm’
error: incorrect format: unknown tag
dpkg —no-force-overwrite -i cprocsp-rdr-etoken-3.6.1_1.0.2-1_i386.deb
Selecting previously deselected package cprocsp-rdr-etoken-3.6.1.
(Reading database . 129783 files and directories currently installed.)
Unpacking cprocsp-rdr-etoken-3.6.1 (from cprocsp-rdr-etoken-3.6.1_1.0.2-1_i386.deb) .
Setting up cprocsp-rdr-etoken-3.6.1 (1.0.2-1) .
Просмотр списка настроенных носителей:
# /opt/cprocsp/sbin/ia32/cpconfig -hardware media -view
Nick name: eToken_JAVA_10B
Media name: etoken_java_10b
Nick name: eToken_JAVA_10
Media name: etoken_java_10
Nick name: eToken_PRO_M420B
Media name: etoken_pro_m420b
Nick name: eToken_PRO_M420
Media name: etoken_pro_m420
Nick name: eToken_PRO32
Media name: etoken_pro32
Nick name: eToken_PRO16
Media name: etoken_pro16
Nick name: TRUSTD
Media name: Magistra Debug
Nick name: TRUSTS
Media name: Magistra SocCard
Nick name: TRUST
Media name: Magistra
Nick name: OSCAR2
Connect name: KChannel
Nick name: OSCAR2
Connect name: CSP
Media name: . CSP 2.0
Nick name: OSCAR
Для тестирования создадим самоподписанный сертификат с закрытым ключом:
root@ubuntu:/opt/cprocsp/bin/ia32# ./csptestf -keyset -newkeyset -makecert -cont ‘\\.\AKS ifdh 00 00\test’ -keytype exchange
CSP (Type:75) v3.6.5364 KC1 Release Ver:3.6.7491 OS:Linux CPU:IA32 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 137091795
GetProvParam(PP_NAME): Crypto-Pro GOST R 34.10-2001 KC1 CSP
Container name: «test»
Exchange key is not available.
Attempting to create an exchange key.
CryptoPro CSP: Set pin-code on produced container «test».
an exchange key created.
Self signed certificate created: E=test@cryptopro.ru, CN=test
Certificate stored in container.
Keys in container:
root@ubuntu:/opt/cprocsp/bin/ia32# /opt/cprocsp/bin/ia32/csptest -oid -general
CSP (Type:75) v3.6.5364 KC1 Release Ver:3.6.7491 OS:Linux CPU:IA32 FastCode:READY:AVX.
CryptAcquireContext succeeded.HCRYPTPROV: 154155347
root@ubuntu:/opt/cprocsp/bin/ia32# lsb_release -a
LSB Version: core-2.0-ia32:core-2.0-noarch:core-3.0-ia32:core-3.0-noarch:core-3.1-ia32:core-3.1-noarch:core-3.2-ia32:core-3.2-noarch:core-4.0-ia32:core-4.0-noarch:cxx-3.0-ia32:cxx-3.0-noarch:cxx-3.1-ia32:cxx-3.1-noarch:cxx-3.2-ia32:cxx-3.2-noarch:cxx-4.0-ia32:cxx-4.0-noarch:graphics-2.0-ia32:graphics-2.0-noarch:graphics-3.0-ia32:graphics-3.0-noarch:graphics-3.1-ia32:graphics-3.1-noarch:graphics-3.2-ia32:graphics-3.2-noarch:graphics-4.0-ia32:graphics-4.0-noarch:printing-3.2-ia32:printing-3.2-noarch:printing-4.0-ia32:printing-4.0-noarch
Источник
ИТ-услуги для бизнеса
Настройка клиент-банка Альфа-Банк, Промсвязьбанк и др. для работы в linux
Установка необходимых драйверов для работы с клиент-банком с аутентификацией Etoken от Alladin на примере Debian Wheezy x64.
В настоящий момент ситуация с драйверами устройств в Linux для ключей Etoken заметно улучшилась. Это Вам не «работает из коробки», но все же не такие «танцы с бубном» как пару лет назад. Вкупе с портированием программы-клиента всем известной 1С от одноименной компании на ОС Linux, у малого бизнеса есть все шансы выйти из «тени» в ситуации с не лицензионным софтом. Но что-то мы ушли от темы.
Если у Вас установлена открытая версия JRE, рекомендуется установить версию от Oracle. Смотрим версию Java:
если установлены пакеты java OpenJDK — удаляем их:
sudo apt-get remove OpenJDK*
Устанавливаем java от Oracle:
sudo echo «deb http://ppa.launchpad.net/webupd8team/java/ubuntu precise main» > /etc/apt/sources.list.d/webupd8team-java.list
sudo echo «deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu precise main» >> /etc/apt/sources.list.d/webupd8team-java.list
sudo apt-key adv —keyserver keyserver.ubuntu.com —recv-keys EEA14886
sudo apt-get update
sudo apt-get install oracle-java7-installer
Устанавливаем необходимое для работы с ключом Etoken окружение:
sudo apt-get install ia32-libs libhal1 opensc pcscd
Установка библиотек x64
Пакеты libhal1 и libpcslite1 у Вас уже должны быть установлены. Смотрите какие версии установлены следующей командой:
dpkg -l | grep libhal1
dpkg -l | grep libpcsclite1
Качаем и устанавливаем соответствующую версию библиотек для архитектуры x64 с репозиториев Debian:
wget http://ftp.us.debian.org/debian/pool/main/p/pcsc-lite/libpcsclite1_1.8.4-1_amd64.deb
wget http://ftp.us.debian.org/debian/pool/main/h/hal/libhal1_0.5.14-8_amd64.deb
sudo dpkg -x libpcsclite1_1.8.4-1_amd64.deb libpcsclite1-amd64
sudo dpkg -x libhal1_0.5.14-8_amd64.deb libhal1-amd64
sudo cp libpcsclite1-amd64/usr/lib/x86_64-linux-gnu/libpcsclite.so.1.0.0 /lib64/
sudo ln -s /lib64/libpcsclite.so.1.0.0 /lib64/libpcsclite.so.1
sudo mkdir /usr/lib64
sudo cp libhal1-amd64/usr/lib/libhal.so.1.0.0 /usr/lib64/
sudo ln -s /usr/lib64/libhal.so.1.0.0 /usr/lib64/libhal.so.1
Установка драйвера SafenetAuthenticationClient
wget http://www.secdiary.com/packages/pool/main/SafenetAuthenticationClient-8.0.5-0_amd64.deb
sudo dpkg -i SafenetAuthenticationClient-8.0.5-0_amd64.deb
sudo ln -s /usr/lib64/libeTPkcs11.so /usr/lib/
Перезагружаемся (этого просит у нас драйвер SafenetAuthenticationClient) и проверяем работу ключа, он должен быть виден в списке:
pkcs11-tool —module /usr/lib64/libeTPkcs11.so -L
Ключ конечно же должен быть вставлен в usb-порт 🙂
В нашем случае видим следующую картину:
$ pkcs11-tool —module /usr/lib64/libeTPkcs11.so -L
Available slots: Slot 0 (0x0): Aladdin eToken PRO USB 72K Java [Main Interface] 00 00
token label: eToken
token manuf: SafeNet Inc.
token model: eToken
token flags: rng, login required, PIN initialized, token initialized, other flags=0x200
serial num : 008ee8ca
Slot 1 (0x1): (empty)
Slot 2 (0x2): (empty)
Slot 3 (0x3): (empty)
Slot 4 (0x4): (empty)
Slot 5 (0x5): (empty)
На этом все. Запускаем клиент-банк, пробуем войти в систему и подписать документы.
Если Вы хотите тоже самое сделать в Ubuntu смотрите этот топик на Хабре.
Источник
HowTo: Подключение к Cisco VPN с использованием Aladdin eToken в Linux (Ubuntu)
Сравнительно недавно я решил перевести домашний компьютер с Windows на Linux. То есть идея такая бродила уже некоторое время, подогреваемая новостями с фронтов борьбы с добровольно-принудительной установкой Windows 10 и размышлениями о неизбежном устаревании «семерки» следом за XP, а вот поводом взяться за дело стал выход очередного LTS-релиза Ubuntu. При этом основным мотивом такого перехода я назову простое любопытство: домашний компьютер используется в основном для развлечений, ну а знакомство с новой ОС — развлечение не хуже прочих. Причем развлечение, как мне кажется, полезное в плане расширения кругозора. Дистрибутив же от Canonical был выбран просто как наиболее популярный: считаю при первом знакомстве с системой это немаловажным подспорьем.
Довольно быстро я на собственном опыте убедился, что для котиков и кино Ubuntu вполне подходит. Но, поскольку компьютер используется еще и для удаленной работы, для отказа от Windows не хватало настроенного подключения к Cisco VPN c авторизацией по eToken.
Набор программ
Было ясно, что для подключения понадобятся по меньшей мере драйвер токена и некий VPN-клиент. В результате поисков в сети получился такой список:
- OpenConnect — VPN-клиент, «совершенно случайно» совместимый с серверами Cisco «AnyConnect»
- GnuTLS — свободная реализация протоколов TLS и SSL. Что важно, в состав этой библиотеки входит утилита p11tool для работы со смарт-картами
- SafeNet Authentication Client — набор драйверов и дополнительных утилит, обеспечивающий работу с электронными ключами eToken
Поскольку для установки соединения OpenConnect-у требуется URL сертификата клиента, который можно узнать с помощью утилиты p11tool, и обеим программам требуется драйвер для работы со смарт-картой — с установки этого драйвера и начнем.
Установка клиента eToken
Как резонно замечено в статье про настройку eToken в Ubuntu 12.04, ссылка на SafeNet Authentication Client почти секретная. Но в то же время на просторах интернета нашлась более свежая заметка про аналогичные танцы с бубном уже в 14.04, причем с живой ссылкой на дистрибутив где-то в бразильском филиале SafeNet. Что еще интереснее, на том же сервере есть файл с актуальной версией клиента — 9.1, которая, ура-ура, не требует устаревших библиотек. Правильный же способ получения клиента — конечно обратиться к поставщику вашего ключа.
На текущий момент пакет SafenetAuthenticationClient-9.1.7-0_amd64.deb ( или SafenetAuthenticationClient-9.1.7-0_i386.deb для 32-битных систем ) элементарно ставится двойным щелчком по нему в файловом менеджере. Но во время начала работы над этим материалом еще не была исправлена ошибка в Ubuntu Software, из-за которой не работала установка сторонних пакетов. Поэтому была написана
При успешной установке в меню Applications появляется приложение SafeNet Authentication Client Tools.
Установка и настройка GnuTLS
Дело в том, что в определенный момент я совершенно застрял, не понимая, почему токен из родного клиента виден, а через p11tool — нет. И именно отсюда я понял, где же лежит собственно драйвер. Зная путь к драйверу, ставим и настраиваем GnuTLS по инструкции.
Теперь с токеном смогут работать любые приложения, использующие GnuTLS. А мы сможем воспользоваться утилитой p11tool для выяснения URL-а нашего сертификата.
Чтение данных токена
Вывести список имеющихся в токене сертификатов можно следующей командой:
Вывод p11tool выглядит примерно так:
Object 0:
URL: pkcs11:model=eToken;manufacturer=SafeNet%2c%20Inc.;serial=99999999;token=Username;id=%XX%XX;object=%7bXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX%7d;type=cert
Type: X.509 Certificate
Label:
ID: XX:XX
Object 1:…
Сертификатов может быть несколько, а для подключения требуется один конкретный. В инструкции по p11tool от OpenConnect в такой ситуации предлагают попробовать каждый. Я же для сопоставления сертификата с его URL составил небольшой скрипт, который выводит как URL, так и текстовые данные каждого сертификата:
Здесь в цикле по URL-ам объектов p11tool —info выводит данные сертификата в своем представлении, а p11tool —export передает сертификат в формате pem-файла на вход openssl, который и выводит текстовое представление. Для передачи в OpenConnect нам нужен тот, где найдется строка Client Authentication — запоминаем его URL. Кроме того, если сервер использует самоподписанный сертификат, запоминаем еще и URL объекта с флагом CKA_CERTIFICATE_CATEGORY=CA.
Экспортируем сертификат удостоверяющего центра в файл (весь URL не обязателен — лишь бы он однозначно определял объект):
Наконец-то OpenConnect
Минимальный набор аргументов для подключения приведен в следующей команде:
Если сервер использует самоподписанный сертификат, при запуске в таком виде OpenConnect уточнит, доверяем ли мы серверу, и к тому же будет занято окно терминала. Поэтому слегка расширим команду:
С помощью cafile мы указали сертификат удостоверяющего центра — теперь не будет вопроса относительно доверия серверу. Опция background говорит сама за себя, а pid-file позволяет указать имя файла, в котором сохранится идентификатор фонового процесса. Кроме того, пароль токена может быть указан прямо в URL с помощью атрибута pin-value. Но это несколько… небезопасно.
Останавливать фоновый процесс правильно следующей командой:
По сообщению SIGINT OpenConnect корректно завершает соединение, а если разорвать соединение «жестко», могут быть проблемы при следующем подключении. Хотя у меня не было.
Послесловие
Задача решена, и я радостно пользуюсь для удаленного доступа приложением Remmina, которое запускаю сразу при подключении к vpn, добавив в скрипт запуска OpenConnect команду:
Правда, пришлось отключить синхронизацию буфера обмена: иначе на удаленной машине он в некоторых приложениях не работает; и включить настройку «Disable tray icon»: в противном случае при каждом подключении в трей добавляется новая иконка. Опять же, переход в домашнюю директорию перед вызовом Remmina неспроста: приложение почету-то не видит путь , а задавать полный путь с именем пользователя мне кажется неправильным.
Выводов относительно применимости Linux дома делать не буду — мне пока хватает, а статья задумана именно как HowTo.
P.S.: На окончательный выбор версии Ubuntu повлияло именно решение данной задачи: в пятой, включенной в Ubuntu 14.04, версии OpenConnect обнаружилась ошибка, мешавшая установке соединения. Вот ради лишенной той ошибки седьмой версии OpenConnect я и поставил возможно еще сырую 16.04.
EDIT: в Ubuntu 19.04 обновилась версия libcrypto и даже драйвер, поставляемый с 10 версией SafeNet, не находит данную библиотеку. Спасаемся симлинком
sudo ln -s /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 /usr/lib/libcrypto.so
Еще раз ссылки на использованные материалы:
Источник