- ИТ-услуги для бизнеса
- HowTo: Интернет-банкинг для юридических лиц с использованием Aladdin eToken в Linux (Ubuntu)
- HowTo: Подключение к Cisco VPN с использованием Aladdin eToken в Linux (Ubuntu)
- Набор программ
- Установка клиента eToken
- Установка и настройка GnuTLS
- Чтение данных токена
- Наконец-то OpenConnect
- Послесловие
- Etoken driver linux alladin
ИТ-услуги для бизнеса
Настройка клиент-банка Альфа-Банк, Промсвязьбанк и др. для работы в 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: Интернет-банкинг для юридических лиц с использованием Aladdin eToken в Linux (Ubuntu)
UPD: Обновлено для Ubuntu 13.10 x64 сам клиент SafenetAuthenticationClient придётся попросить у техподдержки Аладдин.
Случилось так, что я решил организоваться как самостоятельный разработчик и открыл ИП. Долго я маялся с выбором банка для расчётного счёта, т.к. нужно было что-то максимально платформо-независимое — сильно не хотелось заводить винду только для интернет-банкинга, походы же в отделение банка, естественно, не рассматривались в принципе, да и дороже это выходит. В итоге я остановился на ПромСвязьБанке, в надежде, что ключи шифрования у них можно получить в виде файлов/на обычной флешке, а не на eToken’е (дело происходит в Омске). Я даже честно пытался обзванивать банки, на которых остановился и узнать на каком носителе выдаются у них ключи, но день потрачен был зря — ни в одном банке добраться до вменяемого специалиста мне не удалось. В итоге в выбранном банке услуга создания ключей оказалась довольно муторной. При генерации ключей я попытался выбрать в качестве носителя флешку, а не полученный eToken, но позже я узнал, что в этом банке «главная» подпись может быть только на eToken а для отчётов можно генерить ключи на флешку. В общем далее руководство как пользоваться интернет-банкингом с eToken под Ubuntu 12.04 x64.
Руководство фактически повторяет данное за исключением версий библиотек и того, что сейчас всё есть в x64 варианте.
Если Ваш интернет-банк использует клиента на Java (как мой), то рекомендую снести все свободные варианты JVM и поставить оригинальную версию от Oracle. Как это сделать можно узнать здесь.
Для начала создадим рабочую папку, перейдём в неё и выполним по пунктам:
1. Подготовка.
Если в последующем всё же возникают проблемы с установкой SafenetAuthenticationClient — установите 32битные версии библиотек:
Клиентам Альфа-Банка также стоит ознакомиться с этим комментарием, спасибо xmm!
2. Установка сервиса (драйвера).
Тут первым делом мы качаем клиент. Ссылка практически секретная, т.к. скачивать клиент можно только потеребив техподдерржку, но кому это надо?
Всё готово. Проверить работу можно воткнув ключ в USB (через usb-хаб у меня заработало уже на этом этапе) и выполнив команду:
Ключ должен быть в списке. После я ещё перезагрузил систему, т.к. при установке этого попросил клиент.
Источник
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
Еще раз ссылки на использованные материалы:
Источник
Etoken driver linux alladin
Для обеспечения работы с электронными ключами 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
Источник