Avanpost FAM/MFA+ : 4.4.3. Установка FAM Linux Logon в Astra Linux из .tar.gz

Общие сведения

Компонент 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).

  1. Создать директорию, в которой будут содержаться все необходимые файлы для последующего копирования или установки:

    mkdir /opt/pam
  2. Скачать архивы с файлами 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 (также следует использоваться наиболее свежую версию).
  3. Разархивировать и разместить файлы в директории /opt/pam.
    tar -C /opt/pam -xvzf /path_to_tar_file/avanpost_mfa_pam-1.0-60.tar.gz
  4. Перенести файл 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)

При первичной наладки модуля рекомендуется производить следующие действия:

  1. Перед началом настройки рекомендуется сделать резервную копию конфигурационного файла PAM, например: 
    cp /etc/pam.d/fly-dm /opt/pam/fly-dm_backup
  2. При тестировании следует использовать для пользователя FAM и в ОС одинаковый пароль, а также предоставить ему доступ к приложению.  
  3. Журналы событий аутентификации ОС (/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.
app_name=pam_fam_1
debugВключение повышенного уровня логирования для отладки.

Настройка SSHD

  1. Для настройки подключения по SSH с использованием PAM-модуля необходимо:
    a. Открыть конфигурационный файл SSH-сервера /etc/pam.d/sshd в текстовом редакторе:
sudo nano /etc/pam.d/sshd

2. Строку @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

  1. Необходимо сделать резервную копию файла /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 осуществляется в следующей последовательности:

  1. Зайти во вкладку создания приложения, нажав кнопку "Добавить приложение" в сервисе "Приложения".
  2. На этапе "Основные настройки" требуется ввести наименование и выбрать тип Windows Logon (более подробно процесс создания и управления приложениями описан в разделах Управление приложениями и Управление Linux Logon-приложениями). 

    Наименование создаваемого приложения типа Linux Logon не должно содержать пробелов (например, sshd_pam_1).

  3. На этапе "Настройки аутентификации" выбрать факторы аутентификации приложения, установив переключатели напротив тех или иных факторов (более подробно описано в Шаг 2. Настройки аутентификации для Linux Logon-приложения). 
    1. На первом шаге рекомендуется установить вход по паролю: установить переключатель в строке Password в положение "Активно" ().
    2. На последующих шагах установить дополнительные факторы аутентификации.
  4. На этапе завершения настройки установить флажок "Сделать приложение активным" и сохранить (более подробно описано в Шаг 3. Завершение для Linux Logon-приложения).

  5. Создать новую группу. Для этого необходимо нажать кнопку "Добавить группу" в режиме "Группы" и в открывшейся вкладке ввести запрашиваемые параметры (более подробно в Добавление новых групп).

  6. Добавить в группу пользователей, которые будут аутентифицироваться в настроенных приложениях. Ручное добавление пользователей администратором реализуется в профиле группы. Также доступ пользователя к группам и ролям допускается редактировать в УЗ пользователя

  7. Назначить ранее созданное Linux Logon-приложение в данную группу. Для этого в профиле группы во вкладке "Приложения" созданной группы установить переключатель в положение "Активно" () напротив созданных приложений.

Проверка установки

  1. Создать учетную запись пользователя в системе FAM с использованием пароля, заданного в п.1 текущего раздела инструкции.
  2. Предоставить доступ пользователю к созданному Linux Logon-приложению (добавить пользователя в группу, которой назначено приложение). 
  3. Проверить вход в 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. Установка пакетов Рутокен 

Для установки дополнительных пакетов для Рутокен требуется:

  1. Установить необходимые пакеты с помощью команды:

    apt install libccid pcscd libpcsclite1 pcsc-tools opensc libengine-pkcs11-openssl

    Дополнительная информация по установке пакетов и конфигурации доступна на странице https://wiki.astralinux.ru/pages/viewpage.action?pageId=32834416.

  2. Загрузить deb-пакет с официального сайта Рутокен, расположенный по ссылке https://www.rutoken.ru/support/download/pkcs/ и скопировать его в директорию /opt/pam.
  3. Выполнить команду для установки deb-пакета из директории /opt/pam:

     apt install ./librtpkcs11ecp_*_amd64.deb
  4. Произвести поиск файла librtpkcs11ecp.so:

    find /usr/lib /usr/lib64 -name librtpkcs11ecp.so
  5. Скопировать путь до найденного файла.
  6. Открыть файл /etc/pam.d/fly-dm и указать путь до файла librtpkcs11ecp.so в параметре device_lib_path.
  7. Произвести подключение токена к АРМ. Убедиться, что токен виден в системе командой pcsc_scan.

Приложение D.  Установка пакетов JaCarta 

Для установки дополнительных пакетов для JaCarta:

  1. Загрузить необходимый пакет с официального сайта разработчика https://www.aladdin-rd.ru/support/downloads/jacarta/
  2. Скопировать загруженный пакет в директорию /opt/pam.
  3. Для установки пакета перейти в директорию /opt/pam и выполнить команду:
    ./install.sh
  4. Произвести поиск файла libjcPKCS11-2.so:
    find /usr/lib /usr/lib64 -name libjcPKCS11-2.so
  5. Скопировать путь до найденного файла (например, /usr/lib/libjcPKCS11-2.so).
  6. Открыть файл /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 необходимо:

  1. Установить пакет fly-admin-dm с помощью команды:
    sudo apt install fly-admin-dm
  2. Запустить утилиту fly-admin-dm с помощью команды:
    sudo fly-admin-dm
  3. В окне настройки графического входа перейти в раздел Темы и выбрать fly-flat (плоская тема) (Рисунок).

Приложение F. Добавление дополнительных типов модуля 

Функциональность модуля имеет возможность настраивать альтернативные сценарии аутентификации. Для этого необходимо:

  1. В административной консоли Avanpost FAM создать приложение с типом Agent (Рисунок), задать имя (например, pam_fam_1), шаблон оставить пустым.

  2. На вкладке "Настройки аутентификации"(MFA) задать нужные факторы аутентификации приложения.
  3. На этапе завершения настройки установить флажок "Сделать приложение активным" и сохранить.
  4. Открыть конфигурационный файл 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 необходимо:

  1. Отредактировать файл  /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




Обсуждение