Общие сведения
Требования к окружению
Перед выполнением развёртывания по текущей инструкции необходимо выполнение следующих условий:
В ОС семейства Debian Linux должны быть установлены следующие программы:
- openssl(программа управления сертификатами);- psql(CLI-клиент из состава PostgreSQL);- nginx(веб-сервер/прокси-сервер);sudo(программа выполнения команд от имени суперпользователя).Выполнена синхронизация времени в ОС с сервером синхронизации времени.
Примечание
Установка и настройка указанных программ выходит за границы текущей инструкции и описана в справочных руководствах, идущих в комплекте с операционной системой Linux, на которой производится развёртывание.
RPM-пакет
RPM-пакет содержит в себе основной конфигурационный файл, необходимый для работы серверной части, предварительно настроенный для выполнения базового развёртывания с помощью текущей инструкции, а так же минимальный конфигурационный файл для Nginx.
При внесении изменений в конфигурационный файл выполнение развёртывания должно производиться с учётом возможного влияния изменённых параметров в сравнении с конфигурационным файлом из дистрибутива.
Конфигурационный файл
Тонкая настройка Avanpost FAM Server выполняется в основном конфигурационном файле config.toml.default, расположенном по пути /opt/idp/config.toml. Рекомендации и пример конфигурационного файла даны в разделе Спецификация конфигурационного файла config.toml.default компонента Avanpost FAM Server. При внесении изменений в конфигурационный файл выполнение развёртывания должно производиться с учётом возможного влияния изменённых параметров.
Поставка Avanpost FAM Server содержит в себе следующие конфигурационные файлы:
- конфигурационный файл, необходимый для работы серверной части, предварительно настроенный для выполнения базового развёртывания с помощью текущей инструкции,
- минимальный конфигурационный файл для сервера Angie/Nginx.
Настройку конфигурационного файла веб-сервера Angie следует выполнять в соответствии с документацией на продукт.
Настройку конфигурационного файла веб-сервера Nginx следует выполнять в соответствии с документацией на продукт.
Для FAM Server версии 1.15+ использует встроенный внутренний NATS-сервер для работы с базой данных и внутреннего программного взаимодействия. Поэтому при настройке конфигурационного файла обязательно настроить внутренний встроенный NATS-сервер, задав его параметры в секции [nats]. Данный NATS-сервер предназначен исключительно для подключения развернутого экземпляра FAM Server и не нуждается в дополнительной кластеризации. В целях повышения отказоустойчивости не рекомендуется использование единого экземпляра внутреннего NATS-сервера для нескольких узлов FAM Server (когда NATS-сервер разворачивается на одном из узлов, а остальные узлы подключаются к нему как клиенты). NATS-сервер, настроенный в конфигурационном файле, будет запущен автоматически с FAM Server.
В процессе настройки основного конфигурационного файла config.toml стоит обратить на то, что для использования защищенного соединения (https) параметру secure (секция cookie) необходимо присвоить значение true.
Развёртывание файлов дистрибутива из архива
Для развёртывания дистрибутива из RPM-пакета необходимо:
Добавить репозиторий FAM.
a. Открыть файл fam.repo в редакторе vi:vi /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 указание типа репозитория Обновить все установленные пакеты с помощью команды:
sudo yum update
Выполнить установку пакета
avpfam:sudo yum install -y avpfam --downloadonly --downloaddir=/tmp/ && rpm -i /tmp/avpfam-*
При развертывании rpm-пакета в диалоговом окне "Enter domain of FAM Server" ввести внешний домен сервера FAM для прописывания в файл конфигурации Ngnix, далее следовать разделу "Действия во время установки". Пример:
idp.avanpost.local
Чтобы исключить (запретить) обновления определенных пакетов, открыть файл /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 # Исключение пакета avpfam при операциях установки и обновления пакетов exclude=avpfam
Действия во время развёртывания
- При развертывании в диалоговых окнах необходимо указать следующие настройки:
Ввести доменное имя сервера FAM для настройки конфигурации NGINX.
Enter domain name of FAM ServerforNGINX Config:Пример: idp.avanpost.localВвести IP-адрес сервера FAM.
Enter IP address of FAM ServerforNGINX Config:Пример: 127.0.0.1Ввеcти имя хоста или IP-адрес сервера PostgreSQL для сервера IDP.
Enter Postgresql Server host nameforIDP Server:Пример: 127.0.0.1Ввести имя БД для сервера IDP.
Enter DB nameforIDP Server:Вводим BD name, которое ввели в пункте 2.Ввести имя пользователя БД, созданного ранее.
Enter username of DB:Вводим username , которое ввели в пункте 2.Ввести созданный ранее пароль от БД дважды.
Enter password of DB
Enter password of DB (again)Вводим password, который вводили в пункте 2.- Указать параметры само подписанного сертификата.
После установки необходимо добавить пользователя idp в группу root:
sudousermod-aG root idp
Создание и развёртывание базы данных
Создать пользователя СУБД 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
Далее следовать инструкциям в статье 4.1.2. Выпуск ключа шифрования и сертификата.
Процесс установки RPM-пакета
Ввести доменное имя сервера FAM для настройки конфигурации NGINX.
Enter domain name of FAM Server for NGINX Config:
Ввести IP-адрес сервера FAM.
Enter IP address of FAM Server for NGINX Config:
Ввеcти имя хоста или IP-адрес сервера PostgreSQL для сервера IDP.
Enter Postgresql Server host name for IDP Server:
Ввести имя БД для сервера IDP.
Enter DB name for IDP Server:
Ввести имя пользователя БД, созданного ранее.
Enter username of DB:
Ввести созданный ранее пароль от БД дважды.
Enter password of DB Enter password of DB (again)
- Если самоподписанный сертификат не был выпущен, система FAM предложит его сгенерировать.
При первом входе в веб-интерфейс Системы пользователю admin будет предложено изменить пароль с установленного значения admin123 на новый пароль с целью обеспечения безопасности.
Выполнение запуска в systemd
Изменить текущего пользователя на администратора Системы с помощью команды:
su root
После ввода команды необходимо ввести пароль администратора (root).
Запустить сервис:
sudo systemctl start idp
Проверка установки
- Открыть в браузере http://idp.avanpost.local/admin. Должна открыться страница аутентификации в административную консоль.
Ввести учетные данные:
– логин: admin;
– пароль: admin123.
После ввода реквизитов учётной записи пользователь должен получить доступ к административной консоли Системы.
При первом входе в Систему потребуется изменить пароль на более безопасный
Ключи для ручной конфигурации
В случае возникновения ошибок или необходимости ручной настройки следует обратить внимание на следующие действия.
Публикация интерфейса системы на веб-сервере Nginx
Проверить в конце конфигурационного файла
/etc/nginx/nginx.confстроку:include /etc/nginx/sites-enabled/*;
Проверить конфигурационный файл
idp.confна основе примера:sudo vi /etc/nginx/sites-available/idp.conf
Внимание
Адрес
idp.avanpost.localдолжен указывать в сети на IP-адрес сервера, на котором размещается система средствами DNS.В противном случае требуется локально в конфигурации
/etc/hostsклиентской машины, за которой работает пользователь или администратор, выполнить настройку маршрутизации с хоста на IP-адрес сервера с системой.Содержимое конфигурационного файла в
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'"; } }Проверить ссылку в
sites-enabled. Если ее нет, выполнить:sudo ln -s /etc/nginx/sites-available/idp.conf /etc/nginx/sites-enabled/idp.conf
Для внесения изменений в конфигурацию 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
- При необходимости (если появляется ошибка 502) ввести команду для изменения булевого значения httpd_can_network_connect. Она позволит веб-серверу httpd устанавливать сетевые соединения, делая это разрешенным и постоянным.
setsebool httpd_can_network_connect on -P
Проверить реквизиты базы данных (сервера БД, наименования БД, имени пользователя или пароля) в конфигурационном файле
/opt/idp/config.tomlв формате PostgreSQL Connection URI в параметрconnectionStringв секциюdatabase.- Проверить наличие файла key.dat в /opt/idp. При необходимости для генерации ключа шифрования
key.datперейти в директорию/opt/idpи выполнить команду:cd /opt/idp ./fam_linux_amd64 -generatekey
Инициализация и создание учетной записи администратора
Для Avanpost FAM версии ниже 1.16 требуется выполнять инициализацию вручную. Начиная с версии 1.16, инициализация выполняется автоматически и не требует отдельных действий. Инициализация вручную выполняется посредством команды:
cd /opt/idp ./fam_linux_amd64 -init
Для регистрации новой учетной записи необходимо:
- Выполнить создание УЗ администратора с указанием логина пользователя и пароля (в данном примере используется учетная запись администратора admin:admin123):где используются следующие параметры:
sudo ./createadmin_linux_amd64 -login admin -pwd admin123 -mcp -conn 'postgres://avanpost:Passw0rd@127.0.0.1:5432/idp?sslmode=disable&search_path=public'
- -login — логин создаваемого пользователя;
- -pwd — пароль пользователя;
- -conn — строка подключения к базе данных (берётся из конфигурационного файла config.toml, параметра connectionString).
- Запустить сервис посредством команды:
sudo systemctl start idp
