Обзор развертывания Haltdos Community WAF на сервере¶
Предварительные требования и базовые условия¶
Для развертывания Haltdos Community WAF должны быть выполнены следующие системные требования:
-
Операционная система: Ubuntu (совместимая с менеджером пакетов
apt). -
Привилегии: Для установки и конфигурации требуются права root или привилегии
sudo. -
Домен: Требуется действительное доменное имя для FQDN, конкретно в зоне
hostkey.in. -
Порты: Порты 80 и 443 должны быть доступны для обратного прокси-сервера и валидации SSL-сертификата.
-
Docker: На хост-системе должен быть установлен и запущен Docker Engine.
FQDN финальной панели¶
Полное доменное имя (FQDN) для панели Haltdos Community WAF следует формату <prefix><Server ID>.hostkey.in. В соответствии с конфигурацией, префикс равен haltdos.
-
Формат:
haltdos<Server ID>.hostkey.in -
Зона:
hostkey.in -
Порт доступа: 443 (HTTPS)
Структура файлов и директорий¶
Развертывание использует следующую структуру директорий для конфигурации, данных и сертификатов:
-
/root/nginx: Содержит конфигурацию Docker Compose для прокси-сервера Nginx и Certbot. -
/root/nginx/compose.yml: Файл Docker Compose, определяющий сервис Nginx. -
/etc/nginx/sites-available/haltdos.conf: Файл конфигурации виртуального хоста Nginx. -
/etc/nginx/sites-enabled/haltdos.conf: Символическая ссылка на активный виртуальный хост. -
/etc/letsencrypt/live/haltdos<Server ID>.hostkey.in/: Директория, содержащая SSL-сертификат и приватный ключ. -
/data/nginx/user_conf.d/: Директория для пользовательских конфигураций Nginx. -
/data/nginx/nginx-certbot.env: Файл окружения для контейнера Nginx-Certbot.
Процесс установки приложения¶
Haltdos Community WAF устанавливается с помощью официального скрипта настройки, предоставленного разработчиком. Процесс установки включает следующие шаги:
-
Перейдите в директорию
/root. -
Загрузите скрипт настройки с адреса
https://binary.haltdos.com/community/waf/setup.sh. -
Выполните скрипт для установки приложения.
Последовательность команд установки следующая:
cd /root
curl -s -k -o setup.sh https://binary.haltdos.com/community/waf/setup.sh
chmod +x setup.sh
./setup.sh
Права доступа и безопасность¶
Меры безопасности, реализуемые в процессе развертывания, включают:
-
Межсетевой экран (Firewall): Порты 80 и 443 используются для внешнего доступа. Любые существующие службы или контейнеры, занимающие эти порты, останавливаются перед развертыванием.
-
SSL/TLS: Для автоматического получения и управления SSL-сертификатами используется Let's Encrypt.
-
Конфигурация Nginx: Обратный прокси-сервер Nginx настроен на принудительное использование HTTPS путем перенаправления HTTP-трафика (порт 80) на HTTPS (порт 443).
-
Сеть Docker: Контейнер прокси-сервера Nginx работает в режиме сети
hostдля прямого доступа к портам хоста.
Контейнеры Docker и их развертывание¶
Развертывание использует контейнеры Docker для обратного прокси-сервера Nginx и управления сертификатами Let's Encrypt. Конфигурация определена в файле Docker Compose, расположенном по пути /root/nginx/compose.yml.
Конфигурация Docker Compose включает:
-
Имя сервиса:
nginx -
Образ:
jonasal/nginx-certbot:latest -
Политика перезапуска:
unless-stopped -
Режим сети:
host -
Томы (Volumes):
-
nginx_secretsсопоставлен с/etc/letsencrypt -
/data/nginx/user_conf.dсопоставлен с/etc/nginx/user_conf.d
Для запуска стека контейнеров выполняется следующая команда:
Эта команда выполняется из директории/root/nginx. Прокси-серверы¶
Nginx настроен как обратный прокси-сервер для обработки входящего трафика на портах 80 и 443.
-
HTTP (Порт 80): Перенаправляет весь трафик на HTTPS.
-
HTTPS (Порт 443): Обрабатывает завершение SSL-сессий и проксирует запросы во внутренний сервис Haltdos.
-
Внутренняя цель прокси: Конфигурация Nginx проксирует запросы на
https://127.0.0.1:9000. -
SSL-сертификаты: Управляются через Let's Encrypt, хранятся в
/etc/letsencrypt/live/. -
Протоколы SSL: Включены TLSv1.2 и TLSv1.3.
Файл конфигурации Nginx расположен по адресу /etc/nginx/sites-available/haltdos.conf и включает следующие заголовки прокси:
-
Host -
X-Real-IP -
X-Forwarded-For -
X-Forwarded-Proto
Настройки прав доступа¶
Права доступа к файлам и директориям устанавливаются следующим образом в процессе развертывания:
-
/root/nginx: Режим0755, владелецroot:root. -
/root/nginx/compose.yml: Режим0644, владелецroot:root. -
/etc/nginx/sites-available/haltdos.conf: Режим0644. -
/etc/nginx/sites-enabled/haltdos.conf: Символическая ссылка на доступную конфигурацию.
Расположение файлов конфигурации и данных¶
Ключевые файлы конфигурации и места хранения данных:
-
Виртуальный хост Nginx:
/etc/nginx/sites-available/haltdos.conf -
Docker Compose:
/root/nginx/compose.yml -
SSL-сертификаты:
/etc/letsencrypt/live/haltdos<Server ID>.hostkey.in/ -
Окружение Nginx:
/data/nginx/nginx-certbot.env -
Пользовательские конфигурации:
/data/nginx/user_conf.d/
Доступные порты для подключения¶
Следующие порты настроены для внешнего и внутреннего взаимодействия:
-
Порт 80: HTTP (Перенаправление на HTTPS).
-
Порт 443: HTTPS (Основной доступ к панели Haltdos).
-
Порт 9000: Внутренняя связь между Nginx и сервисом Haltdos (не открыт для внешнего доступа).
-
Порт 3000: Внутренний порт, упоминаемый в некоторых контекстах конфигурации, хотя активный прокси Nginx обращается к порту 9000.
Запуск, остановка и обновление¶
Команды управления службами для развернутых компонентов следующие:
Служба Nginx:
-
Запуск:
systemctl start nginx -
Остановка:
systemctl stop nginx -
Перезапуск:
systemctl restart nginx -
Включение при загрузке:
systemctl enable nginx
Контейнеры Docker (Nginx-Certbot):
-
Запуск/Перезапуск:
docker compose up -d(выполняется из/root/nginx) -
Остановка:
docker compose down(выполняется из/root/nginx) -
Просмотр логов:
docker compose logs -f(выполняется из/root/nginx)
Приложение Haltdos: Приложение Haltdos управляется через скрипт установки. Для обновления или переустановки требуется повторный запуск официального скрипта настройки: