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

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

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

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

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

    Примечание

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

RPM-пакет

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

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

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

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

  1. Добавить репозиторий FAM (для CentOS).
    a.
    Открыть файл fam.repo в редакторе nano:

     nano /etc/yum.repos.d/fam.repo

    b. В файле fam.repo добавьте следующую информацию, которая описывает репозиторий FAM:

    [FAM]
    name=FAM Repository
    baseurl=https://packages.avanpost.ru/repository/rpm-hosted/FAM/CentOS/
    enabled=1
    protect=0
    gpgcheck=0
    metadata_expire=30s
    autorefresh=1
    type=rpm-md

    name

    имя репозитория
    baseurl

    путь к основному URL репозитория FAM

    Для CentOS указывается каталог CentOS, для других ОС ALT, REDOS, ROSA соответственно

    enabled разрешение использования репозитория
    protect отключение защиты репозитория от изменений
    gpgcheck отключение проверки GPG-подписей пакетов
    metadata_expire время обновления метаданных репозитория
    autorefresh разрешение автоматического обновления репозитория
    type указание типа репозитория
  2. Обновить все установленные пакеты с помощью команды:

    sudo yum update
  3. Выполнить установку пакета avanpost_fam_server :

    sudo yum install avanpost_fam_server
  4. При разв ертывании rpm-пакета в диалоговом окне "E nter domain of FAM Server" ввести внешний домен сервера FAM для прописывания в файл конфигурации Nginx. Пример:

    idp.avanpost.local
  5. При разв ертывании rpm-пакета в диалоговом окне "Enter IP address of FAM Server " ввести IP-адрес сервера FAM для прописывания в файл конфигурации Nginx. Пример:

    127.0.0.1
  6. Чтобы исключить (запретить) обновления определенных пакетов, открыть файл /etc/yum.conf или /etc/dnf/dnf.conf c помощью выбранного редактора:

    vi /etc/yum.conf
    # или
    vi /etc/dnf/dnf.conf

    Пример конфигурационного файла:

    [main]
    gpgcheck=1
    installonly_limit=3
    clean_requirements_on_remove=True
    best=True
    skip_if_unavailable=False
    # Исключение пакета avanpost_fam_server при операциях установки и обновления пакетов
    exclude=avanpost_fam_server

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

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

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

Примечание

Необходимо изменить реквизиты базы данных (сервера БД, наименования БД, имени пользователя или пароля), для этого вписать корректные реквизиты в конфигурационный файл /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


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

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

  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