Установка Avanpost FAM Linux Logon в РЕД ОС


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

Компонент Avanpost FAM Linux Logon устанавливается локально для обеспечения: 

  • 2FA/MFA в ОС Linux в режиме графической оболочки;
  • 2FA/MFA в ОС Linux в режиме консольного входа;
  • 2FA/MFA в ОС Linux при подключении по SSH.

Требования к ПО: 

Для установки и настройки Avanpost FAM Linux Logon в соответствии с текущей инструкцией необходимо выполнить следующие предварительные условия:

  • Сетевое соединение: обеспечение доступа к сети для связи с сервером FAM (используется gRPC сервер FAM, который по умолчанию работает на порту 9007 TCP). 

Важно

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

Установка на стороне рабочей станции под управлением РЕД ОС

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

Установка и настройка FAM Linux Logon на рабочей станции пользователя осуществляется следующим образом:

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

    sudo tar -C /opt/pam -xvzf /path_to_tar_file/avanpost_mfa_pam-1.0-60.tar.gz
  4. Войти под правами суперпользователя, используя следующую команду:
    sudo su -
  5. Найти стандартную директорию PAM-модулей в ОС, использовать команду (в наименовании директории в 64-разрядной системе присутствует обозначение x86_64, в 32-разрядной - i386):
    find / -name "pam_unix.so"
  6. Перенести файл pam_avanpost_mfa.so в стандартную директорию PAM-модулей. Пример команды для переноса файлов:
    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
  7. Создать директорию, в которой будут находиться файлы pam_avanpost_mfa_base.so и libPluginTokens.so.

  8. Настроить параметры конфигурационного файла модуля в соответствии с таблицей (PAM-модуль функционально можно подключать к любому приложению, которое поддерживает PAM, но параметры конфигурационного файла отличаются для каждого приложения и для каждой ОС, т.к. функциональность и механизмы взаимодействия различны для разных приложений и ОС).  
    ПараметрЗначениеПример
    Connect

    IP-адрес Avanpost FAM Server и gRPC-порт (стандартный gRPC-порт для Credential Provider – 9007 TCP).

    Настройка gRPC-порта выполняется на стороне FAM Server (более подробно в статье Настройка gRPC).

    192.168.1.10:9007
    LogАдрес (путь и имя файла) для сохранения файла логирования./var/log/pam_avanpost.log
    LogLevel

    Уровень детализации логирования (более подробно о логировании в статье Управление логированием). Доступны следующие уровни:

    • ERROR – отображаются только ошибки;
    • INFO – отображается информация об общем ходе работы и ошибки (установлена по умолчанию);
    • DEBUG – отображается информация об общем ходе работы, фиксация ошибок, а также детальная информация для разработчика.
    DEBUG
    Flags

    Флаги для настройки дополнительных параметров работы модуля:

    • OFFLINE_ENABLE – включение offline-входа в систему при отсутствии соединения с FAM Server (при значении параметра true). 
    false
    SslTargetNameИмя хоста из TLS-сертификата сервера (при использовании TLS-шифрования).fam.example.com
    CAПуть и наименование файла корневого сертификата (при использовании TLS-шифрования)./etc/ssl/certs/fam-ca.pem
    AppNameНаименование Linux Logon-приложения, настроенного на стороне Avanpost FAM (по умолчанию используется pam_fam). sshd_pam_fam
    TimeoutВремя ожидания ответа для сервера (по умолчанию 45 секунд).60

    [Plugin]

    (секция настроек внешних плагинов для работы с криптографическими устройствами)

    Module

    Полный путь к плагину, включая имя плагина с расширением *.dll (предварительно скачивается дистрибутив с плагином).

    PluginTokens_64.dll

    Init

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

    В качестве значения параметра можете передаваться одно из двух значений:

    • имя поддерживаемого устройства (например, ETOKEN, RUTOKEN, RUTOKEN_ECP) – выполняется автоматический поиск соответствующей PKCS#11-библиотеку;
    • полный путь к файлу PKCS#11-библиотеки – используется при необходимости явного указания расположения библиотеки.
    ETOKEN

    Model

    Модель используемого устройства, с которым должен работать плагин. Допускается указание нескольких моделей через запятую.

    JaCarta Laser,Rutoken ECP

Установка и настройка на стороне Avanpost FAM

Настройку Linux Logon в административной консоли Avanpost FAM Server следует осуществлять следующим образом:

Настройка компонента в интерфейсе административной консоли Avanpost FAM Server осуществляется в следующей последовательности:

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

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

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

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

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

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

Для корректной работы фактора TOTP в конфигурационном файле Avanpost FAM Server config.toml установить параметр http_only = true (параметр расположен в разделе [cookie]).

Первоначальная отладка и настройка

