Установка веб-интерфейса 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
Активация веб-интерфейса
-
Перейдите в веб-интерфейс по ссылке
ip:port
. Порт указывается при настройкеVITE_APP_PORT
в файле/opt/sp-spider/.env
-
Стандартные логин и пароль требуется заменить после инсталляции. Логин:
superadmin
Пароль:superadmin
-
После авторизации вы зафиксируете окно ошибки. Выберите:
- Нажмите кнопку "Настройки" на появившемся окне
- "Ноды"
- "Добавить ноду"
- Введите SSH-данные от установленной ноды Досгейта
-
В управлении системой также нужно указать ссылку на Graphite (для получения графиков статистики) и название арены (названия арен должны быть одинаковые во всех dosgate.conf по всему кластеру)
- Перейдите в "Настройки"
- Укажите ссылку на Graphite
- Укажите название arena
-
Перейдите в настройки, нажав на свой профиль в правом верхнем углу экрана
- Измените пароль с superadmin на требуемый
-
Веб-интерфейс готов к работе. Убедитесь что графики активны, профили и правила создаются, синхронизация работает