Обзор развертывания Haltdos Community WAF на сервере¶
Предварительные требования и базовые условия¶
Развертывание Haltdos Community WAF требует соблюдения следующих системных характеристик и конфигураций:
-
Операционная система: Ubuntu (совместимо с пакетным менеджером
apt). -
Привилегии: Для установки пакетов, настройки сервисов и управления контейнерами Docker требуются права root или права
sudo. -
Настройка домена: Сервер должен разрешать полное доменное имя (FQDN) в зоне
hostkey.in. -
Порты: Порты
80и443должны быть доступны для проверки сертификатов Let's Encrypt и трафика HTTPS. Порт3000используется внутренне для приложения.
FQDN конечной панели¶
Полное доменное имя (FQDN) для доступа к панели Haltdos Community WAF формируется по следующему образцу:
haltdos<Server ID>.hostkey.in
Приложение доступно через HTTPS (порт 443).
Структура файлов и каталогов¶
В процессе установки конфигурационные файлы, сертификаты и данные размещаются в следующих местах:
-
Системная конфигурация:
/etc/nginx/sites-available/haltdos.conf -
Конфигурация обратного прокси Nginx:
/etc/nginx/sites-enabled/haltdos.conf(символическая ссылка) -
Сертификаты Let's Encrypt:
/etc/letsencrypt/live/<FQDN>/ -
Конфигурации пользователя для Nginx:
/data/nginx/user_conf.d/ -
Конфигурация Docker Compose:
/root/nginx/compose.yml -
Переменные окружения Docker:
/data/nginx/nginx-certbot.env
Процесс установки приложения¶
Haltdos Community WAF устанавливается с помощью официального скрипта настройки, предоставленного поставщиком. Процесс установки включает следующие шаги:
-
Через
aptустанавливаются пакетыcurl,nginxиcertbot. -
Существующие веб-серверы (
nginx,apache2) и контейнеры Docker, занимающие порты80и443, останавливаются для обеспечения свободного доступа. -
Официальный установщик загружается и выполняется:
-
Имя хоста системы обновляется до соответствия FQDN, а в файл
/etc/hostsдобавляется запись для обеспечения локального разрешения имени.
Права доступа и безопасность¶
Меры безопасности, реализуемые в процессе развертывания, включают:
-
Межсетевой экран и управление сервисами: Существующие сервисы, занимающие порты
80и443, завершаются до выдачи сертификата и настройки обратного прокси. -
Docker Swarm: Если активен Docker Swarm, узел принудительно удаляется из кластера для обеспечения совместимости.
-
Ограничения Nginx: Сайт Nginx по умолчанию отключается во избежание конфликтов с пользовательской конфигурацией Haltdos.
-
SSL/TLS: Безопасное взаимодействие обеспечивается через сертификаты Let's Encrypt с включенными протоколами
TLSv1.2иTLSv1.3.
Прокси-серверы¶
Nginx настроен как обратный прокси для обработки входящего трафика и завершения SSL-соединений.
-
Перенаправление HTTP: Все HTTP-запросы на порту
80перенаправляются на HTTPS. -
Конфигурация HTTPS: Nginx слушает порт
443с включенным SSL, используя сертификаты от Let's Encrypt. -
Внутренний прокси: Трафик проксируется к приложению Haltdos, работающему локально на порту
9000(как указано в файле сайта Nginx) или на порту3000(как указано в пользовательском правиле proxy_pass). -
Заголовки: Прокси передает стандартные заголовки, включая
Host,X-Real-IP,X-Forwarded-ForиX-Forwarded-Proto. -
Проверка SSL: Проверка SSL-сертификата клиента отключена (
proxy_ssl_verify off) для подключения к вышестоящему серверу.
Настройки прав доступа¶
К следующим ключевым каталогам и файлам применяются следующие права доступа:
-
Каталог Nginx: Каталог
/root/nginxсоздается с владениемroot:rootи режимом0755. -
Файл Compose: Файл
/root/nginx/compose.ymlустанавливается с режимом0644. -
Конфигурация сайта Nginx: Конфигурационный файл
/etc/nginx/sites-available/haltdos.confсоздается с режимом0644. -
Let's Encrypt: Сертификаты хранятся в
/etc/letsencrypt/, права доступа управляются сервисомcertbot.
Расположение конфигурационных файлов и данных¶
Ключевые конфигурационные файлы и каталоги данных находятся по следующим путям:
-
Конфигурация сайта Nginx:
/etc/nginx/sites-available/haltdos.conf -
Docker Compose:
/root/nginx/compose.yml -
Конфигурация прокси пользователя:
/data/nginx/user_conf.d/haltdos<Server ID>.hostkey.in.conf -
Переменные окружения:
/data/nginx/nginx-certbot.env -
Сертификаты:
/etc/letsencrypt/live/<haltdos<Server ID>.hostkey.in>/
Доступные порты для подключения¶
В рамках развертывания используются следующие порты:
| Порт | Протокол | Описание |
|---|---|---|
| 80 | TCP | HTTP (перенаправление на HTTPS) |
| 443 | TCP | HTTPS (публичный доступ к панели Haltdos) |
| 3000 | TCP | Внутренняя коммуникация (настроено в прокси пользователя) |
| 9000 | TCP | Внутренняя коммуникация (настроено в обратном прокси Nginx) |
Запуск, остановка и обновление¶
Управление сервисами осуществляется через команду systemctl для Nginx и docker compose для компонентов в контейнерах.
-
Запуск Nginx:
-
Включение Nginx при загрузке:
-
Перезапуск контейнеров Docker:
-
Проверка конфигурации Nginx:
-
Перезагрузка конфигурации Nginx:
Контейнеры Docker и их развертывание¶
Для управления SSL-сертификатами через Nginx и Certbot используется контейнер Docker.
-
Образ:
jonasal/nginx-certbot:latest -
Политика перезапуска:
unless-stopped -
Режим сети:
host -
Томы (Volumes):
-
nginx_secretsсопоставлен с/etc/letsencrypt(внешний том). -
/data/nginx/user_conf.dсопоставлен с/etc/nginx/user_conf.d. -
Переменные окружения:
-
Email для Let's Encrypt:
hkadm@hostkey.com -
Дополнительные переменные загружаются из
/data/nginx/nginx-certbot.env.
Контейнер запускается с использованием файла compose, расположенного по пути /root/nginx/compose.yml.