Avanpost FAM/MFA+ : 4.2.2. Установка FAM Server в Linux из deb-пакета

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

Требования к окружению

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

  1. В ОС должны быть установлены следующие программы:
    - sudo (программа выполнения команд от имени суперпользователя);
    - psql (CLI-клиент из состава PostgreSQL);
    - nginx (веб-сервер/прокси-сервер);
    - openssl (программа управления сертификатами).

    При необходимости использования SAML – дополнительно установить средства проверки подписи XML по умолчанию они установлены:

    • xmlsec1;
    • xmlsec1-openssl.

Выполнена синхронизация времени в ОС с сервером синхронизации времени.

Примечание

Установка и настройка указанных программ выходит за границы текущей инструкции и описана в справочных руководствах, идущих в комплекте с операционной системой Linux, на которой производится развёртывание.

Конфигурационные файлы

При внесении изменений в конфигурационный файл выполнение развёртывания должно производиться с учётом возможного влияния изменённых параметров в сравнении с конфигурационным файлом из дистрибутива. 

Дистрибутив содержит в себе:

  • конфигурационный файл, необходимый для работы серверной части, предварительно настроенный для выполнения базового развёртывания с помощью текущей инструкции, 
  • минимальный конфигурационный файл для сервера Nginx.

Создание и развёртывание базы данных

Создать пользователя СУБД avanpost с паролем и базу данных idp с помощью последовательно выполняемых команд:

sudo -u postgres psql
CREATE USER avanpost WITH PASSWORD 'Passw0rd';
CREATE DATABASE idp OWNER=avanpost ENCODING=utf8;
\q
CREATE USER avanpost WITH PASSWORD 'Passw0rd'

Команда SQL, выполняемая в среде psql, которая создает нового пользователя с именем avanpost и заданным паролем 'Passw0rd'

CREATE DATABASE idp OWNER=avanpost ENCODING=utf8

Команда SQL для создания новой базы данных с именем idp. Опции OWNER=avanpost устанавливают пользователя avanpost в качестве владельца базы данных. Опция ENCODING=utf8 устанавливает кодировку базы данных на UTF-8

Примечание

В файле /var/lib/pgsql/версия/data/pg_hba.conf – изменить метод аутентификации на md5 для IPv4 (host all all 127.0.0.1/32) и IPv6 (host all all ::1/128) подключений:

После внесения изменений в pg_hba.conf перезапустить PostgreSQL.

Путь к файлу pg_hba.conf для разных ОС и версий ОС может отличаться. Например, для Ubuntu файл хранится по пути: /etc/postgresql/pg_hba.conf.

Для поиска необходимого файла рекомендуется воспользоваться командой find / -name 'pg_hba.conf'.

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

Установка Avanpost FAM Server допускается следующими способами:

  • ручная установка с развертывание файлов дистрибутива из архива;
  • автоматическая установка с развертыванием файлов из репозитория.

Вариант 1. С развертыванием файлов дистрибутива из архива (ручная установка)

Для развёртывания дистрибутива из dep-пакета необходимо:

  1. Установить дополнительные пакеты (если они отсутствуют) при помощи команды:

    sudo apt install wget
  2. Скачать последнюю версию deb-пакета FAM, использую команду:

    wget https://packages.avanpost.ru/repository/deb-hosted/pool/a/avpfam/avpfam_*.*.*_amd64.deb --no-check-certificate
    где *.*.* – это номер версии пакета.
  3. Выполнить установку пакета avpfam из директории расположения файла при помощи команды:

    sudo dpkg -i avpfam_*.*.*_amd64.deb
  4. При развертывании в диалоговых окнах необходимо указать следующие настройки:
    1. Ввести доменное имя сервера FAM для настройки конфигурации NGINX.

      Enter domain name of FAM Server for NGINX Config:
      Пример: idp.avanpost.local
    2. Ввести IP-адрес сервера FAM.

      Enter IP address of FAM Server for NGINX Config:
      Пример: 127.0.0.1
    3. Ввеcти имя хоста или IP-адрес сервера PostgreSQL для сервера IDP.

      Enter Postgresql Server host name for IDP Server:
      Пример: 127.0.0.1
    4. Ввести имя БД для сервера IDP.

      Enter DB name for IDP Server:
      Вводим BD name, которое ввели в пункте 2.
    5. Ввести имя пользователя БД, созданного ранее.

      Enter username of DB:
      Вводим  username , которое ввели в пункте 2.
    6. Ввести созданный ранее пароль от БД дважды.

      Enter password of DB
      
      Enter password of DB (again)
      Вводим  password, который вводили в пункте 2.
    7. Указать параметры само подписанного сертификата.


  5. После установки необходимо добавить пользователя idp в группу root:

    sudo usermod -aG root idp

Вариант 2. С развертыванием файлов из репозитория (автоматическая установка)

