Avanpost SmartPAM : Подготовка системы

Создание служебного пользователя

Перед началом установки сопутствующих компонентов и распаковкой дистрибутива создайте специального пользователя smartpam, от имени которого будет происходить дальнейшая работа с системой.

1. Создайте служебного пользователя smartpam (параметр -m необходим для создания домашнего каталога, параметр -d назначает домашнюю папку, параметр -s задаёт оболочку пользователя) и задайте пароль новому пользователю:

sudo useradd -s /bin/bash -d /home/smartpam/ -m -G sudo smartpam
sudo passwd smartpam

2. Создайте каталог /opt/smartpam:

sudo mkdir /opt/smartpam
sudo chown -R smartpam:smartpam /opt/smartpam

3. Если иное не указано явно, дальнейшие описываемые в настоящем документе операции выполняйте под служебным пользователем smartpam():

sudo su smartpam
cd /opt/smartpam

Установка сопутствующего ПО

Если вы устанавливаете Avanpost SmartPAM на Astra Linux, пропустите этот раздел и перейдите к разделу «Установка Avanpost SmartPAM на Astra Linux». После его выполнения перейдите к разделу «Установка Avanpost SmartPAM из архива» и продолжайте установку по инструкции.

Установка nginx/Angie

Установите nginx (Angie) в соответствии с рекомендациями производителя. Ниже см. пример установки Nginx в Ubuntu 24.04: 1. Установите необходимые компоненты:

sudo apt install curl gnupg2 ca-certificates -y

2. Установите Nginx, выполнив следующие команды:

sudo apt update
sudo apt install nginx

3. Для автоматического запуска Nginx при загрузке системы выполните команду:

sudo systemctl enable nginx

4. Запустите службу Nginx:

sudo systemctl start nginx

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

1. Загрузите NATS-сервер и распакуйте архив:

cd ~
curl -L https://github.com/nats-io/nats-server/releases/download/v2.10.22/nats-server-v2.10.22-linux-amd64.zip -o nats-server.zip

2. Распакуйте архив:

unzip nats-server.zip

3. Скопируйте папку, которая была распакована, в системный каталог /usr/bin:

sudo cp nats-server-v2.10.22-linux-amd64/nats-server /usr/bin

4. Создайте конфигурационный файл сервера NATS:

sudo nano /etc/nats-server.conf

5. Добавьте в созданный файл следующие настройки:

# NATS Server Configuration with Simple Authentication
server_name: "My_Secure_NATS_Server"
# Client connections port
listen: 127.0.0.1:4222
# Simple authentication with one user
authorization {
  # Timeout for authentication (in seconds)
  timeout: 2
  # Single user with full permissions
  user: nats_login
  password: "nats_password"
}

6. Создайте и отредактируйте файл службы systemd:

sudo nano /etc/systemd/system/nats.service

7. Добавьте следующее содержимое:

[Unit]
Description=NATS Server
After=network-online.target ntp.service

[Service]
PrivateTmp=true
Type=simple
ExecStart=/usr/bin/nats-server -c /etc/nats-server.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s SIGINT $MAINPID
User=smartpam
Group=smartpam
# The nats-server uses SIGUSR2 to trigger using Lame Duck Mode (LDM) shutdown
KillSignal=SIGUSR2
# You might want to adjust TimeoutStopSec too.

[Install]
WantedBy=multi-user.target
  1. Сохраните файл и выйдите.

9. Предоставьте пользователю права на чтение и исполнение файла /usr/bin/nats-server:

sudo chmod +rx /usr/bin/nats-server

10. Перезагрузите конфигурацию systemd:

sudo systemctl daemon-reload

11. Для автоматического запуска NATS при загрузке системы выполните команду:

sudo systemctl enable nats

12. Запустите сервер NATS:

sudo systemctl start nats

Развертывание PostgreSQL

Пример установки Postgres 17 в Ubuntu 24.04

Добавление репозитория PostgreSQL

1. Обновите список пакетов:

sudo apt update

2. Добавьте репозиторий PostgreSQL:

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

3. Импортируйте ключ подписи репозитория:

curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg

4. Обновите список пакетов:

sudo apt update

Установка PostgreSQL

1. Установите PostgreSQL и дополнительные модули:

sudo apt install postgresql-17

2. Запустите и включите службу PostgreSQL:

sudo systemctl start postgresql
sudo systemctl enable postgresql

3. Проверьте установленную версию PostgreSQL:

psql --version

4. Вы должны увидеть вывод, аналогичный следующему:

