Общие сведения
Требования к окружению
Перед выполнением развёртывания по текущей инструкции необходимо выполнение следующих условий:
В ОС должны быть установлены следующие программы:
-sudo(программа выполнения команд от имени суперпользователя);- tar(программа архивирования);- psql(CLI-клиент из состава PostgreSQL);- nginx(веб-сервер/прокси-сервер);- openssl (программа управления сертификатами).Выполнена синхронизация времени в ОС с сервером синхронизации времени.
Примечание
Установка и настройка указанных программ выходит за границы текущей инструкции и описана в справочных руководствах, идущих в комплекте с операционной системой Linux, на которой производится развёртывание.
Конфигурационный файл
Тонкая настройка 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.
Развёртывание файлов дистрибутива из архива
Для развёртывания файлов дистрибутива из архива необходимо:
Создать служебного пользователя ОС
idp(параметр-mнеобходим для создания домашней директории):Astra Linux
Создаём пользователя и задаём пароль
sudo useradd -m idp sudo passwd idp
Добавляем пользователя в группу с повышенными привилегиями (sudo)
sudo usermod -aG astra-admin idp
Создать директорию
/opt/idp:sudo mkdir /opt/idp sudo chown -R idp:idp /opt/idp
Переключиться на служебного пользователя
famи перейти в директорию/opt/idp:sudo su idp cd /opt/idp
В зависимости от расположения файла с архивом дистрибутива Системы скопировать архив из исходной директории (заменить в команде
/source-pathна правильный путь с расположением архива дистрибутиваAvanpost.*.tar.gz) в целевую директорию:cp /source-path/Avanpost.*.tar.gz -t /opt/idp
Распаковать файлы дистрибутива из архива, находясь в той же директории:
tar -xvzf Avanpost.*.tar.gz
После успешной распаковки удалить архив дистрибутива:
rm Avanpost.*.tar.gz
Скопировать базовый конфигурационный файл
config.toml.defaultвconfig.toml:cp -f config.toml.default config.toml
Установить переменную окружения
SSO_CFGс указанием пути/opt/idp/config.json (для версии FAM v1.8.7.346 и старше нужно использовать config.toml):export SSO_CFG=/opt/idp/config.toml
Создание и развёртывание базы данных
Создать пользователя СУБД avanpost с паролем и базу данных idp:
sudo -u postgres psql CREATE USER avanpost WITH PASSWORD 'Passw0rd'; CREATE DATABASE idp OWNER=avanpost ENCODING=utf8; \q
Примечание
В случае потребности в изменении реквизитов базы данных (сервера БД, наименования БД, имени пользователя или пароля) необходимо вписать корректные реквизиты в конфигурационный файл /opt/idp/config.toml в формате PostgreSQL Connection URI в параметр connectionString в секцию database.
Найти файл pg_hba.conf:
find / -name 'pg_hba.conf'
В файле /etc/postgresql/версия/main/pg_hba.conf изменить метод аутентификации на md5 для IPv4 (host all all 127.0.0.1/32) и IPv6 (host all all ::1/128) подключений:
После внесения изменений в pg_hba.conf перезапустить PostgreSQL.
Генерация сертификата и ключа шифрования
Подробнее см. статью Выпуск ключа шифрования и сертификата.
Для генерации ключа шифрования key.dat перейти в директорию /opt/idp и выполнить команду:
cd /opt/idp ./fam_linux_amd64 -generatekey
Внимание
Миграцию БД и последующие команды следует выполнять только после внесения изменённых реквизитов в параметр connectionString и генерации ключа шифрования.
Выполнить развёртывание БД с использованием механизма миграций:
cd /opt/idp ./fam_linux_amd64 -migratedb postgres
После завершения выполнения команды миграции установлены.
Публикация интерфейса системы на веб-сервере Angie/Nginx
Публикация интерфейса Avanpost FAM Server на веб-сервере Angie/Nginx выполнять следующим образом:
Создать конфигурационный файл
idp.confна основе примера:для Nginxsudo vi /etc/nginx/conf.d/idp.conf
для Angiesudo vi /etc/angie/http.d/idp.conf
Внимание
Адрес
idp.avanpost.localдолжен указывать в сети на IP-адрес сервера, на котором размещается система средствами DNS.В противном случае требуется локально в конфигурации
/etc/hostsклиентской машины, за которой работает пользователь или администратор, выполнить настройку маршрутизации с хоста на IP-адрес сервера с Системой.Пример:
127.0.0.1 localhost
127.0.0.1 idp.avanpost.local
Перед выполнением дальнейших действий должен быть сгенерирован сертификат (см. статью 4.1.2. Выпуск ключа шифрования и сертификата) и создана директория для ключей. Далее следует скопировать содержимое конфигурационного файла в
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' https: data:; connect-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self'; object-src 'none'; base-uri 'self'; frame-ancestors 'self';" always; } }Проверить конфигурацию:
sudo nginx -t # nginx: the configuration file /etc/nginx/nginx.conf syntax is ok # nginx: configuration file /etc/nginx/nginx.conf test is successful
Перезапустить Nginx:
sudo systemctl restart nginx
Инициализация приложения
Для инициализации приложения необходимо:
Выполнить команду инициализации:
cd /opt/idp ./fam_linux_amd64 -init
Для Avanpost FAM версии ниже 1.16 требуется выполнять инициализацию вручную. Начиная с версии 1.16, инициализация выполняется автоматически и не требует отдельных действий.
- Выполнить создание УЗ администратора с указанием логина пользователя и пароля (в данном примере используется учетная запись администратора 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 — строка подключения к базе данных (значение параметра connectionString из конфигурационного файла config.toml).
Регистрация системы в systemd и выполнение запуска
Создайте конфигурационный файл сервиса на основе примера:
sudo vi /etc/systemd/system/idp.service
Пример:
[Unit] Description=IDP [Service] WorkingDirectory=/opt/idp ExecStart=/opt/idp/fam_linux_amd64 Restart=always RestartSec=10 SyslogIdentifier=idp User=idp Environment="SSO_CFG=/opt/idp/config.toml" [Install] WantedBy=multi-user.target
После создания добавьте сервис в автозапуск запустите его:
sudo systemctl daemon-reload sudo systemctl enable idp sudo systemctl start idp
Проверка установки
Открыть в браузере http://idp.avanpost.local/admin.
Должна открыться страница аутентификации в административную консоль. После ввода реквизитов учётной записи пользователь должен получить доступ к административной консоли Системы.