Общие рекомендации

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

  1. Перед началом настройки компонента рекомендуется сделать резервную копию файлов. Пример команды:
    sudo cp /etc/pam.d/fly-dm /opt/pam/fly-dm_backup
  2. При тестировании использовать "локального пользователя", который был создан в FAM и в ОС с одинаковым паролем. Предоставить доступ пользователю к приложению cозданного приложения типа Linux Logon.  
  3. В процессе тестирования рекомендуется отслеживать события sshd в разделе Журнал безопасности (сервис "Отчеты" административной консоли Avanpost FAM Server) и в ОС рабочей станции при помощи команды:
    sudo journalctl -xefu sshd

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

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

  1. Создать учетную запись пользователя pamuser на рабочей станции пользователя и задать пароль. 
  2. Создать учетную запись pamuser на стороне Avanpost FAM с использованием пароля, заданного на предыдущем шаге (особенности процесса создания пользователя описаны в Добавление пользователей и атрибутов вручную):
    1.  Нажать кнопку "Добавить пользователя" в режиме "Пользователи" административной консоли Avanpost FAM.
    2. Ввести значения основных атрибутов, включая логин - pamuser.
    3. Выключить флаг в чекбоксе "Отправить приветствие со ссылкой для смены пароля", ввести и подтвердить пароль, заданный для пользователя в ОС на рабочей станции.

    4. Нажать кнопку "Сохранить".

  3. Предоставить доступ пользователю к созданному ранее Linux Logon-приложению (в данном примере pam_fam).
    1. В режиме "Группы" войти в профиль группы, для которой задан доступ к приложению pam_fam (если такая группа отсутствует, создать новую группу и назначить ей приложение pam_fam, пользуясь статьей Добавление новых групп в разделе Управление доступом). 
    2. Нажать кнопку "Добавить пользователей", найти и выбрать нужного пользователя (в данном примере pamuser).
    3. Нажать кнопку "Сохранить".
  4. Проверить вход в Систему под учетной записью pamuser.

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

    sudo tail -f /var/log/auth.log

Настройка SSHD

Для настройки подключения по SSH с использованием PAM-модуля необходимо:

  1. Открыть конфигурационный файл SSH-сервера /etc/pam.d/sshd в текстовом редакторе:
    sudo nano /etc/pam.d/sshd
  2.  Закомментировать строку auth substack password-auth.
  3. Добавить перед строкой pam_unix.so следующую строку:
    auth requisite pam_avanpost_mfa.so debug config_file=/etc/security/pam_avanpost.conf
  4. Убедиться, что файл sshd_config (не pam.d/sshd) содержит необходимые параметры для работы с Access-Challenge. В частности, в файле /etc/ssh/sshd_config должны быть установлены значения "yes" для параметров ChallengeResponseAuthentication, UsePAM, KbdInteractiveAuthentication:
    sudo nano /etc/ssh/sshd_config.d/50-redos.conf
    # This system is following system-wide crypto policy. The changes to
    # crypto properties (Ciphers, MACs, ...) will not have any effect here.
    # They will be overridden by command-line options passed to the server
    # on command line.
    # Please, check manual pages for update-crypto-policies(8) and sshd_config(5).
    
    SyslogFacility AUTHPRIV
    
    KbdInteractiveAuthentication yes
    
    GSSAPIAuthentication yes
    GSSAPICleanupCredentials yes
    ChallengeResponseAuthentication yes
    
    UsePAM yes
    
    X11Forwarding yes
    
    # It is recommended to use pam_motd in /etc/pam.d/sshd instead of PrintMotd,
    # as it is more configurable and versatile than the built-in version.
    PrintMotd no
    
    # Accept locale-related environment variables
    AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
    AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
    AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
  5. Отредактировать файл /etc/pam.d/sshd следующим образом:
    sudo nano /etc/pam.d/sshd
    #%PAM-1.0
    auth       substack     password-auth
    auth	   required	pam_avanpost_mfa.so debug grpc_address=10.0.2.20:9007 app_name=pam_fam plugin_path=/usr/lib/avanpost_mfa/libPluginTokens.so
    auth       include      postlogin
    account    required     pam_sepermit.so
    account    required     pam_nologin.so
    account    include      password-auth
    password   include      password-auth
    # pam_selinux.so close should be the first session rule
    session    required     pam_selinux.so close
    session    required     pam_loginuid.so
    # pam_selinux.so open should only be followed by sessions to be executed in the user context
    session    required     pam_selinux.so open env_params
    session    required     pam_namespace.so
    session    optional     pam_keyinit.so force revoke
    session    optional     pam_motd.so
    session    include      password-auth
    session    include      postlogin
    
    
  6. Установить параметр http_only = true в конфигурационном файле Avanpost FAM Server config.toml для корректной работы фактора TOTP.

Настройка графического входа

Для обеспечения MFA при входе через графическую оболочку (GDM) требуется выполнить следующие действия:

  1. Открыть файл /etc/pam.d/gdm-password при помощи команды:
    sudo vi /etc/pam.d/gdm-password
  2. Закомментировать следующую строку:
    auth substack password-auth
  3. Добавить перед строкой pam_unix.so следующую строку:
    auth requisite pam_avanpost_mfa.so debug config_file=/etc/security/pam_avanpost.conf
  4. Сохранить изменения и перезапустить GDM (или перезагрузить систему) для применения изменений.

Обсуждение