Для развёртывания дистрибутива из репозитория необходимо:

  1. Добавить репозиторий FAM в файл sources.list: при помощи команды sed вставить строку https://packages.avanpost.ru/repository/deb-hosted/ linux main в файл sources.list в директории /etc/apt при помощи команды:

    sed -i '$ a\\ndeb https://packages.avanpost.ru/repository/deb-hosted/ linux main' /etc/apt/sources.list
    
  2. Скачать публичный ключ репозитория, используя команду: 

    wget -q "https://docs.avanpost.ru/certs/deb-hosted.gpg.key"
  3. Добавить публичный ключ в Систему при помощи команды: 

    sudo apt-key add deb-hosted.gpg.key
  4. Обновить список пакетов при помощи команды: 

    sudo apt update
  5. Установить пакет FAM, используя команду:

    sudo apt install avpfam

    Внимание

    Стандартные репозитории Astra Linux содержат свои пакеты fam, перед установкой необходимо закомментировать все остальные репозитории и перед вынолнением установки повторно обновить список пакетов sudo apt update

  6. При развертывании в диалоговых окнах необходимо указать следующие настройки:
    1. Ввести доменное имя сервера FAM для настройки конфигурации NGINX.

      Enter domain name of FAM Server for NGINX Config:
      Пример: idp.avanpost.local
    2. Ввести IP-адрес сервера FAM.

      Enter IP address of FAM Server for NGINX Config:
      Пример: 127.0.0.1
    3. Ввеcти имя хоста или IP-адрес сервера PostgreSQL для сервера IDP.

      Enter Postgresql Server host name for IDP Server:
      Пример: 127.0.0.1
    4. Ввести имя БД для сервера IDP.

      Enter DB name for IDP Server:
      Вводим BD name, которое ввели в пункте 2.
    5. Ввести имя пользователя БД, созданного ранее.

      Enter username of DB:
      Вводим  username , которое ввели в пункте 2.
    6. Ввести созданный ранее пароль от БД дважды.

      Enter password of DB
      
      Enter password of DB (again)
      Вводим  password, который вводили в пункте 2.
  7. Удержать пакет FAM от обновления при выполнении команды apt upgrade:

    sudo apt-mark hold avpfam
  8. После установки необходимо добавить пользователя idp в группу root:

    sudo usermod -aG root idp

Проверка публикации интерфейса системы на веб-сервере Nginx

После установки следут проверить публикацию системы на сервере Nginx, для чего требуется:

  1. Проверить в конце конфигурационного файла /etc/nginx/nginx.conf строку при помощи команды:

    include /etc/nginx/sites-enabled/*;
  2. Проверить конфигурационный файл idp.conf на основе примера при помощи команды:

    sudo nano /etc/nginx/sites-available/idp.conf

    Внимание

    Адрес idp.avanpost.local должен указывать в сети на IP-адрес сервера, на котором размещается система средствами DNS.

    В противном случае требуется локально в конфигурации /etc/hosts клиентской машины, за которой работает пользователь или администратор, выполнить настройку маршрутизации с хоста на IP-адрес сервера с системой.

    Пример файла /etc/hosts

    127.0.0.1     localhost
    127.0.0.1     idp.avanpost.local

    Пример содержимого конфигурационного файла в idp.conf:

    server {
        listen        80;
        server_name   idp.avanpost.local;
        location / {
            proxy_pass       http://127.0.0.1:4008;
            proxy_set_header X-Real-IP $remote_addr;
    		proxy_set_header Host $host;
    		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            add_header Content-Security-Policy "default-src 'self'; img-src * 'self' data: https:; style-src * 'self' 'unsafe-inline'; connect-src * 'self'; script-src * 'self'";
      
                }
    }
  3. Проверить ссылку в sites-enabled. Если ее нет, выполнить команду:

    sudo ln -s /etc/nginx/sites-available/idp.conf /etc/nginx/sites-enabled/idp.conf
  4. После внесения изменений в конфигурацию Nginx:

    a. Проверить конфигурацию:

    sudo nginx -t
    # nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    # nginx: configuration file /etc/nginx/nginx.conf test is successful

    b. Перечитать конфигурацию Nginx:

    sudo systemctl reload nginx

Действия после установки

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

  1. Проверить реквизиты базы данных (сервера БД, наименования БД, имени пользователя или пароля) в конфигурационном файле /opt/idp/config.toml в формате PostgreSQL Connection URI в параметр connectionString в секцию database
  2. Проверить наличие файла key.dat в /opt/idp. Если ключ отсутствует, сгенерировать ключа шифрования key.dat при помощи следующих команд
    1. Перейти в директорию /opt/idp:
      cd /opt/idp
    2. Выполнить команду генерации ключа:
      sudo ./fam_linux_amd64 -generatekey
  3. При необходимости для инициализации приложения необходимо выполнить команду инициализации в директории /opt/idp:
    sudo ./fam_linux_amd64 -init
  4. Для регистрации новой учетной записи необходимо выполнить следующие действия в директории /opt/idp:
      1. Выполнить создание УЗ администратора с указанием логина пользователя и пароля (по умолчанию учетная запись администратора admin:admin123):
      sudo ./fam_linux_amd64 -createuser login:password
    1. Назначить созданному пользователю системную роль admin:

      sudo ./fam_linux_amd64 -assignrole admin -user login
  5. Далее запустите сервис Avanpost FAM:
sudo systemctl start idp

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

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

  1. Открыть в браузере страницу http://idp.avanpost.local/admin и убедиться, что открылась страница аутентификации в административную консоль Avanpost FAM. 
  2. Ввести логин и пароль созданной учётной записи и убедиться, что получен доступ к административной консоли Avanpost FAM.

При установке из deb-пакета по умолчанию в FAM создаётся пользователь admin с паролем admin123. По окончанию настройки рекомендуется либо удалить его, либо сразу изменить пароль в целях безопасности.



Обсуждение