Files
reverse-proxy/docs/security

Безопасность периметра HAProxy (kalinamall.ru)

План защиты хоста haproxy.kalinamall.ru и бэкендов за ним. HAProxy слушает 25, 80, 443; фильтрация по SNI/Host и allowlist уже в haproxy.cfg, но UFW на хосте inactive — ниже поэтапное включение defense in depth.

Модель угроз (кратко)

Уровень Что закрывает
MikroTik / провайдер DDoS, geo, лишние порты до DMZ
UFW на HAProxy Вход только 25/80/443 + SSH с доверенных IP
HAProxy ACL Неизвестный SNI, allowlist по сервисам
UFW на бэкендах Сервисы доступны только с IP HAProxy (192.168.160.117)
Приложение Auth OWA, RD Gateway, Gitea, SAC, 1С

Обход HAProxy (VPN в 192.168.160.0/24, прямой RDP) — отдельная политика; см. backend-hosts.md.

Документы

Файл Содержание
architecture.md Схема потоков, зоны, принципы
haproxy-host.md Hardening Ubuntu, UFW, SSH, fail2ban, HAProxy
backend-hosts.md Правила для каждого бэкенда
deployment-plan.md Пошаговый план внедрения (фазы 0–5)
checklist.md Проверки после внедрения

Скрипты

Скрипт Назначение
scripts/security/haproxy-ufw-apply.sh UFW на HAProxy (dry-run по умолчанию)
scripts/security/haproxy-ufw.env.example Пример env для HAProxy
scripts/security/backend-ufw-from-haproxy.sh UFW на бэкенде: порт только с HAProxy
scripts/security/backend-ufw.env.example Пример env для бэкенда

Быстрый старт (после чтения deployment-plan)

# на HAProxy — сначала dry-run
sudo cp ~/reverse-proxy/scripts/security/haproxy-ufw.env.example /etc/haproxy/security/haproxy-ufw.env
sudo nano /etc/haproxy/security/haproxy-ufw.env   # SSH_ALLOWED, при необходимости порты
sudo bash ~/reverse-proxy/scripts/security/haproxy-ufw-apply.sh
sudo bash ~/reverse-proxy/scripts/security/haproxy-ufw-apply.sh --apply

На каждом бэкенде — backend-hosts.md и backend-ufw-from-haproxy.sh.

Связь с конфигом HAProxy

Allowlist-файлы в /etc/haproxy/ (не заменяют UFW):

  • git-sac-allowed, rds-allowed, 1c-allowed, zabbix-allowed, syno-allowed

Сервисы без allowlist на 443: Exchange (ext, autodiscover), sac-api, SMTP 25 — усилить на уровне приложения и мониторинга; при необходимости добавить allowlist или rate-limit (см. haproxy-host.md).