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

Навигатор по разделу:

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

Перед началом установки сопутствующих компонентов и распаковкой дистрибутива создайте специального пользователя 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

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

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

2.1. Установка 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

2.2. Установка и настройка 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:

4.1. Создайте папку для сервиса NATS:

sudo mkdir -p /etc/nats

4.2. Создайте папку для потока данных jetstream NATS:

mkdir -p /opt/smartpam/nats

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

sudo nano /etc/nats/nats-server.conf

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

# NATS Server Configuration with Simple Authentication
server_name: "PAM_NATS_Server"
# Client connections port
port: 4222
# HTTP monitoring port
http_port: 8222
# Simple authentication with one user
authorization {
  # Single user with full permissions
  user: "nats_login"
  password: "nats_password"
# Timeout for authentication (in seconds)
  timeout: 2
}
jetstream {
  store_dir: "/opt/smartpam/nats"
  max_mem: 500m
  max_file: 1G
}

5.1.Перед запуском сервиса проверьте корректность конфигурационного файла:

nats-server -c /etc/nats/nats-server.conf -t

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/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

8. Сохраните файл и выйдите.

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

13. Проверьте доступность и работоспособность сервера NATS. Откройте в браузере страницу мониторинга NATS по адресу:

http://<ip_NATS_server>:8222 

При успешном запуске сервера отобразится страница мониторинга NATS. Пример страницы:
































Рис. Страница мониторинга NATS

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

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

2.3.1. Добавление репозитория 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

2.3.2. Установка 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

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

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

sudo -u postgres psql
CREATE USER pam WITH PASSWORD 'Passw0rd';
CREATE DATABASE pam OWNER=pam ENCODING=utf8;
\q

2. Для изменения реквизитов базы данных (сервера, наименования, имени пользователя или пароля) впишите корректные значения в конфигурационные файлы config.yaml, находящиеся в каталогах служб SmartPam (службы admin-console, event-processor, pam-manager, pam-vault, session-processor, session-recorder, user-console, uba), в формате PostgreSQL Connection URI в секцию db.connection_string.

2.3.4. Настройка 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

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

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

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"

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

2.4.2. Настройка службы 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

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

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

sudo ufw allow 9001/tcp

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


Обсуждение