Работы по установке компонентов Avanpost FAM Mobile Services выполняются на подготовленном сервере с ОС Linux.
При установке будут использованы два пакета для работы Avanpost FAM Mobile Services:
- API Service, предоставляющий API для мобильных приложений сотрудников;
- Push Service, выполняющий роль брокера сообщений для доставки push-сообщений.
Установка и настройка
Требования к окружению
Перед выполнением развёртывания по текущей инструкции необходимо выполнение следующих условий:
В ОС семейства Debian Linux должны быть установлены следующие программы:
- sudo
(программа выполнения команд от имени суперпользователя).Выполнена синхронизация времени в ОС с сервером синхронизации времени.
Примечание
Установка и настройка указанных программ выходит за границы текущей инструкции и описана в справочных руководствах, идущих в комплекте с операционной системой Linux, на которой производится развёртывание.
DEB-пакет
Deb-пакет содержит в себе основной конфигурационный файл, необходимый для работы серверной части, предварительно настроенный для выполнения базового развёртывания с помощью текущей инструкции.
При внесении изменений в собственный конфигурационный файл разворачивать систему стоит с учётом поправок по собственным настройкам (например, использовать другие пути к файлам).
Общая часть установки
- Открыть файл
sources.list:
sudo nano /etc/apt/sources.list
- Указать репозиторий, для того, чтобы скачать последнюю версию пакета Avanpost FAM Mobile Services:
deb https://packages.avanpost.ru/repository/deb-hosted/ linux main
- Скачать публичный ключ репозитория:
wget -q "https://docs.avanpost.ru/certs/deb-hosted.gpg.key"
- Добавить публичный ключ в Систему:
sudo apt-key add deb-hosted.gpg.key
Обновить список пакетов:
sudo apt update
Установка Push Service
Установить пакет pushgwsrv:
sudo apt install pushgwsrv
Удержать пакет от обновления при выполнении команды
sudo apt-mark hold pushgwsrv
sudo nano /etc/systemd/system/pushgwsrv.service
Указать актуальные значения параметров:
- --addr – IP-адрес или хост, на котором требуется открытие сетевого порта для получения сетевых запросов от сервера Avanpost FAM; например – 0.0.1;
- --port – порт, к которому будет подключаться Avanpost FAM Server; по умолчанию – 4222
[Unit] Description=Avanpost FAM Mobile Services Push [Service] WorkingDirectory=/opt/avanpost_mobile_services ExecStart=/opt/avanpost_mobile_services/push_gateway_server --addr 127.0.0.1 --port 4222 Restart=always RestartSec=10 SyslogIdentifier=pushgwsrv User=idp [Install] WantedBy=multi-user.target
Перезапустить службы:
systemctl daemon-reload systemctl enable pushgwsrv systemctl start pushgwsrv
Установка API Service
Установить пакет authproxy:
sudo apt install authproxy
Удержать пакет от обновления при выполнении команды
sudo apt-mark hold authproxy
sudo nano /etc/systemd/system/authproxy.service
Указать актуальные значения параметров:
- --baddr и --bport – указав соответственно адрес и порт внутреннего сетевого интерфейса, к которому будет обращаться компонент Avanpost FAM Server (или экземпляры компонента Avanpost FAM Server в случае использования кластеризованной схемы развёртывания); IP-адрес (в примере ниже указан как 127.0.0.1) по умолчанию не определён и должен быть заменён на актуальное значение, порт по умолчанию – 9999;
- --faddr и --fport – указав соответственно адрес и порт внешнего сетевого интерфейса, к которому будут обращаться через интернет мобильные приложения Avanpost Authenticator; IP-адрес (в примере ниже указан как 127.0.0.1) по умолчанию не определён и должен быть заменён на актуальное значение, порт по умолчанию – 8888;
- --token – секретный токен, который далее должен быть указан на стороне компонента Avanpost FAM Server; значение токена в примере (tokenvalue12345678) должно быть заменено на любое актуальное значение.
Важно
В токене не должно содержаться кириллических символов, а также спецсимволов (~ . .. / # ? * [ ] ; & < > | ! $). Сам токен следует обрамлять одинарными кавычками в качестве дополнительной защиты (экранирование символов от использования их в качестве параметров командной строки).
[Unit] Description=Avanpost FAM Mobile Services API [Service] WorkingDirectory=/opt/avanpost_mobile_services ExecStart=/opt/avanpost_mobile_services/authenticator_proxy --baddr 127.0.0.1 --bport 9999 --faddr 127.0.0.1 --fport 8888 --token tokenvalue12345678 Restart=always RestartSec=10 SyslogIdentifier=authproxy User=idp [Install] WantedBy=multi-user.target
Перезапустить службы:
systemctl daemon-reload systemctl enable authproxy systemctl start authproxy
Настройка для адресов IPv6
Если в сети используется IPv6, то адрес внутреннего сетевого интерфейса, к которому будет обращаться компонент Avanpost FAM Server (или экземпляры компонента Avanpost FAM Server в случае использования кластеризованной схемы развёртывания); IP-адрес (в примере ниже указан как 127.0.0.1) по умолчанию должен быть заменён на 0.0.0.0. В случае, если адрес внутреннего сетевого интерфейса совпадает с адресом Avanpost FAM Server , то указывается 127.0.0.1.
Генерация сертификатов
Допускаются два пути использования: возможно использовать как один сертификат на все сервис, так и свой сертификат для каждого сервиса. В зависимости от выбранного пути будет отличаться настройка.
При генерации одного сертификата для всех сервисов
- Необходимо перейти в директорию /opt/authenticator_proxy или в любом другом удобном месте с указанием пути к службе. Для OS Centos8 можно использовать системное хранилище сертификатов /etc/pki/ca-trust/extracted/pem/, для других ОС может отличаться путь. Находясь в указанном каталоге, выполнить следующую команду, изменив значения IP-адреса, CN и прочие параметры на свои собственные:
openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes -keyout key.pem -out cert.pem -subj "/CN=my1.api-service.fam" -addext "subjectAltName=DNS:api-service.fam,DNS:*.api-service.fam,IP:10.10.161.172"
2. Далее необходимо добавить сертификат в службу, указав в службах путь до сертификата. Необходимо это сделать как для служб API, так и служб PUSH.
Пример для службы API 1.
[Unit] Description=Avanpost FAM Mobile Services API [Service] WorkingDirectory=/opt/authenticator_proxy ExecStart=/opt/authenticator_proxy/authenticator_proxy --baddr 10.10.161.172 --bport 9999 --faddr 10.10.161.172 --fport 8887 --token 123456 --tls --tlscert cert.pem --tlskey key.pem Restart=always RestartSec=10 SyslogIdentifier=authproxy User=idp [Install] WantedBy=multi-user.target
Пример для службы API 2.
[Unit] Description=Avanpost FAM Mobile Services API [Service] WorkingDirectory=/opt/authenticator_proxy_2 ExecStart=/opt/authenticator_proxy_2/authenticator_proxy --baddr 10.10.161.172 --bport 9992 --faddr 10.10.161.172 --fport 8882 --token 123456 --tls --tlscert /opt/authenticator_proxy/cert.pem --tlskey /opt/authenticator_proxy/key.pem Restart=always RestartSec=10 SyslogIdentifier=authproxy User=idp [Install] WantedBy=multi-user.target
Пример для службы PUSH 1.
[Unit] Description=Avanpost FAM Mobile Services Push [Service] WorkingDirectory=/opt/push_gateway_server ExecStart=/opt/push_gateway_server/push_gateway_server --addr 10.10.161.172 --port 4222 --tls --tls-cert /opt/authenticator_proxy/cert.pem --tls-key /opt/authenticator_proxy/key.pem Restart=always RestartSec=10 SyslogIdentifier=pushgwsrv User=idp [Install] WantedBy=multi-user.target
Пример для службы PUSH 2.
[Unit] Description=Avanpost FAM Mobile Services Push [Service] WorkingDirectory=/opt/push_gateway_server_2 ExecStart=/opt/push_gateway_server_2/push_gateway_server --addr 10.10.161.172 --port 4224 --tls --tls-cert /opt/authenticator_proxy/cert.pem --tls-key /opt/authenticator_proxy/key.pem Restart=always RestartSec=10 SyslogIdentifier=pushgwsrv User=idp [Install] WantedBy=multi-user.target
3. После изменения параметров необходимо выполнить следующую команду, чтобы настройки были перечитаны и изменения вступили в силу:
systemctl daemon-reload
4. И для окончания настройки затем следует выполнить запуск служб.
systemctl enable authproxy systemctl start authproxy
Важно
При настройке в разделе "Контактная информация" поля данных не должны быть пустыми, их следует заполнить во избежание появления ошибки.
При генерации отдельных нескольких сертификатов для сервисов
1. В данном случае необходимо создать файл с форматом .pem, скопировав в него содержимое сертификатов. Полученный файл должен выглядеть примерно так:
2. Данный файл загрузить через административную консоль FAM: в меню Сервис → Настройки методов аутентификации → Avanpost Authenticator.