[ ] [ Общие сведения ] [ Установка на стороне рабочей станции под управлением Astra Linux ] [ Первоначальная отладка и настройка модуля ] [ Общие рекомендации ] [ Параметры PAM-модуля ] [ Настройка SSHD ] [ Настройка fly-dm ] [ Настройка компонента на стороне Avanpost FAM Server ] [ Проверка установки ] [ Приложение А. Выпуск сертификата для проверки Рутокена ] [ Приложение B. Быстрое обновление ] [ Приложение C. Установка пакетов Рутокен ] [ Приложение D. Установка пакетов JaCarta ] [ Приложение E. Переключение интерфейса с flat-modern на fly-flat ] [ Приложение F. Добавление дополнительных типов модуля ] [ Приложение G. Настройка XRDP для Astra Linux ]
Общие сведения
Компонент Avanpost FAM Linux Logon устанавливается локально для обеспечения:
- 2FA/MFA в ОС Linux в режиме графической оболочки;
- 2FA/MFA в ОС Linux в режиме консольного входа;
- 2FA/MFA в ОС Linux при подключении по SSH.
В текущей инструкции описывается настройка сценария входа в режиме графической оболочки. Для использования в других сценариях требуется выполнение настройки в соответствии с документацией механизма PAM Linux.
Требования к ПО:
- ОС:
– Astra Linux Орел 2.12 СЕ (доступ ко всем факторам, кроме Kerberos);
– Astra Linux SE 1.7.4 (в режиме графического интерфейса fly-flat);
– Astra Linux SE 1.7.5. - Avanpost FAM Server 1.8+.
Для установки и настройки Avanpost FAM Linux Logon в соответствии с текущей инструкцией необходимо выполнить следующие предварительные условия:
- Сетевое соединение: обеспечение доступа к сети для связи с сервером FAM (используется gRPC сервер FAM, который по умолчанию работает на порту 9007 TCP).
Важно
Перед выполнением установки и настройки необходимо выполнить резервное копирование.
Установка на стороне рабочей станции под управлением Astra Linux
Все операции производятся под учетной записью суперпользователя (root).
Создать директорию, в которой будут содержаться все необходимые файлы для последующего копирования или установки:
mkdir /opt/pam
- Скачать архивы с файлами pam_avanpost_mfa.so, pam_avanpost_mfa_base.so и libPluginTokens.so по следующим ссылкам:
- fam-pam-linux для avanpost_mfa_pam.tar.gz (следует использовать наиболее свежую версию);
- PluginTokens/linux для plugin_tokens.linux.tar.gz (также следует использоваться наиболее свежую версию).
- Разархивировать и разместить файлы в директории
/opt/pam.
tar -C /opt/pam -xvzf /path_to_tar_file/avanpost_mfa_pam-1.0-60.tar.gz
Перенести файл pam_avanpost_mfa.so в стандартную директорию pam-модулей в ОС. Также создать соответствующую директорию для файлов
pam_avanpost_mfa_base.so
иlibPluginTokens.so
.Поиск директории модулей PAM выполнятся с помощью команды:
find / -name "pam_unix.so"
Для 64-разрядных систем в названии директории будет присутствовать обозначение x86_64.
Для 32-разрядных систем в названии директории будет присутствовать обозначение i386.
Пример выполнения команды для переноса файлов:
mkdir /usr/lib/avanpost_mfa || true && cp pam_avanpost_mfa_base.so /usr/lib/avanpost_mfa || true && cp pam_avanpost_mfa.so /lib/x86_64-linux-gnu/security/ || true && cp libPluginTokens.so /usr/lib/avanpost_mfa || true
Первоначальная отладка и настройка модуля
Общие рекомендации
Все операции производятся под учетной записью суперпользователя (root)
При первичной наладки модуля рекомендуется производить следующие действия:
- Перед началом настройки рекомендуется сделать резервную копию конфигурационного файла PAM, например:
cp /etc/pam.d/fly-dm /opt/pam/fly-dm_backup
- При тестировании следует использовать для пользователя FAM и в ОС одинаковый пароль, а также предоставить ему доступ к приложению.
- Журналы событий аутентификации ОС (/var/log/auth.log) и журналы безопасности при тестировании следует смотреть в консоли администратора.
sudo tail -f /var/log/auth.log
Для работы второго фактора необходимо изменить тему с flat-modern
на fly-flat
(см. Приложение E). В fly-dm выше версии 2.12.4+ci15 включена поддержка второго фактора (Access-Challenge) в теме "Fly современная".
Параметры PAM-модуля
Параметр | Значение | Пример |
---|---|---|
plugin_path | Путь до файла libPluginTokens.so. Может быть произвольным. | /usr/lib/avanpost_mfa/libPluginTokens.so |
grpc_address | Адрес GRPC-сервера FAM. По умолчанию используется 9007 порт. | grpc_address=192.168.1.45:9007 |
device_lib_path | Путь до драйвера токена. Необязательный параметр. | device_lib_path=/usr/lib/librtpkcs11ecp.so |
default_user_group | Назначение группы на уровне ОС при создании пользователя. | default_user_group=avanpost,pamuser |
create_user | Создание пользователя в процессе аутентификации в ОС. | create_user=yes |
app_name | Имя Linux Logon-приложения в FAM. |
|
debug | Включение повышенного уровня логирования для отладки. |
Настройка SSHD
Для настройки подключения по SSH с использованием PAM-модуля необходимо:
- Открыть конфигурационный файл SSH-сервера
/etc/pam.d/sshd
в текстовом редакторе:sudo nano /etc/pam.d/sshd
- Строку @include common-auth закомментировать, добавить в начало файла следующую строку с информацией о провайдере:
auth requisite pam_avanpost_mfa.so debug grpc_address=10.0.2.4:9007 app_name=sshd_pam_1 plugin_path=/usr/lib/avanpost_mfa/libPluginTokens.so create_user=yes default_user_group=avanpost
Настройка fly-dm
- Необходимо сделать резервную копию файла /etc/pam.d/fly-dm при помощи команды:
sudo cp /etc/pam.d/fly-dm /opt/pam/fly-dm2
2. Далее открыть файл для редактирования:
sudo vi /etc/pam.d/fly-dm
Для версии Astra Linux 2.* следует привести файл к данному виду, указав для параметра grpc_address=10.0.2.4:9007 свои IP-адрес и порт GRPC-сервера при необходимости:
#%PAM-1.0 auth requisite pam_avanpost_mfa.so debug grpc_address=10.0.2.4:9007 create_user=yes default_user_group=avanpost auth requisite pam_nologin.so auth required pam_env.so readenv=1 auth required pam_env.so readenv=1 envfile=/etc/default/locale #@include common-auth session required pam_limits.so session required pam_loginuid.so @include common-account @include common-session @include common-password
Для версий Astra Linux 1.7.* файл будет выглядеть так (для параметра grpc_address=10.0.2.4:9007 следует также указать свои IP-адрес и порт при необходимости):
#%PAM-1.0 auth required pam_parsec_mac.so auth requisite pam_avanpost_mfa.so debug grpc_address=10.0.2.4:9007 app_name=sshd_pam_1 plugin_path=/usr/lib/avanpost_mfa/libPluginTokens.so create_user=yes default_user_group=avanpost auth requisite pam_nologin.so auth required pam_env.so readenv=1 auth required pam_env.so readenv=1 envfile=/etc/default/locale #@include common-auth -auth optional pam_gnome_keyring.so -auth optional pam_kwallet5.so session required pam_parsec_mac.so unshare_root_only session required pam_limits.so session required pam_loginuid.so @include common-account account required pam_parsec_mac.so labelselect=appset @include common-session session required pam_parsec_cap.so session required pam_parsec_aud.so session required pam_parsec_mac.so -session optional pam_gnome_keyring.so auto_start -session optional pam_kwallet5.so auto_start @include common-password
- Для установки дополнительных пакетов для JaCarta см. Приложение D;
- Для установки дополнительных пакетов для Рутокен см. Приложение C;
- Для настройки альтернативных сценариев аутентификации см. Приложение F.
Настройка компонента на стороне Avanpost FAM Server
Настройка компонента в интерфейсе административной консоли Avanpost FAM Server осуществляется в следующей последовательности:
- Зайти во вкладку создания приложения, нажав кнопку "Добавить приложение" в сервисе "Приложения".
- На этапе "Основные настройки" требуется ввести наименование и выбрать тип Windows Logon (более подробно процесс создания и управления приложениями описан в разделах Управление приложениями и Управление Linux Logon-приложениями).
Наименование создаваемого приложения типа Linux Logon не должно содержать пробелов (например,
sshd_pam_1
). - На этапе "Настройки аутентификации" выбрать факторы аутентификации приложения, установив переключатели напротив тех или иных факторов (более подробно описано в Шаг 2. Настройки аутентификации для Linux Logon-приложения).
- На первом шаге рекомендуется установить вход по паролю: установить переключатель в строке Password в положение "Активно" ().
- На последующих шагах установить дополнительные факторы аутентификации.
На этапе завершения настройки установить флажок "Сделать приложение активным" и сохранить (более подробно описано в Шаг 3. Завершение для Linux Logon-приложения).
Создать новую группу. Для этого необходимо нажать кнопку "Добавить группу" в режиме "Группы" и в открывшейся вкладке ввести запрашиваемые параметры (более подробно в Добавление новых групп).
Добавить в группу пользователей, которые будут аутентифицироваться в настроенных приложениях. Ручное добавление пользователей администратором реализуется в профиле группы. Также доступ пользователя к группам и ролям допускается редактировать в УЗ пользователя.
Назначить ранее созданное Linux Logon-приложение в данную группу. Для этого в профиле группы во вкладке "Приложения" созданной группы установить переключатель в положение "Активно" () напротив созданных приложений.
Проверка установки
- Создать учетную запись пользователя в системе FAM с использованием пароля, заданного в п.1 текущего раздела инструкции.
- Предоставить доступ пользователю к созданному Linux Logon-приложению (добавить пользователя в группу, которой назначено приложение).
- Проверить вход в Avanpost FAM, используя учетные данные пользователя.
Приложение А. Выпуск сертификата для проверки Рутокена
Все действия выполняются с подключенной смарт-картой Рутокен
#Операции по выпуску сертификата openssl req -newkey rsa:2048 -new -nodes -x509 -days 11111 -keyout key.pem -out cert.pem openssl x509 -in cert.pem -out cert.crt -outform DER openssl rsa -inform pem -in key.pem -outform der -out key.der #Операции по записи приватного ключа и сертификата на токен pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -l -y privkey -w key.der --id 10 --label Rutoken1 pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -l -y cert -w cert.crt --id 10 --label Rutoken1 #Просмотр сертификата для копирования в карточку пользователя FAM cat cert.pem
Приложение B. Быстрое обновление
Для быстрого обновления модуля PAM выполнить команды:
sudo rm /usr/lib/avanpost_mfa/pam_avanpost_mfa_base.so && sudo rm /lib/x86_64-linux-gnu/security/pam_avanpost_mfa.so && sudo cp /opt/pam/pam_avanpost_mfa.so /lib/x86_64-linux-gnu/security/ && sudo cp /opt/pam/pam_avanpost_mfa_base.so /usr/lib/avanpost_mfa/
Приложение C. Установка пакетов Рутокен
Для установки дополнительных пакетов для Рутокен требуется:
Установить необходимые пакеты с помощью команды:
apt install libccid pcscd libpcsclite1 pcsc-tools opensc libengine-pkcs11-openssl
Дополнительная информация по установке пакетов и конфигурации доступна на странице https://wiki.astralinux.ru/pages/viewpage.action?pageId=32834416.
- Загрузить deb-пакет с официального сайта Рутокен, расположенный по ссылке https://www.rutoken.ru/support/download/pkcs/ и скопировать его в директорию
/opt/pam.
Выполнить команду для установки deb-пакета из директории
/opt/pam
:apt install ./librtpkcs11ecp_*_amd64.deb
Произвести поиск файла librtpkcs11ecp.so
:
find /usr/lib /usr/lib64 -name librtpkcs11ecp.so
- Скопировать путь до найденного файла.
- Открыть файл
/etc/pam.d/fly-dm
и указать путь до файлаlibrtpkcs11ecp.so
в параметреdevice_lib_path
.
- Произвести подключение токена к АРМ. Убедиться, что токен виден в системе командой
pcsc_scan.
Приложение D. Установка пакетов JaCarta
Для установки дополнительных пакетов для JaCarta:
- Загрузить необходимый пакет с официального сайта разработчика https://www.aladdin-rd.ru/support/downloads/jacarta/
- Скопировать загруженный пакет в директорию
/opt/pam
. - Для установки пакета перейти в директорию
/opt/pam
и выполнить команду:./install.sh
- Произвести поиск файла
libjcPKCS11-2.so:
find /usr/lib /usr/lib64 -name libjcPKCS11-2.so
- Скопировать путь до найденного файла (например, /
usr/lib/
).libjcPKCS11-2
.so - Открыть файл
/etc/pam.d/fly-dm
и указать путь до файла libjcPKCS11-2.so в параметреdevice_lib_path
. Например:device_lib_path=/usr/lib/librtpkcs11ecp.so
Приложение E. Переключение интерфейса с flat-modern на fly-flat
Для переключения интерфейса с flat-modern
на fly-flat
необходимо:
- Установить пакет
fly-admin-dm
с помощью команды:sudo apt install fly-admin-dm
- Запустить утилиту
fly-admin-dm
с помощью команды:sudo fly-admin-dm
- В окне настройки графического входа перейти в раздел Темы и выбрать
fly-flat
(плоская тема) (Рисунок).
Приложение F. Добавление дополнительных типов модуля
Функциональность модуля имеет возможность настраивать альтернативные сценарии аутентификации. Для этого необходимо:
В административной консоли Avanpost FAM создать приложение с типом Agent (Рисунок), задать имя (например,
pam_fam_1
), шаблон оставить пустым.- На вкладке "Настройки аутентификации"(MFA) задать нужные факторы аутентификации приложения.
- На этапе завершения настройки установить флажок "Сделать приложение активным" и сохранить.
Открыть конфигурационный файл PAM, расположенный по пути /etc/pam.d/* и отредактировать, добавив следующую строку с настройками сценария аутентификации:
auth [success=2] pam_avanpost_mfa.so debug grpc_address=192.168.1.45:9007 app_name=pam_fam_1 plugin_path=/usr/lib/avanpost_mfa/libPluginTokens.so device_lib_path=/opt/aktivco/rutokenecp/amd64/librtpkcs11ecp.so
grpc_address Адрес GRPC-сервера FAM. По умолчанию используется 9007 порт grpc_address=192.168.1.45:9007 app_name
Имя созданного приложения
Имя приложения должно совпадать с тем, что было задано в административной консоли Avanpost FAM на шаге 1 текущей инструкции
app_name=pam_fam_1
plugin_path
Путь до файла libPluginTokens.so. Может быть произвольным
plugin_path=/usr/lib/avanpost_mfa/libPluginTokens.so
device_lib_path
Путь до драйвера токена
device_lib_path=/opt/aktivco/rutokenecp/amd64/librtpkcs11ecp.so
Приложение G. Настройка XRDP для Astra Linux
Настройка данной утилиты позволяет на ОС, отличных от разработанных Microsoft, реализовать функциональность подключения из Windows к компьютерам под управлением ОС на базе *nix.
XRDP не поддерживает Access-Challenge, поэтому для использования в качестве второго фактора будут доступны только Telegram и Avanpost Authenticator.
Для настройки XRDP необходимо:
- Отредактировать файл /etc/pam.d/xrdp-sesman.
sudo vi /etc/pam.d/xrdp-sesman
2. Для версий Astra Linux 2.* следует привести файл к данному виду, указав для параметра grpc_address=10.0.2.4:9007 свои IP-адрес и порт GRPC-сервера при необходимости:
#%PAM-1.0 auth requisite pam_avanpost_mfa.so debug grpc_address=10.0.2.4:9007 app_name=sshd_pam_1 plugin_path=/usr/lib/avanpost_mfa/libPluginTokens.so #@include common-auth @include common-account @include common-session @include common-password
Для версий Astra Linux 1.7.* файл будет выглядеть так (для параметра grpc_address=10.0.2.4:9007 следует также указать свои IP-адрес и порт при необходимости):
#%PAM-1.0 auth requisite pam_avanpost_mfa.so debug grpc_address=10.0.2.4:9007 app_name=sshd_pam_1 plugin_path=/usr/lib/avanpost_mfa/libPluginTokens.so #@include common-auth @include common-account @include common-session session required pam_parsec_cap.so session required pam_parsec_aud.so session required pam_parsec_mac.so stub @include common-password