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

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

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

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

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

    Примечание

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

DEB-пакет

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

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

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

Вариант 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. При развертывании deb-пакета в диалоговом окне "Enter domain of FAM Server" ввести внешний домен сервера FAM для прописывания в файл конфигурации Nginx. Пример:

    idp.avanpost.local
  5. Добавить пользователя в группу root:

    sudo usermod -aG root idp

Вариант 2

  1. Добавить репозиторий FAM в файл sources.list в директории /etc/apt .

    a. Открыть файл sources.list :

    sudo nano /etc/apt/sources.list

    b. Пролистать файл вниз, чтобы найти пустое место. Вставить следующую строку в файл sources.list ( Рисунок ):

    deb https://packages.avanpost.ru/repository/deb-hosted/ linux main
    


  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
  6. Удержать пакет FAM от обновления при выполнении команды apt upgrade :

    sudo apt-mark hold fam

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

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

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

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

postgres=# CREATE DATABASE idp OWNER=avanpost ENCODING=utf8

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

Примечание

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

В файле /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/'файл'

Генерация сертификата и ключа шифрования


Для использования самоподписанных сертификатов в Системе необходимо создать пользователя и группу с идентификатором idp:idp и соответствующей домашней директорией. Затем разместить сертификат и закрытый ключ в папке /home/idp/.idp/ с именами cert.pem и key.pem соответственно.

У созданной папки /home/idp/.idp/ должно быть настроено разрешение доступа, чтобы пользователь idp имел права на чтение и запись.

Переключиться на служебного пользователя FAM:

sudo su idp

Если требуется изменить пароль для пользователя "idp", использовать команду:

sudo passwd idp


Далее следовать инструкциям в статье Выпуск ключа шифрования и сертификата .

Процесс установки deb-пакета

  1. Ввести доменное имя сервера FAM для настройки конфигурации NGINX.

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

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

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

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

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

    Enter password of DB
    
    Enter password of DB (again)
  7. Если самоподписанный сертификат не был выпущен, система FAM предложит его сгенерировать.

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

Выполнение запуска в systemd

Изменить текущего пользователя на администратора Системы с помощью команды:

su root

После ввода команды необходимо ввести пароль администратора (root).

Запустить сервис:

sudo systemctl start idp

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

  1. Открыть в браузере http://idp.avanpost.local. Должна открыться страница аутентификации в административную консоль.
  2. Ввести учетные данные:
    – логин: admin;
    – пароль: admin123.

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

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

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

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

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

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

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

    Внимание

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

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

  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