Общие сведения
Требования к окружению
Перед выполнением развёртывания по текущей инструкции необходимо выполнение следующих условий:
В ОС должны быть установлены следующие программы:
-
sudo
(программа выполнения команд от имени суперпользователя);- tar
(программа архивирования);- psql
(CLI-клиент из состава PostgreSQL);- nginx
(веб-сервер/прокси-сервер);- openssl (программа управления сертификатами)
.Выполнена синхронизация времени в ОС с сервером синхронизации времени.
Примечание
Установка и настройка указанных программ выходит за границы текущей инструкции и описана в справочных руководствах, идущих в комплекте с операционной системой Linux, на которой производится развёртывание.
Конфигурационный файл
Дистрибутив содержит в себе основной конфигурационный файл, необходимый для работы серверной части, предварительно настроенный для выполнения базового развёртывания с помощью текущей инструкции.
При внесении изменений в конфигурационный файл выполнение развёртывания должно производиться с учётом возможного влияния изменённых параметров в сравнении с конфигурационным файлом из дистрибутива.
Развёртывание файлов дистрибутива из архива
Для развёртывания файлов дистрибутива из архива необходимо:
Создать служебного пользователя ОС
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.
Генерация сертификата и ключа шифрования
Подробнее см. статью 4.1.2. Выпуск ключа шифрования и сертификата.
Для генерации ключа шифрования key.dat
перейти в директорию /opt/idp
и выполнить команду:
cd /opt/idp ./fam_linux_amd64 -generatekey
Внимание
Миграцию БД и последующие команды следует выполнять только после внесения изменённых реквизитов в параметр connectionString и генерации ключа шифрования
.
Выполнить развёртывание БД с использованием механизма миграций:
cd /opt/idp ./fam_linux_amd64 -migratedb postgres
После завершения выполнения команды миграции установлены.
Публикация интерфейса системы на веб-сервере Nginx
Создать директории (если директории не созданы):
sudo mkdir /etc/nginx/sites-available/ sudo mkdir /etc/nginx/sites-enabled/
Добавить в конец конфигурационного файла
/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-адрес сервера с Системой.Пример:
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' 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
Проверить конфигурацию:
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
Выполнить создание УЗ администратора (с указанием логина пользователя и пароля):
./fam_linux_amd64 -createuser login:password
Назначить созданному пользователю системную роль
admin
:./fam_linux_amd64 -assignrole admin -user login
Регистрация системы в 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.
Должна открыться страница аутентификации в административную консоль. После ввода реквизитов учётной записи пользователь должен получить доступ к административной консоли Системы.