Перейти к содержанию

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

  1. Перейдите в директорию /root.

  2. Загрузите скрипт настройки с адреса https://binary.haltdos.com/community/waf/setup.sh.

  3. Выполните скрипт для установки приложения.

Последовательность команд установки следующая:

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

Для запуска стека контейнеров выполняется следующая команда:

docker compose up -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 управляется через скрипт установки. Для обновления или переустановки требуется повторный запуск официального скрипта настройки:

cd /root
./setup.sh

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×