psql (PostgreSQL) 17.0 (Ubuntu 17.0-1.pgdg24.04+1)

5. Перезапустите PostgreSQL, чтобы применить изменения:

sudo systemctl restart postgresql

Создание и развертывание базы данных

1. Создайте пользователя СУБД с паролем и базу данных pam:

sudo -u postgres psql
CREATE USER pam WITH PASSWORD 'Passw0rd';
CREATE DATABASE pam OWNER=pam ENCODING=utf8;
\q
  1. Для изменения реквизитов базы данных (сервера, наименования, имени пользователя или пароля) впишите корректные значения в конфигурационные файлы config.yaml, находящиеся в каталогах служб SmartPam (службы admin-console, event-processor, pam-manager, pam-vault, session-processor, session-recorder, user-console, uba), в формате PostgreSQL Connection URI в секцию db.connection_string.

Настройка PostgreSQL

По умолчанию PostgreSQL принимает подключения только с локального интерфейса (listen_addresses = 'localhost'). Чтобы была возможность подключаться к базе данных PostgreSQL по сети, а не только локально, необходимо изменить конфигурацию.

1. Измените файл postgresql.conf, чтобы разрешить удаленные подключения, изменив параметр listen_addresses на *:

sudo nano /etc/postgresql/17/main/postgresql.conf
listen_addresses = '*'

2. Перезапустите PostgreSQL, чтобы применить изменения:

sudo systemctl restart postgresql

3. При необходимости, разрешите доступ к порту PostgreSQL через брандмауэр. Например, в случае использования UFW, выполните следующую команду:

sudo ufw allow 5432/tcp

Настройка s3 хранилища MinIO

Подготовка и установка

1. Создайте каталог для хранения объектов:

mkdir -p /opt/smartpam/minio/

2. Создайте каталог для хранения записей и назначьте права пользователю:

sudo mkdir -p /var/minio/replays
sudo chown -R smartpam:smartpam /var/minio/

3. Скачайте пакет MinIO (рекомендуется выбрать наиболее актуальную версию для Linux на архитектуре AMD64), см. https://dl.min.io/server/minio/release/

cd ~
wget https://dl.min.io/server/minio/release/linux-amd64/archive/minio_20250524170830.0.0_amd64.deb -O minio.deb

4. Установите скачанный пакет:

sudo dpkg -i minio.deb

5. Создайте файл с переменными окружения для MinIO:

sudo nano /etc/default/minio

6. Добавьте в файл с переменными окружения следующие параметры:

MINIO_ROOT_USER=minioadmin
MINIO_ROOT_PASSWORD=minioadmin
MINIO_VOLUMES="/var/minio"
MINIO_OPTS="--address :9000 --console-address :9001"
  1. Измените логин, пароль и порты, если это необходимо. По умолчанию MinIO использует порт 9000 для S3 API и порт 9001 для консоли MinIO (веб-интерфейс). При изменении параметров приведите в соответствие с изменениями файлы конфигурации служб: Admin API (/opt/smartpam/admin-console/config.yaml) и session-processor /opt/smartpam/session-processor/config.yaml)

Настройка службы Systemd

1. Создайте файл службы:

sudo nano /etc/systemd/system/minio.service

2. Добавьте в файл службы следующее:

[Unit]
Description=MinIO
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/usr/local/bin/minio

[Service]
Type=notify

WorkingDirectory=/usr/local

User=smartpam
Group=smartpam
ProtectProc=invisible

EnvironmentFile=/etc/default/minio
ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES

# Let systemd restart this service always
Restart=always

# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=1048576

# Turn-off memory accounting by systemd, which is buggy.
MemoryAccounting=no

# Specifies the maximum number of threads this process can create
TasksMax=infinity

# Disable timeout logic and wait until process is stopped
TimeoutSec=infinity

# Disable killing of MinIO by the kernel's OOM killer
OOMScoreAdjust=-1000

SendSIGKILL=no

[Install]
WantedBy=multi-user.target

3. Обновите Systemd:

sudo systemctl daemon-reload

4. Запустите MinIO как сервис:

sudo systemctl enable minio

Открытие порта и проверка

1. Согласно настройкам, указанным в конфигурации, откройте порт в брандмауэре, чтобы обеспечить доступ к MinIO:

sudo ufw allow 9001/tcp
  1. Чтобы убедиться, что MinIO успешно запущен и доступен, откройте веб-браузер и перейдите по адресу: http://<ip-вашего-сервера>:9001.

Обсуждение