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

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

  1. Через apt устанавливаются пакеты curl, nginx и certbot.

  2. Существующие веб-серверы (nginx, apache2) и контейнеры Docker, занимающие порты 80 и 443, останавливаются для обеспечения свободного доступа.

  3. Официальный установщик загружается и выполняется:

    curl -s -k -o setup.sh https://binary.haltdos.com/community/waf/setup.sh
    chmod +x setup.sh
    ./setup.sh
    

  4. Имя хоста системы обновляется до соответствия 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:

    systemctl start nginx
    

  • Включение Nginx при загрузке:

    systemctl enable nginx
    

  • Перезапуск контейнеров Docker:

    cd /root/nginx
    docker compose up -d
    

  • Проверка конфигурации Nginx:

    nginx -t
    

  • Перезагрузка конфигурации Nginx:

    systemctl reload 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.

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