База знаний FAM/MFA+ : Установка 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.

Перед выполнением установки и настройки необходимо выполнить резервное копирование.

Установка и настройка

Все операции производятся под учетной записью суперпользователя (root)

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

    mkdir /opt/pam
  2. Скачать архивы с файлами pam_avanpost_mfa.so, pam_avanpost_mfa_base.so и libPluginTokens.so по следующим ссылкам:
    – fam-pam-linux/avanpost_mfa_pam-1.0.36-40.tar.gz
    – PluginTokens/linux/plugin_tokens_1.0.39.linux.tar.gz

    разархивировать и разместить файлы в директории /opt/pam.
  3. Перенести файл 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


  4. Открыть конфигурационный файл /etc/pam.d/fly-dm в текстовом редакторе nano и добавить следующую информацию о провайдере:

    #%PAM-1.0
    auth [success=2] pam_avanpost_mfa.so debug grpc_address=192.168.1.45:9007 plugin_path=/usr/lib/avanpost_mfa/libPluginTokens.so device_lib_path=/usr/lib/librtpkcs11ecp.so create_user=yes default_user_group=avanpost,pamuser
    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
      
    Параметр Значение Пример
    grpc_address Адрес GRPC-сервера FAM. По умолчанию используется 9007 порт grpc_address=192.168.1.45:9007
    plugin_path Путь до файла libPluginTokens.so. Может быть произвольным /usr/lib/avanpost_mfa/libPluginTokens.so
    device_lib_path Путь до драйвера токена. Необязательный параметр device_lib_path=/usr/lib/librtpkcs11ecp.so
    create_user Создание пользователя в процессе аутентификации в ОС create_user=yes
    default_user_group Назначение группы на уровне ОС при создании пользователя default_user_group=avanpost,pamuser
  5. Для настройки подключения по SSH с использованием PAM-модуля необходимо:
    a. Открыть конфигурационный файл SSH-сервера /etc/pam.d/sshd в текстовом редакторе nano и продублировать следующую информацию о провайдере, указанную в пункте 5:
    auth required pam_avanpost_mfa.so debug grpc_address=192.168.1.45:9007 plugin_path=/usr/lib/avanpost_mfa/libPluginTokens.so
    b. Перейти в файл /etc/ssh/sshd_config и установить yes в значении параметра ChallengeResponseAuthentication для включения интерфейса PAM-модуля.
  6. Для настройки подключения через консольный вход с использованием PAM-модуля необходимо открыть конфигурационный файл /etc/pam.d/sshd в текстовом редакторе nano и продублировать следующую информацию о провайдере, указанную в пункте 5:
    auth [success=2] pam_avanpost_mfa.so debug grpc_address=192.168.1.45:9007 plugin_path=/usr/lib/avanpost_mfa/libPluginTokens.so
  7. В некоторых ситуациях может потребоваться переключение интерфейса с flat-modern на fly-flat (см. Приложение E );
  8. Для установки дополнительных пакетов для JaCarta см. Приложение D ;
  9. Для установки дополнительных пакетов для Рутокен см. Приложение C ;

  10. Для настройки альтернативных сценариев аутентификации см. Приложение F .

На стороне административной консоли Avanpost FAM Server

  1. Создать приложение с типом Desktop под именем "pam_fam", шаблон оставить пустым.
  2. На вкладке "Настройки аутентификации"(MFA) задать факторы аутентификации приложения:

    – на первом шаге: Password ( Рисунок );


    – на втором и последующих шагах установить нужный фактор аутентификации из списка.

  3. На этапе завершения настройки установить флажок "Сделать приложение активным" и сохранить.

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

  1. Создать учетную запись пользователя pamuser на уровне ОС.
  2. Создать учетную запись pamuser в системе FAM с использованием пароля, заданного в п.1 текущего раздела инструкции. Предоставить доступ пользователю к приложению pam_fam .
  3. Проверить вход в Систему под учетной записью pamuser .

Приложение А. Выпуск сертификата для проверки Рутокена

Все действия выполняются с подключенной смарт-картой Рутокен


#Операции по выпуску сертификата
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. Скопировать путь до найденного файла (например, / usr/lib/ librtpkcs11ecp.so ).
  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 создать приложение с типом Desktop ( Рисунок ), задать имя (например, 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