Настройка двухфакторной аутентификации в домене Astra Linux Directory / Хабр – ЭЦП Эксперт

Настройка двухфакторной аутентификации в домене Astra Linux Directory / Хабр - ЭЦП Эксперт Электронная цифровая подпись

Немного вводных об astra linux directory (ald) и jacarta pki

Домен Astra Linux Directory (ALD) предназначен для организации единого пространства пользователей (домена локальной вычислительной сети) в автоматизированных системах.

ALD использует технологии LDAP, Kerberos5, Samba/CIFS и обеспечивает:

  • централизованное хранение и управление учетными записями пользователей и групп;
  • сквозную аутентификацию пользователей в домене с использованием протокола Kerberos5;
  • функционирование глобального хранилища домашних директорий, доступных по Samba/CIFS;
  • автоматическую настройку файлов конфигурации UNIX, LDAP, Kerberos, Samba, PAM;
  • поддержку соответствия БД LDAP и Kerberos;
  • создание резервных копий БД LDAP и Kerberos с возможностью восстановления;
  • интеграцию в домен входящих в дистрибутив СУБД, серверов электронной почты, Web-серверов, серверов печати и другие возможности.

JaCarta PKI — это линейка PKI-токенов для строгой аутентификации пользователей в корпоративных системах, безопасного хранения ключевых контейнеров программных СКЗИ и цифровых сертификатов российского производителя – компании «Аладдин Р.Д.».

В среде Astra Linux Directory (ALD) электронные ключи JaCarta PKI могут использоваться для двухфакторной аутентификации пользователя в домене ALD и отказа от паролей. Кроме того, с этими же электронными ключами можно выполнять различные сценарии внутри ОС, после аутентификации, такие, как: электронная подпись, хранение ключевых контейнеров, доступ к Web-ресурсам, проброс ключа в сессии MS Windows. Доступ к VDI сервисам, таким, как VmWare или Citrix.

Astra linux орёл 2.12 установка криптопро

astralinux доступ к госзакупкам
Инструкция по настройке и работе с Крипто-Про для государственных порталов

Astra Linux Орёл 2.12
$ sudo apt update
$ sudo apt upgrade
$ sudo apt install alien libpcsclite1 pcscd libccid zip unzip
$ tar -zxf linux-amd64_deb.tgz
$ cd linux-amd64_deb
$ sudo ./install_gui.sh
#$ export PATH=”$(/bin/ls -d /opt/cprocsp/{s,}bin/*|tr ‘n’ ‘:’)$PATH”
$ cd ~/
$ mkdir cades_linux_amd64
$  cd ~/cades_linux_amd64
Скачать версию 2.0
https://www.ecpexpert.ru/products/cades/plugin
$ cp  ~/Загрузки/cades_linux_amd64.tar.gz ~/cades_linux_amd64
$ tar -zxf cades_linux_amd64.tar.gz
$ sudo alien *.rpm
$ sudo dpkg -i lsb-cprocsp-devel_*.deb cprocsp-pki-*.deb

Копируем контейнер 2021-07-.000  с машины windows:
в /var/opt/cprocsp/keys/user/2021-07-.000

Посмотреть:
$ /opt/cprocsp/bin/amd64/csptest -keyset -enum -verifycontext -fqcn
CSP (Type:80) v4.0.9017 KC2 Release Ver:4.0.9944 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 35103123
.HDIMAGE2021-07-02 16-30-20 ▒▒▒ ▒▒▒▒ ▒▒▒▒ ▒▒▒ – ▒▒▒▒▒ – ▒▒▒▒▒ – ▒▒▒▒▒
OK.
Total: SYS: 0,000 sec USR: 0,000 sec UTC: 0,130 sec
[ErrorCode: 0x00000000]

Оригинальный контенер был без пинкода.

Если нужно добавить пинкод, копируем контейнер:

$ /opt/cprocsp/bin/amd64/csptest -keycopy -contsrc “$(echo ‘HDIMAGE2021-07-.000A6B’ | iconv -t cp1251)” -contdest ‘.HDIMAGEtest’ -typesrc 75 -typedest 75  -pindest 12345678
CSP (Type:75) v4.0.9017 KC2 Release Ver:4.0.9944 OS:Linux CPU:AMD64 FastCode:READY:AVX.
CryptAcquireContext succeeded.HCRYPTPROV: 23474403
CryptAcquireContext succeeded.HCRYPTPROV: 23479523
Total: SYS: 0,000 sec USR: 0,000 sec UTC: 0,130 sec
[ErrorCode: 0x00000000]

