Настройка КриптоПро HSM Client на Astra Linux 1.5/1.6
Опубликовано Александр Лавник on 2018-11-27 14:18

Конфигурация:

Astra Linux 1.5/1.6 Special Edition (Смоленск) + установочный диск OC

КриптоПро CSP 4.0 R4 (4.0.9963)

КриптоПро HSM 2.0

ключ доступа к КриптоПро HSM (в данном примере используется носитель Рутокен S)

(для данной цели рекомендуется создать пользователя КриптоПро HSM типа Обычный пользователь (не Компьютер), и использовать его ключ доступа)


Последовательность необходимых действий (команды, начинающиеся с символа #, требуют привилегий root; сам символ # набирать не нужно):

1) Скачать архив с КриптоПро CSP 4.0 R4, распаковать этот архив:

tar xvf linux-amd64_deb.tgz

и установить минимальный набор пакетов КриптоПро CSP:

cd linux-amd64_deb

# ./install.sh kc2

2) Установить пакеты cprocsp-stunnel, cprocsp-rdr-pcsc, cprocsp-rdr-rutoken и ifd-rutokens из состава дистрибутива КриптоПро CSP 4.0 R4:

# dpkg -i \
cprocsp-stunnel-64_4.0.9963-5_amd64.deb \
cprocsp-rdr-pcsc-64_4.0.9963-5_amd64.deb \
cprocsp-rdr-rutoken-64_4.0.9963-5_amd64.deb \
ifd-rutokens_1.0.1_amd64.deb

3) Вставить установочный диск ОС в привод и выполнить команды добавления репозитория на этом диске:

# apt-cdrom add

# apt-get update

4) Установить пакеты pcscd и libccid из установочного диска ОС:

# apt-get install pcscd libccid

5) Добавить в конфигурационный файл /etc/opt/cprocsp/config64.ini секции криптопровайдеров КриптоПро HSM в соответсвующем разделе [Defaults\Provider]:

[Defaults\Provider\"Crypto-Pro HSM CSP"]
"Image Path" = "/opt/cprocsp/lib/amd64/libcspr.so"
"Function Table Name" = "CPSRV_GetFunctionTable"
Type = 75
Channel = ".clientk2"

[Defaults\Provider\"Crypto-Pro GOST R 34.10-2012 HSM CSP"] 
"Image Path" = "/opt/cprocsp/lib/amd64/libcspr.so"
"Function Table Name" = "CPSRV_GetFunctionTable"
Type = 80
Channel = ".clientk2"

[Defaults\Provider\"Crypto-Pro GOST R 34.10-2012 Strong HSM CSP"] 
"Image Path" = "/opt/cprocsp/lib/amd64/libcspr.so"
"Function Table Name" = "CPSRV_GetFunctionTable"
Type = 81
Channel = ".clientk2"

[Defaults\Provider\"Crypto-Pro ECDSA and AES HSM CSP"]
"Image Path" = "/opt/cprocsp/lib/amd64/libcspr.so"
"Function Table Name" = "CPSRV_GetFunctionTable"
Type = 16
Channel = ".clientk2"

[Defaults\Provider\"Crypto-Pro Enhanced RSA and AES HSM CSP"] 
"Image Path" = "/opt/cprocsp/lib/amd64/libcspr.so"
"Function Table Name" = "CPSRV_GetFunctionTable"
Type = 24
Channel = ".clientk2"

[Defaults\Provider\"Crypto-Pro HSM RSA CSP"] 
"Image Path" = "/opt/cprocsp/lib/amd64/libcspr.so"
"Function Table Name" = "CPSRV_GetFunctionTable"
Type = 1
Channel = ".clientk2"

6) Перезапустить службы cprocsp и pcscd:

# service cprocsp restart

# service pcscd restart

7) Экспортировать в файл корневой сертификат КриптоПро HSM из ключевого контейнера ключа доступа:

# /opt/cprocsp/bin/amd64/csptest -keys -cont cont_name -saveext /root/hsmroot.p7b

Имя ключевого контейнера можно вывести командой:

# /opt/cprocsp/bin/amd64/csptest -keys -enum -verifyc

8) Установить корневой сертификат КриптоПро HSM:

# /opt/cprocsp/bin/amd64/certmgr -inst -store root -file /root/hsmroot.p7b

9) Установить сертификат ключа доступа с привязкой к ключевому контейнеру:

# /opt/cprocsp/bin/amd64/csptest -absorb -certs -autoprov

10) Экспортировать сертификат ключа доступа в файл:

# /opt/cprocsp/bin/amd64/certmgr -export -dest /root/user.cer

11) Создать файл /etc/opt/cprocsp/stunnel/stunnel.conf со следующим содержимым:

pid = /var/opt/cprocsp/tmp/stunnel-k2.pid
output = /var/log/stunnel-k2.log
socket = r:TCP_NODELAY=1
socket = r:SO_KEEPALIVE=1
TIMEOUTidle = 2147483
debug = 0
for_hsm = yes

[clientk2]
client = yes
connect = 192.168.0.1:1501
accept = /var/opt/cprocsp/tmp/.clientk2
cert = /root/user.cer
pincode =12345678

В данном случае IP-адрес КриптоПро HSM 192.168.0.1, пин-код ключевого контейнера 12345678.

12) Запустить процесс stunnel_fork:

# /opt/cprocsp/sbin/amd64/stunnel_fork

13) Проверить доступность криптопровайдеров КриптоПро HSM:

/opt/cprocsp/bin/amd64/csptest -enum -provider "Crypto-Pro HSM CSP" -provtype 75 -info
/opt/cprocsp/bin/amd64/csptest -enum -provider "Crypto-Pro GOST R 34.10-2012 HSM CSP" -provtype 80 -info
/opt/cprocsp/bin/amd64/csptest -enum -provider "Crypto-Pro GOST R 34.10-2012 Strong HSM CSP" -provtype 81 -info

14) При необходимости настроить автозапуск в Astra Linux 1.5 необходимо добавить в файл /etc/rc.local перед строкой exit 0 следующую строку

/opt/cprocsp/sbin/amd64/stunnel_fork

В Astra Linux 1.6 и других дистрибутивах настроить автозапуск stunnel_fork как службы можно согласно статьи.

(25 плюсик(ов))
Класс!
Не очень :(