Avanpost FAM/MFA+ : 4.3.2. Установка FAM Mobile Services в ОС Linux из deb-пакета

Работы по установке компонентов Avanpost FAM Mobile Services выполняются на подготовленном сервере с ОС Linux. 

При установке будут использованы два пакета для работы Avanpost FAM Mobile Services:

  • API Service, предоставляющий API для мобильных приложений сотрудников;
  • Push Service, выполняющий роль брокера сообщений для доставки push-сообщений.

Установка и настройка

Требования к окружению

Перед выполнением развёртывания по текущей инструкции необходимо выполнение следующих условий:

  1. В ОС семейства Debian Linux должны быть установлены следующие программы:
    sudo (программа выполнения команд от имени суперпользователя).

  2. Выполнена синхронизация времени в ОС с сервером синхронизации времени.


Примечание

Установка и настройка указанных программ выходит за границы текущей инструкции и описана в справочных руководствах, идущих в комплекте с операционной системой Linux, на которой производится развёртывание.

DEB-пакет

Deb-пакет содержит в себе основной конфигурационный файл, необходимый для работы серверной части, предварительно настроенный для выполнения базового развёртывания с помощью текущей инструкции.

При внесении изменений в собственный конфигурационный файл разворачивать систему стоит с учётом поправок по собственным настройкам (например, использовать другие пути к файлам).

Общая часть установки

  1. Открыть файл sources.list: 
    sudo nano /etc/apt/sources.list
  2. Указать репозиторий, для того, чтобы скачать последнюю версию пакета Avanpost FAM Mobile Services
    deb https://packages.avanpost.ru/repository/deb-hosted/ linux main
  3. Скачать публичный ключ репозитория: 
    wget -q "https://docs.avanpost.ru/certs/deb-hosted.gpg.key"
  4. Добавить публичный ключ в Систему: 
    sudo apt-key add deb-hosted.gpg.key
  5. Обновить список пакетов: 

    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.

Генерация сертификатов

Допускаются два пути использования: возможно использовать как один сертификат на все сервис, так и свой сертификат для каждого сервиса. В зависимости от выбранного пути будет отличаться настройка.

При генерации одного сертификата для всех сервисов

  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.


Обсуждение