Общие сведения
Требования к окружению
Перед выполнением развёртывания по текущей инструкции необходимо выполнение следующих условий:
В ОС семейства Debian Linux должны быть установлены следующие программы:
- openssl
(программа управления сертификатами);- psql
(CLI-клиент из состава PostgreSQL);- nginx
(веб-сервер/прокси-сервер);- sudo
(программа выполнения команд от имени суперпользователя).Выполнена синхронизация времени в ОС с сервером синхронизации времени.
Примечание
Установка и настройка указанных программ выходит за границы текущей инструкции и описана в справочных руководствах, идущих в комплекте с операционной системой Linux, на которой производится развёртывание.
RPM-пакет
RPM-пакет содержит в себе основной конфигурационный файл, необходимый для работы серверной части, предварительно настроенный для выполнения базового развёртывания с помощью текущей инструкции, а так же минимальный конфигурационный файл для Nginx.
При внесении изменений в конфигурационный файл выполнение развёртывания должно производиться с учётом возможного влияния изменённых параметров в сравнении с конфигурационным файлом из дистрибутива.
Развёртывание файлов дистрибутива из архива
Для развёртывания дистрибутива из 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 Server
for
NGINX Config:
Пример: idp.avanpost.local
Ввести IP-адрес сервера FAM.
Enter IP address of FAM Server
for
NGINX Config:
Пример: 127.0.0.1
Ввеcти имя хоста или IP-адрес сервера PostgreSQL для сервера IDP.
Enter Postgresql Server host name
for
IDP Server:
Пример: 127.0.0.1
Ввести имя БД для сервера IDP.
Enter DB name
for
IDP Server:
Вводим BD name, которое ввели в пункте 2.
Ввести имя пользователя БД, созданного ранее.
Enter username of DB:
Вводим username , которое ввели в пункте 2.
Ввести созданный ранее пароль от БД дважды.
Enter password of DB
Enter password of DB (again)
Вводим password, который вводили в пункте 2.
- Указать параметры само подписанного сертификата.
После установки необходимо добавить пользователя idp в группу root:
sudo
usermod
-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
.
8. Проверить наличие файла key.dat в /opt/idp. При необходимости для генерации ключа шифрования key.dat
перейти в директорию /opt/idp
и выполнить команду:
cd /opt/idp ./fam_linux_amd64 -generatekey
При необходимости для инициализации приложения необходимо:
- Выполнить команду инициализации:
cd /opt/idp ./fam_linux_amd64 -init
2. Для регистрации новой учетной записи необходимо:
Выполнить создание УЗ администратора (с указанием логина пользователя и пароля):
По умолчанию учетная запись администратора admin:admin123
|
Назначить созданному пользователю системную роль admin
:
|
Далее запустите сервис
|