Смотрим:

$ /opt/cprocsp/bin/amd64/csptest -keyset -enum -verifycontext -fqcn
CSP (Type:80) v4.0.9017 KC2 Release Ver:4.0.9944 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 36958611
.HDIMAGEtest
.HDIMAGE2021-07-02 16-30-20 ▒▒▒ ▒▒▒▒ ▒▒▒▒ ▒▒▒ – ▒▒▒▒▒ – ▒▒▒▒▒ – ▒▒▒▒▒
OK.
Total: SYS: 0,000 sec USR: 0,000 sec UTC: 0,140 sec
[ErrorCode: 0x00000000]

Или:
$ /opt/cprocsp/bin/amd64/csptest -keyset -enum -verifycontext -fqcn | iconv -f cp1251

Читайте также:  Причины некорректной работы электронной подписи | Обучение и помощь по тендерам, торгам, закупкам

Установить копированный контейнер:

$ /opt/cprocsp/bin/amd64/certmgr -inst -store uMy -cont ‘.HDIMAGEtest’
Пример если нужно установить оригинальный контейнер:

$ /opt/cprocsp/bin/amd64/certmgr -inst -store uMy -cont “$(echo ‘HDIMAGE2021-07-.000A6B’ | iconv -t cp1251)”

#связываем сертификат и закрытый ключ:  
#$ /opt/cprocsp/bin/amd64/certmgr -inst -file sert.cer -cont ‘.HDIMAGEtest’

Удалить:
$ /opt/cprocsp/bin/amd64/certmgr -delete

Для установки в uRoot админиских прав больше не нужно. Ради этого их с mRoot и разделили. Работает так: если ставить в uRoot – видно будет только текущему пользователю, даже если он root, но права не нужны и будет диалог с предупреждением. Если ставить в mRoot, то нужны права, видно будет всем и предупреждения не будет.

Просмотор личных сертификатов:

$ /opt/cprocsp/bin/amd64/certmgr -list -store uMy
CA cert URL         : http://www.dp.keydisk.ru/root/833/astral-833-2021n.cer

