Установка веб-интерфейса SP Spider для Альт СП 10 Linux

Компоненты

Основные

  • sp-spider - веб-интерфейс для ПО DosGate

Вспомогательные

  • PostgreSQL, СУБД
  • NodeJS, среда выполнения JavaScript
  • RabbitMQ, брокер сообщений

Подготовка аппаратной платформы веб-интерфейса

  • Поддерживаемая версия DosGate: 3.2.2-5 и выше (для версий до 3.9.8)
  • Поддерживаемая версия DosGate: 3.4.2-1 и выше (для версий с 3.9.9)

Установка обновлений ОС

** Все дальнейшие действия производятся от пользователя root*

apt-get update

Установка NodeJS

apt-get install -y node

Установка PostgreSQL

apt-get install -y libpq5-devel postgresql14-server postgresql14-contrib
# Создание системных баз данных
/etc/init.d/postgresql initdb
# Запуск сервиса
systemctl enable --now postgresql

Настройка PostgreSQL

#Откройте /var/lib/pgsql/data/pg_hba.conf

#Убедитесь, что присутствует запись
host    all             all             127.0.0.1/32            scram-sha-256

Проверить можно командой:

cat /var/lib/pgsql/data/pg_hba.conf | grep "host    all             all             127.0.0.1/32            scram-sha-256"

Создайте таблицу и пользователя:

psql -U postgres
CREATE DATABASE dosgate;
CREATE USER dosgate WITH ENCRYPTED PASSWORD 'password';
GRANT ALL PRIVILEGES ON DATABASE dosgate TO dosgate;
\q

Установка rabbitmq (rmq)

apt-get install rabbitmq-server
systemctl enable --now rabbitmq.service

Настройка rabbitmq

Создайте пользователя rmq

rabbitmqctl add_user "username" "password"

Выдайте пользователю доступ configure, write, и read для всех entity

rabbitmqctl set_permissions -p "/" "username" ".*" ".*" ".*"

Настройка dosgate.conf

Убедитесь, что внутри /etc/dosgate.conf есть настроенный FAPI.socket. Именно с ним взаимодействует веб-интерфейс:

  - url: /run/dosgate/fapi.socket
    user: www-data
    group: www-data
    mode: 0660
    acl: any
    type: FCGI
    timeout:
      send: 120
      idle: 120

Добавьте сервис проверки прав fapi-socket

chmod 660 /run/dosgate/fapi.socket
systemctl restart dosgate
# Отрелактируйте /etc/systemd/system/fix_fapi.service
[Unit]
Description=Run fix fapi-socket at startup after all systemd services
After=default.target

[Service]
Type=simple
RemainAfterExit=yes
ExecStart=chmod 660 /run/dosgate/fapi.socket
TimeoutStartSec=0

[Install]
WantedBy=default.target
systemctl enable --now /etc/systemd/system/fix_fapi.service

Создание SSH-пользователя

Для синхронизации и дополнительных проверок, веб-интерфейс соединяется по SSH с каждой системой-dosgate

Убедитесь что на каждой системе-dosgate есть настроенный SSH-пользователь с доступом к sudo.

На данный момент, авторизация возможна только через логин и пароль, убедитесь что подключение по SSH по паролю к этому пользователю разрешено

adduser dosgate-web && usermod -aG wheel dosgate-web

Настройка nginx

Установите nginx

apt-get install nginx

Если Graphite работает в рамках той-же аппаратной платформы, проверяем что он не занимает порт 80 или 443, и не будет конфликтовать с интерфейсом:

# При наличии файла, проверьте /etc/nginx/sites-available.d/graphite

Должно быть:

listen 8080 default_server;
listen [::]:8080 default_server;

Если установлен 80 или 443 порт, требуется изменить на 8080, также требуется поменять параметры Data Source в Grafana (если используется)

Удалите стандартную конфигурацию NGINX

rm -f /etc/nginx/sites-available.d/default.conf /etc/nginx/sites-enabled.d/default.conf

Настройте конфигурацию fapi в NGINX

# Отредактируйте /etc/nginx/sites-available.d/fapi.conf

Поместите в fapi.conf следующую информацию (не забудьте заменить REPLACE_ON_DOMAIN_OR_IP):

