- Установка
- Установка SafeNet Authentication Client
- Проверка работы eToken в системе
- Способ №1
- Способ №2
- Инициализация токена eToken
- Создание ключевой пары RSA
- Создание самоподписанного сертификата
- Загрузка сертификата на токен
- Локальная аутентификация в Astra Linux по eToken
- Установка дополнительный пакетов
- Настраиваем аутентификацию
- Вход по токену
- Настройка PAM авторизации в защищенном Apache
- 39 комментариев
Установка
Для выполнения действий данной инструкции необходимо установить следующие пакеты из репозитория Astra Linux:
- библиотека libccid
- пакеты libpcsclite1 и pcscd;
- opensc
Для установки в терминале введите команду:
sudo apt install libccid pcscd libpcsclite1 opensc libengine-pkcs11-openssl*
Установка SafeNet Authentication Client
SafeNet Authentication Client – это программный клиент, который позволяет взаимодействовать прикладному программному обеспечению с электронными ключами и смарт-картами eToken производства компании Gemalto. Помимо набора драйверов и интерфейсов для взаимодействия Safenet Authentication Client включает необходимый набор функций для организации локального администрирования электронных ключей и смарт-карт.
Сам клиент следует загрузить с официального сайта Gemalto
После загрузки клиента с офф. сайта, его следует установить. Для этого введите команду:
sudo dpkg -i SafenetAuthenticationClient-amd64.deb
Если при запуске SafeNet Authentication client возникает ошибка:
CRYPTO/Crypto.c:247: init_openssl_crypto: Assertion lib failed.
то для корректной работы, следует создать символическую ссылку на нужную библиотеку. Для этого в терминале, нужно ввести команду:
Проверка работы eToken в системе
Для проверки работы Etoken:
Подключите устройство к компьютеру.
Способ №1
pkcs11-tool --module /usr/lib/libeToken.so -T
Способ №2
Выберите в Меню «Пуск» → «Прочие» → «SafeNet Authentication Сlient Tools» и подключите токен. После чего должна отобразиться информация о подключенном токене:
Инициализация токена eToken
Для инициализации токена необходимо воспользоваться утилитой pkcs11-tool.
pkcs11-tool --login --init-token --label "eToken Astra" --init-pin 12345678 --module /usr/lib/libeToken.so
—slot 0 — указывает в какой виртуальный слот подключено устройство. Как правило, это слот 0, но могут быть и другие значения – 1,2 и т.д.
—init-token – команда инициализации токена.
—pin — пин код пользователя.
—label ‘eToken Astra’ — метка(название) устройства.
—module — указывает путь до библиотеки eToken
или в SafeNet Authentication Сlient Tools выбрать кнопку «инициализировать токен».
Внимание! Инициализация устройства удалит все данные на eToken без возможности восстановления.
Создание ключевой пары RSA
Для генерации ключевой пары RSA в терминале следует ввести команду:
pkcs11-tool —slot 0 —login —pin 12345678 —keypairgen —key-type rsa:2048 —id 16 —label «rsa key» —module /usr/lib/libeToken.so
Создание самоподписанного сертификата
Для создания самоподписанного сертификата в терминале следует ввести команду:
engine dynamic -pre SO_PATH:/usr/lib/x86_64-linux-gnu/engines-1.1/pkcs11.so -pre ID:pkcs11 -pre LIST_ADD:1 -pre LOAD -pre MODULE_PATH:/usr/lib/libeToken.so
после чего ввести команду:
req -engine pkcs11 -new -key 0:16 -keyform engine -x509 -out test.pem -text
В поле Common Name должно быть указано имя пользователя ОС.
Загрузка сертификата на токен
Создав свой личный сертификат, его следует загрузить на eToken.
Перекодируем полученный сертификат из PEM в DER:
pkcs11-tool —slot 0 —login —pin 12345678 —write-object test.cer —type ‘cert’ —label ‘Certificate’ —id 16 —module /usr/lib/libeToken.so
(или с помощью графической утилиты SACTool)
Проверка ключей и сертификатов в eToken:
Локальная аутентификация в Astra Linux по eToken
Установка дополнительный пакетов
Пуск — Настройки — Менеджер пакетов
через Быстрый фильтр или через поиск находим и отмечаем к установке следующие пакеты:
либо воспользовавшись терминалом FLY:
sudo apt-get install libp11-2 libpam-p11
Конвертируем сертификат в текстовый формат
openssl x509 -
in
.crt-out .pem -inform DER -outform PEM
где — имя файла, в котором сохранен ваш сертификат из токена в текстовом формате
Теперь нам необходимо прочитать с токена сертификат с нужным ID и записать его в файл доверенных сертификатов:
Добавляем сертификат в список доверенных сертификатов:
mkdir ~/.eid
chmod 0755 ~/.eid
cat
.pem >> ~/.eid
/authorized_certificates
chmod 0644 ~/.eid/authorized_certificates
Для привязки токена к определенному пользователю необходимо указать его домашнюю директорию, например таким образом:
mkdir /home/user/.eid
chmod 0755 /home/user/.eid
cat
>> /home/user/.eid
/authorized_certificates
chmod 0644 /home/user/.eid/authorized_certificates
Важно помнить, что при регистрации нескольких токенов на одном компьютере необходимо указывать пользователям раличные id.
Настраиваем аутентификацию
Пуск — утилиты — Терминал Fly
sudo
nano
/usr/share/pam-configs/p11
записываем в файл следующую информацию:
Name: Pam_p11
Default: yes
Priority: 800
Auth-Type: Primary
Auth: sufficient pam_p11_opensc.so /usr/lib/libeToken.so
сохраняем файл, нажимаем Alt + X, а затем Y
после этого выполняем
Вход по токену
Пуск — утилиты — Терминал Fly
Вход выполняется с подключенным токеном к компьютеру. В момент ввода пароля будет сообщено, что требуется .
Настройка PAM авторизации в защищенном Apache
Как уже упоминалось в одной из наших предыдущих заметок, в состав Astra Linux Special Edition входит защищенный комплекс программ гипертекстовой обработки данных.
В качестве веб-сервера туда включен Apache2, который доработан с целью улучшения безопасности. В данной заметке мы коротко опишем как настроить данный веб-сервер с использованием PAM авторизации.
aptitude install apache2 libapache2-mod-auth-pam
NameVirtualHost *:80 Listen 80
ServerAdmin webmaster@localhost ServerName имясервера DocumentRoot /var/www/ AuthPAM_Enabled on AuthType Basic AuthName "PAM authentication" require valid-user Options Indexes FollowSymLinks MultiViews AllowOverride None ErrorLog /var/log/apache2/error.log LogLevel debug CustomLog /var/log/apache2/access.log common
a2enmod auth_pam a2ensite имя_файла_конфигурации service apache2 reload
usermod -a -G shadow www-data setfacl -d -m u:www-data:r /etc/parsec/macdb setfacl -R -m u:www-data:r /etc/parsec/macdb setfacl -m u:www-data:rx /etc/parsec/macdb
usermac -c 0:0 имя_пользователя_под_которым_будем_заходить
На очереди рассказ про настройку kerberos авторизации. Stay tuned!
P.S. Смотрите также нашу статью «Веб-приложения в защищённой среде» и вопросы посетителей, касающиеся Apache.
39 комментариев
Интересная заметка. Проверил, действительно работает. Значит ли это, что в качестве аутентификации можно использовать пользователей домена. И, есть ли возможность использовать эту аутентификацию на PHP?
Пользователей ALD не получится использовать, по крайней мере без танцев с бубном, если нужно ходить ald’шными, то тут самое оно это керберосная авторизация….постараюсь написать в ближайшее время.
Про php:
1. Повторяем пункты из статьи
2. aptitue install libapache2-mod-php5
3. nano /var/www/test.php
4. вводим, например:
# test.php
5. вводим в браузере имясервера/test.php
6. профит P.S. А если имелся ввиду php-auth-pam….то это скучная история.