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

Обзор развертывания Haltdos Community WAF на сервере

Предпосылки и предварительные требования

Для успешного развертывания приложения необходимо наличие сервера с операционной системой Ubuntu. Требуется наличие прав суперпользователя (root) для выполнения всех операций установки и конфигурации.

Система должна иметь доступ к интернету для загрузки установочных скриптов, пакетов и получения сертификатов. Необходимо заранее определить доменное имя (FQDN), которое будет использоваться для доступа к приложению, а также адрес электронной почты для регистрации в Let's Encrypt.

Приложение требует освобождения портов 80 и 443. Перед установкой необходимо остановить любые службы, использующие эти порты, включая веб-серверы Nginx, Apache2, а также контейнеры Docker, которые могут занимать указанные порты.

Структура файлов и каталогов

Конфигурация и данные приложения распределяются по следующим каталогам:

  • /root/nginx — каталог для конфигурации прокси-сервера и скриптов Docker Compose.
  • /data/nginx/user_conf.d — каталог для пользовательских конфигурационных файлов прокси.
  • /etc/nginx/sites-available/haltdos.conf — файл конфигурации виртуального хоста Nginx.
  • /etc/nginx/sites-enabled/haltdos.conf — ссылка на активную конфигурацию.
  • /etc/letsencrypt/live — каталог для хранения SSL-сертификатов, полученных через Let's Encrypt.
  • /root/setup.sh — скрипт установки Haltdos Community WAF.

Процесс установки приложения

Установка приложения выполняется в несколько этапов, включающих настройку системы, установку базовых пакетов и запуск официального скрипта установки.

  1. Настройка системного имени хоста (hostname) и добавление записи в файл /etc/hosts для корректной работы доменного имени.
  2. Установка необходимых пакетов через менеджер пакетов apt: curl, nginx, certbot.
  3. Остановка служб nginx и apache2, если они запущены, для освобождения портов.
  4. Остановка контейнеров Docker, занимающих порты 80 и 443.
  5. Выход из Docker Swarm, если кластер активен.
  6. Загрузка и выполнение официального скрипта установки Haltdos Community WAF:
    curl -s -k -o setup.sh https://binary.haltdos.com/community/waf/setup.sh
    chmod +x setup.sh
    ./setup.sh
    
    Скрипт устанавливает приложение и настраивает его для прослушивания порта 9000.

Прокси серверы

Для обеспечения доступа к приложению по протоколу HTTPS используется веб-сервер Nginx в качестве обратного прокси.

Получение SSL-сертификата выполняется с помощью утилиты certbot в режиме standalone. Команда для получения сертификата:

certbot certonly --standalone --non-interactive --agree-tos --email <email> -d <fqdn>
Где <email> — адрес электронной почты администратора, а <fqdn> — полное доменное имя сервера.

Конфигурация Nginx включает два блока server: - Первый блок слушает порт 80 и перенаправляет весь трафик на HTTPS с кодом 301. - Второй блок слушает порт 443 с поддержкой SSL и HTTP/2. Он использует сертификаты из каталога /etc/letsencrypt/live/<fqdn>.

Внутри блока location / настроена проксировка запросов на локальный адрес https://127.0.0.1:9000, где работает приложение Haltdos. Настроена передача заголовков Host, X-Real-IP, X-Forwarded-For и X-Forwarded-Proto. Проверка SSL-сертификата на стороне прокси отключена (proxy_ssl_verify off).

Также в конфигурации Docker Compose для контейнера nginx (образ jonasal/nginx-certbot:latest) настроено монтирование тома nginx_secrets в /etc/letsencrypt и каталога /data/nginx/user_conf.d в /etc/nginx/user_conf.d. Контейнер запускается в режиме network_mode: host.

Запуск, остановка и обновление

Управление службой Nginx осуществляется через стандартные команды системного менеджера служб:

  • Запуск службы:
    systemctl start nginx
    
  • Остановка службы:
    systemctl stop nginx
    
  • Перезапуск службы:
    systemctl restart nginx
    
  • Проверка конфигурации перед перезапуском:
    nginx -t
    

Для управления контейнером прокси-сервера, развернутым через Docker Compose в каталоге /root/nginx, используются следующие команды:

  • Запуск контейнера в фоновом режиме:
    docker compose up -d
    
    Команда выполняется из каталога /root/nginx.

Приложение Haltdos Community WAF запускается автоматически после выполнения скрипта установки и работает как системная служба или процесс, слушающий порт 9000.

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