server {
  listen 80 default_server;
  listen [::]:80 default_server;

  server_name REPLACE_ON_DOMAIN_OR_IP;
  root /var/www/html;
  index index.php;

  location /fapi {
    include fastcgi_params;
    fastcgi_pass  unix:/run/dosgate/fapi.socket;
  }

  location /broker {
    rewrite ^/broker(.*)$ $1 break;
    proxy_pass http://localhost:3335;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_cache_bypass $http_upgrade;
  }
}

Создайте link

ln -s /etc/nginx/sites-available.d/fapi.conf /etc/nginx/sites-enabled.d

Перезапустите Nginx

systemctl restart nginx

Настройка сети

Убедитесь, что веб-интерфейс имеет связанность до каждой системы dosgate

Установка веб-интерфейса

apt-get install sp-spider=3.9.9.15-alt1 sp-spider-broker=1.0.7-alt1

Конфигурация

В зависимости от условий установки требуется сменить авторизационные данные и порты для базы данных и др. информацию в .env-файле

# Отредактируйте /opt/sp-spider/.env
# Порт на котором будет работать приложение
VITE_APP_PORT=3333
NODE_ENV=production
HTTP_TIMEOUT=10000

# Если это основной интерфейс (даже при отсутствии резервирования)
IS_PRIMARY=true

# Секретный ключ, соль для паролей. Нежелательно менять после первого запуска
APP_SECRET=salt_salt_salt

# Данные от пользователя и БД postgresql
DB_HOST="localhost"
DB_PORT="5432"
DB_USER="dosgate"
DB_DATABASE="dosgate"
DB_PASSWORD="password"

# Активация rabbitmq для синхронизации и брокера
RMQ_ENABLE="true"
RMQ_URL="amqp://USER:PASSWORD@localhost:5672"
RMQ_RECONNECT_INTERVAL="5000"

Использование AMQPs

В случае, если требуется поддержка TLS в рамках протокола AMQP, замените RMQ_URL="amqp://USER:PASSWORD@localhost:5672" на RMQ_URL="amqps://USER:PASSWORD@localhost:5672"

# Отредактируйте /opt/sp-spider-broker/.env
# Порт, на котором запустится сервис
APP_PORT=3335

# Ключ из .env интерфейса
APP_SECRET="YOUR_APP_SECRET"

# Данные от базы данных из .env Spider (/opt/sp-spider/.env)
DB_HOST="localhost"
DB_PORT="5432"
DB_USER="YOUR_DB_USER"
DB_DATABASE="YOUR_DB_NAME"
DB_PASSWORD="YOUR_DB_PASSWORD"

# Данные RabbitMQ из .env интерфейса
RMQ_URL="amqp://USER:PASSWORD@localhost:5672"
RMQ_RECONNECT_INTERVAL="5000"

# Путь к папке с политиками DosGate UH. Обязательно в конце ставить "/"
POLICY_PATH="/var/lib/dosgate-uh/profiles/"

# Путь к конфигурации обработчика оффендеров DosGate UH
OFFENDERS_CONF_PATH="/opt/sp-spider-broker/offenders/offenders.conf"

Запуск и проверка работы сервисов

systemctl enable --now sp-spider sp-spider-broker

Проверяем статус всех компонентов:

systemctl status sp-spider
systemctl status rabbitmq-server
systemctl status postgresql
systemctl status nginx

Активация веб-интерфейса

  1. Перейдите в веб-интерфейс по ссылке ip:port. Порт указывается при настройке VITE_APP_PORT в файле /opt/sp-spider/.env

  2. Стандартные логин и пароль требуется заменить после инсталляции. Логин: superadmin Пароль: superadmin

  3. После авторизации вы зафиксируете окно ошибки. Выберите:

    • Нажмите кнопку "Настройки" на появившемся окне
    • "Ноды"
    • "Добавить ноду"
    • Введите SSH-данные от установленной ноды Досгейта
  4. В управлении системой также нужно указать ссылку на Graphite (для получения графиков статистики) и название арены (названия арен должны быть одинаковые во всех dosgate.conf по всему кластеру)

    • Перейдите в "Настройки"
    • Укажите ссылку на Graphite
    • Укажите название arena
  5. Перейдите в настройки, нажав на свой профиль в правом верхнем углу экрана

    • Измените пароль с superadmin на требуемый
  6. Веб-интерфейс готов к работе. Убедитесь что графики активны, профили и правила создаются, синхронизация работает