1. Установка eToken PRO от Алладин на Linux RHE 5.
Пробовал устанавливать версию PKI Client 8.0 с версией pcsc-lite-1.4.101.tar.gz.
Установка достаточно внятно описана в руководстве "Быстрый старт".
Обратить внимание нужно на 2 вещи:
1. при установке из исходников pcsc-lite нужно сначала скомпилировать и установить 32-х битную версию,
а потом - 64-битную. Обе версии ставятся из одних и тех же исходнников. В промежутке между версиями
не забыть сделать "make clean".
Может быть ситуация, когда eToken виден только из под root'а.
В этом случае нужно поменять права доступа:
chmod go+rx /var/run/pcscd
Перезапустить демон:
/etc/init.d/pcscd stop
/etc/init.d/pcscd start
2. устанавливать собственно PKI Client , который называется в 8-й версии SafeNet Authentication Client
нужно, используя скрипт ./signed-install_SafenetAuthenticationClient-8.0.5-0.x86_64.rpm.sh
Cтавить через RPM не получается - выдается ошибка на зависимости pcsc-lite.
проверить после установки:
pkcs11-tool --module /usr/lib64/libeToken.so -l -O
Основные команды для работы с eToken'ом:
/usr/local/bin/pkcs11-tool --module /usr/lib64/libeToken.so -L -Ov
/usr/local/bin/pkcs11-tool --module /usr/lib64/libeToken.so --write-object 60936.pem --type data --label 60936 --application-label ru --private -p 1234
/usr/local/bin/pkcs11-tool --module /usr/lib64/libeToken.so --delete-object --label '29118' --type pubkey
2. Установка bind для подписания зоны
На Red Hat Enterprise Linux Server и CentOS все установилось по инструкции, engine_pkcs11 не потребовался.
Ставил пакеты из исходников в следующей последовательности:
libtool-2.4
Botan-1.8.11
sqlite-autoconf-3070400
softhsm-1.2.0
Проверяем, что появилась библиотека:
ls /usr/local/lib/libsofthsm.so
В конфигурационном файле /etc/softhsm.conf должна быть запись для слота 0:
0:/var/softhsm/slot0.db
bind в связке с softhsm умеет работать только с одним нулевым слотом.
Разрешаем доступ к хранилищу прочим пользователям
sudo chmod 777 /var/softhsm
инициализируем хранилище ключей:
softhsm --init-token --slot 0 --label "My token 1"
openssl-0.9.8l
накатил патч:
patch -p1 < openssl-0.9.8l-patch
флаги конфигурации:
./config --pk11-libname=/usr/local/lib/libsofthsm.so --pk11-flavor=sign-only --prefix=/usr/local --openssldir=/usr/local threads shared
! Для CentOS 7 в строку конфигурации необходимо добавить no_asm:
./config --pk11-libname=/usr/local/lib/libsofthsm.so --pk11-flavor=sign-only --prefix=/usr/local --openssldir=/usr/local threads shared no-asm
! При инсталляции, если происходит ошибка во время установки man pages, устанавливать:
#make install_sw
после установки openssl разу стала выполняться проверка на engine pkcs11:
openssl engine pkcs11 -t
должно выдать:
(pkcs11) PKCS #11 engine support (sign only)
[ available ]
Чтобы утилиты из bind, которые начинаются с dnssec- не спрашивали pin,
прописываем pin в конфигурационный файл /usr/local/openssl.cnf.
В начале файла вставляем строку:
openssl_conf = openssl_def
В конце файла вставляем:
[ openssl_def ]
engines = engine_section
[ engine_section ]
pkcs11 = pkcs11_section
[ pkcs11_section ]
engine_id = pkcs11
PIN = 1234
init = 0
! В некоторых описаниях указано, что нужно добавлять строки
dynamic_path = /usr/local/lib/libsofthsm.so
и/или
MODULE_PATH = /usr/local/lib/libsofthsm.so
Мне завести openssl с этими строками конфигурации не удалось.
bind-9.7.2-P3
флаги конфигурации:
./configure --enable-threads --with-pkcs11=/usr/local/lib/libsofthsm.so --with-openssl=/usr/local
Проверить установку можно так
Генерируем ключики:
генерируем ключи:
pkcs11-keygen -b 2048 -l sample-ksk
pkcs11-keygen -b 1024 -l sample-zsk
или для eToken добавляем -m:
/usr/local/sbin/pkcs11-keygen -m /usr/lib64/libeToken.so -b 1024 -l sample-zsk
проверяем, что ключи есть:
/usr/local/sbin/pkcs11-list -m /usr/lib64/libeToken.so
Enter Pin:
C_GetAttributeValue[0]: rv = 0xFFFFFFFF81000001
object[1]: handle 228917254 class 3 label[10] 'sample-ksk' id[0]
object[2]: handle 249233413 class 2 label[10] 'sample-ksk' id[0]
Выгружаем публичную часть и ссылку на закрытую часть ключей, необходимую для работы bind:
(при работе с dnssec-утилитами тип модуля pkcs11 не указываем, т.к. используется тот, что был указан при сборке openssl)
/usr/local/sbin/dnssec-keyfromlabel -a NSEC3RSASHA1 -l sample-ksk -f KSK ru
должно получиться 2 файла с типом ключа (алгоритмом) = 7
/usr/local/sbin/dnssec-keyfromlabel -a NSEC3RSASHA1 -l sample-zsk -3 -n ZONE ru
должно получиться еще 2 файла с типом ключа (алгоритмом) = 7
не забываем добавить полученные публичные ключи в файл подписываемой зоны, например:
cat Kru.+007+20163.key >> ru
cat Kru.+007+20164.key >> ru
подписываем зону (заодно измеряем затраченное время):
time dnssec-signzone -e +259200 -j 86400 -r /dev/urandom -t -3 FF00FF -A ru
/dev/urandom нужен в большинстве случаев для одиноко стоящих серверов, так как не хватает энтропии
для нормальной работы честного /dev/random - то есть задача как бы "подвисает", дожидаясь появления
достаточного количества внешних событий для рандомайзера, если указать /dev/random.
|