Установка головного сертификата удостверяющего центра (из сертификата Калуга-Астрал):
$ mkdir  ~/CAs
$ wget -P ~/CAs $(/opt/cprocsp/bin/amd64/certmgr -list -store uMy | awk ‘/CA cert URL/ { print $5 }’)
for cert in $(ls -1 ~/CAs/*.cer); do sudo /opt/cprocsp/bin/amd64/certmgr -inst -store mRoot -file $cert; done

Если сертификат был выдан казначейством:
Сертификаты zakupki.gov.ru
Качаем Сертификат Головного удостоверяющего центра и Сертификат Удостоверяющего центра Федерального казначейства

$ /opt/cprocsp/bin/amd64/certmgr -inst -cert -file ‘Сертификат Головного удостоверяющего центра.cer’ -store uRoot

#$ sudo /opt/cprocsp/bin/amd64/certmgr -inst -cert -file ‘Сертификат Головного удостоверяющего центра.cer’ -store mRoot

$ /opt/cprocsp/bin/amd64/certmgr -inst -cert -file ‘Сертификат
Удостоверяющего центра Федерального казначейства.cer’ -store uRoot

#$ sudo /opt/cprocsp/bin/amd64/certmgr -inst -cert -file ‘Сертификат
Удостоверяющего центра Федерального казначейства.cer’ -store mRoot

Просмотр:
$ /opt/cprocsp/bin/amd64/certmgr -list -store uRoot
#$ sudo /opt/cprocsp/bin/amd64/certmgr -list -store mRoot

Удалить:
$ /opt/cprocsp/bin/amd64/certmgr -delete -store uRoot
$ /opt/cprocsp/bin/amd64/certmgr -delete -all -store uRoot

#$ sudo /opt/cprocsp/bin/amd64/certmgr -delete -store mRoot
#$ sudo /opt/cprocsp/bin/amd64/certmgr -delete -all -store mRoot

Проверка цепочек
$ /opt/cprocsp/bin/amd64/certmgr -list -store uMy
Смотрим: 
CN=’Фёдорова Галина Борисовна’

$ CP_PRINT_CHAIN_DETAIL=1 /opt/cprocsp/bin/amd64/cryptcp -copycert -dn CN=’Фёдорова Галина Борисовна’ -df ~/t.cer
…..
…..
…..
Certificate chains are checked.
Certificate’s been copied.
[ReturnCode: 0]

или

Цепочки сертификатов проверены.
Копирование сертификатов завершено.
[ErrorCode: 0x00000000]

Для firefox и установить в браузере
Скачать расширение
Проверка плагина

Проверено подписывает:
Единая электронная торговая площадка

$ sudo apt install chromium
После установки закрыть и войти снова

Проверка плагина

Проверено подписывает:
Единая электронная торговая площадка

Проверно подписывает:
Сбербанк-АСТ

Установка IFCPlugin для gosuslugi.ru
IFCPlugin-3.0.0-x86_64.deb.zip
ifc.cfg.zip

$ unzip IFCPlugin-3.0.0-x86_64.deb.zip
$ sudo apt install libccid pcscd
$ sudo dpkg -i IFCPlugin-3.0.0-x86_64.deb

создаем симлинк для корректной работы связи расширения браузера с библиотекой установленного плагина

$ sudo ln -s /etc/opt/chrome/native-messaging-hosts/ru.rtlabs.ifcplugin.json /etc/chromium/native-messaging-hosts/ru.rtlabs.ifcplugin.json

Заходим в каталог куда скачали архив
$ unzip ifc.cfg.zip

Копируем конфигурационный файл

 $ sudo cp ifc.cfg /etc/ifc.cfg

Установить Расширение для gosuslugi.ru

Перейти в меню – Дополнительные инструменты – Расширения и включить плагин
 

Alexey Kovin (4l3xk3), [10.09.18 13:34]
[В ответ на Leonid Volkanin]
Alexey Kovin (alexk3):
Проверка защитного преобразования по ГОСТу  по https в chromium из состава AstraLinux:

Скачиваем
https://ecpexpert.ru/products/csp/downloads#latest_csp40r3
https://ecpexpert.ru/sites/default/files/private/csp/40/9944/linux-amd64_deb.tgz
Нужные библиотеки входят в минимальную установку (по ./install.sh)
Лежать будут в /opt/cprocsp/lib/amd64

Ставим Смоленск 1.6 или Орел 2.12
Берём linux-amd64_deb.tgz по ссылке выше
Распаковать и запустить install.sh
Запустить chromium
Зайти на https://q.ecpexpert.ru
F12 режим отладки ищем вкладку security
Внизу справа ищем tls по ГОСТу

Используемое для демонстрации окружение

В данной инструкции производится настройка для следующих версий операционных систем:

Настройка ald на astra linux se 1.5

Немного теории о ALD в Astra Linux.

Комплекс программ Astra Linux Directory (ALD) является нашей разработкой и предназначен для организации единого пространства пользователей (домена локальной вычислительной сети) в автоматизированных системах.

ALD использует технологии LDAP, Kerberos 5, Samba/CIFS и обеспечивает:

  • централизованное хранение и управление учетными записями пользователей и групп;
  • сквозную аутентификацию пользователей в домене с использованием протокола Kerberos 5;
  • функционирование глобального хранилища домашних директорий, доступных по Samba/CIFS;
  • автоматическую настройку всех необходимых файлов конфигурации UNIX, LDAP, Kerberos, Samba, PAM;
  • поддержку соответствия БД LDAP и Kerberos;
  • создание резервных копий БД LDAP и Kerberos с возможностью восстановления;
  • интеграцию в домен входящих в дистрибутив СУБД, серверов электронной почты, веб-серверов, серверов печати и т.п.
Читайте также:  У меня «угнали» электронную подпись и списали деньги. Что делать?

Кроме того, ALD предоставляет программные интерфейсы для интеграции в домен разрабатываемых программных решений.

«Служба Astra Linux Directory (ALD) представляет собой систему управления ЕПП. Таким образом, ALD является надстройкой над технологиями LDAP, Kerberos 5, CIFS и обеспечивает автоматическую настройку всех необходимых файлов конфигурации служб, реализующих перечисленные технологии, а также предоставляет интерфейс управления и администрирования. Все необходимые компоненты службы ALD входят в состав следующих пакетов:

Настройка двухфакторной аутентификации в домене astra linux directory

В этом посте мы решили рассказать о доменной аутентификации в Linux, с использованием смарт-карт и USB-токенов JaCarta PKI в качестве второго фактора аутентификации. Если о локальной аутентификации через PAM-модуль информации существует довольно много, то вопрос доменной инфраструктуры и аутентификация по Kerberos-билетам в Linux рассмотрен слабо, особенно на русском языке. В качестве операционной системы возьмем Astra Linux и на примере Astra Linux Directory (ALD) это и покажем.

Выгода такого решения очевидна – оно позволяет отказаться от парольной аутентификации пользователя, что поможет кардинально снизить влияние «человеческого фактора» на безопасность системы. Плюс это даст ряд преимуществ от использования электронных ключей внутри операционной системы, после аутентификации в домене.

Настройка клиента. проверка работоспособности

Создайте на клиенте каталог /etc/krb5/. Скопируйте в /etc/krb5/ сертификат CA (cacert.pem) c сервера.

Настройте kerberos в /etc/krb5.conf. Секцию [libdefaults] дополните следующими строками.

Настройка на стороне jas


На стороне JAS необходимо выполнить перечисленные ниже шаги.

Добавьте устройство OTP в систему, привяжите пользователя к устройству. Для этого откройте оснастку JAS.

В оснастке выберите Импорт ключевых носителей.

Настройка на стороне linux server


На стороне Linux сервера все операции необходимо производить от имени root.

# sudo -i

# apt-get install libpam-radius-auth 

Добавьте значения для вашего RADIUS сервера, IP-адрес, либо имя сервера, общий секрет в файл /etc/pam_radius_auth.conf.

# nano /etc/pam_radius_auth.conf

#  The timeout field controls how many seconds the module waits before
#  deciding that the server has failed to respond.
#
# server[:port] shared_secret      timeout (s)
[SERVER IP] [Общий секрет]           3 

В файле /etc/pam.d/sshd добавьте строку auth sufficient pam_radius_auth.so над

common-auth, как показано ниже.

# nano /etc/pam.d/sshd 

# PAM configuration for the Secure Shell service

# Standard Un*x authentication.
auth sufficient pam_radius_auth.so
@include common-auth


# Disallow non-root logins when /etc/nologin exists. 


Создайте локального пользователя с именем, соответствующим пользователю в AD.

Настройка на стороне radius сервера

На стороне сервера необходимо выполнить следующие шаги:

В меню оснастки выберите пункт NPS – RADIUS Clients and Servers – RADIUS Clients, затем правым кликом вызовите контекстное меню и нажмите New.

Введите настройки клиента для подключения к RADIUS серверу: имя, отображаемое в оснастке, адрес либо имя клиента, общий секрет для клиента и сервера (необходимо придумать).

Создайте доменного пользователя, имя которого будет использоваться для аутентификации на Linux сервере.

Операционные системы astra linux

Операционные системы Astra Linux Common Edition и Astra Linux Special Edition разработаны коллективом открытого акционерного общества «Научно-производственное объединение Русские базовые информационные технологии» и основаны на свободном программном обеспечении.

Читайте также:  Установка программы-криптопровайдера ViPNet CSP :: Руководство по использованию сервиса "1С-Отчетность" в 1С:Бухгалтерии 8

Astra Linux Common Edition предназначена для автоматизации коммерческих предприятий и органов государственного управления.

Astra Linux Special Edition предназначена для применения в автоматизированных системах в защищенном исполнении, обрабатывающих информацию ограниченного распространения, включая государственную тайну до степени секретности “особой важности” .

Подготовка jacarta webpass

Для инициализации JaCarta WebPass необходимо открыть приложение Web Pass Tool, которое входит в состав программного обеспечения «Единый Клиент JaCarta». Загрузить ПО можно по ссылке

Подготовка смарт-карты. выпуск ключей и сертификата пользователя

Убедитесь в том, что установлены пакеты libengine-pkcs11-openssl и opensc. Подключите устройство, которое следует подготовить.

Проинициализируйте устройство, установите PIN-код пользователя. Помните, что инициализация устройства удалит все данные на JaCarta PKI без возможности восстановления.

Для инициализации необходимо воспользоваться утилитой pkcs11-tool.

pkcs11-tool –slot 0 –init-token –so-pin 00000000 –label ‘JaCarta PKI’ –module /lib64/libASEP11.so,

где:

–slot 0 — указывает, в какой виртуальный слот подключено устройство. Как правило, это слот 0, но могут быть и другие значения – 1,2 и т.д.;

–init-token – команда инициализации токена;

–so-pin 00000000 – PIN-код администратора JaCarta PKI. По умолчанию имеет значение 00000000;

–label ‘JaCarta PKI’ – метка устройства;

–module /lib64/libASEP11.so — указывает путь до библиотеки libASEP11.so. Устанавливается в рамках пакета idprotectclient см. раздел «Установка драйверов на сервер и клиент».

Для задания PIN-кода пользователя используйте команду:

pkcs11-tool –slot 0 –init-pin –so-pin 00000000 –login –pin 11111111 –module /lib64/libASEP11.so,

где:

–slot 0 — указывает, в какой виртуальный слот подключено устройство. Как правило, это слот 0, но могут быть и другие значения – 1,2 и т.д.;

–init-pin – команда установки PIN-кода пользователя;

–so-pin 00000000 – PIN-код администратора JaCarta PKI. По умолчанию имеет значение 00000000;

Пример демо-зоны

  • Сервер — Astra Linux Smolensk SE 1.5 4.2.0-23-generic, x86_64, с установленными пакетами:
    • JaCarta IDProtect 6.37;
    • libccid;
    • pcscd;
    • libpcsclite1;
    • krb5-pkinit;
    • libengine-pkcs11-openssl;
    • opensc.
  • Клиент — Astra Linux Smolensk SE 1.5 4.2.0-23-generic, x86_64, с установленными пакетами:
    • JaCarta IDProtect 6.37;
    • libccid;
    • pcscd;
    • libpcsclite1;
    • krb5-pkinit.

Предполагается, что ALD уже развернут, существует минимум один доменный пользователь, который может аутентифицироваться по паролю, время клиента и сервера совпадают.

Проверка решения

Для проверки воспользуемся операционной системой Microsoft Windows 7 с установленным SSH клиентом PUTTY.

Откроем Putty и укажем адрес интересующей нас машины на Linux.

Введите имя пользователя, Ввод, затем нажмите на кнопку устройства JaCarta WebPass, Ввод.

Далее введите команду SSH [Servername2], Ввод, нажмите кнопку на устройстве, Ввод.

Требования к окружению

Для Windows Server необходимо создать домен, добавить роль NPS. Для этого следуйте советам ниже.

Откройте оснастку для добавления роли NPS.

При выборе служб и компонентов выберите Network Policy Server.

После этого вам станет доступна оснастка NPS.

Установка драйверов на сервер и клиент

Для обеспечения работы со смарт-картой JaCarta PKI на клиенте и сервере установите следующие пакеты: libccid, pcscd, libpcsclite1. После установки этих обязательных пакетов установите пакет драйверов IDProtectClient, который можно загрузить с официального сайта «Аладдин Р.Д.».

Для обеспечения работы со смарт-картой подсистемы Kerberos добавочно к предустановленным пакетам ald/kerberos установите пакет krb5-pkinit на клиенте и сервере.

Для обеспечения возможности выпуска ключей и сертификатов на JaCarta PKI на сервере также установите пакеты libengine-pkcs11-openssl и opensc.

Установка и настройка центра сертификации на сервере

В качестве центра сертификации (CA) будет использован OpenSSL.

OpenSSL — криптографический пакет с открытым исходным кодом для работы с SSL/TLS. Позволяет создавать ключи RSA, DH, DSA и сертификаты X.509, подписывать их, формировать CSR и CRT.

Оцените статью
ЭЦП Эксперт
Добавить комментарий