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

DEB Пакет

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

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

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

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

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

    • xmlsec1;
    • xmlsec1-openssl.

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

Примечание

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

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

Создать пользователя СУБД 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/'файл'

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

3.Развертывание файлов дистрибутива

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

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

  1. Установить дополнительные пакеты, если их нет:

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

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

    sudo dpkg -i fam_*.*.*_amd64.deb


  4. После начала установки следовать пункту 3.3 текущей инструкции.

3.2 Вариант 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 fam

    Внимание

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

  6. Удержать пакет FAM от обновления при выполнении команды apt upgrade:

    sudo apt-mark hold fam
  7. После начала установки следовать пункту 3.3 текущей инструкции.

3.3 Действия во время установки

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


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

    sudo usermod -aG root idp

4. Проверка публикации интерфейса системы на веб-сервере 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

  3. Пример содержимого конфигурационного файла в 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;
      
    			}
    }
  4. Проверить ссылку в sites-enabled. Если ее нет, выполнить:

    sudo ln -s /etc/nginx/sites-available/idp.conf /etc/nginx/sites-enabled/idp.conf
  5. После внесения изменений в конфигурацию 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

5. Постустановочные действия

Проверить реквизиты базы данных (сервера БД, наименования БД, имени пользователя или пароля) в конфигурационном файле /opt/idp/config.toml в формате PostgreSQL Connection URI в параметр connectionString в секцию database

Проверить наличие файла key.dat в /opt/idp.

При необходимости для генерации ключа шифрования key.dat перейти в директорию /opt/idp и выполнить команду:

cd /opt/idp
./fam_linux_amd64 -generatekey

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

cd /opt/idp
./fam_linux_amd64 -init

Для регистрации новой учетной записи необходимо:

  1. Выполнить создание УЗ администратора (с указанием логина пользователя и пароля):
    По умолчанию учетная запись администратора admin:admin123
./fam_linux_amd64 -createuser login:password

       2. Назначить созданному пользователю системную роль admin:

./fam_linux_amd64 -assignrole admin -user login

Далее запустите сервис

sudo systemctl start idp

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

Откройте в браузере http://idp.avanpost.local/admin.

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

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



Обсуждение