# Безопасность периметра 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](backend-hosts.md). ## Документы | Файл | Содержание | |------|------------| | [architecture.md](architecture.md) | Схема потоков, зоны, принципы | | [haproxy-host.md](haproxy-host.md) | Hardening Ubuntu, UFW, SSH, fail2ban, HAProxy | | [backend-hosts.md](backend-hosts.md) | Правила для каждого бэкенда | | [deployment-plan.md](deployment-plan.md) | **Пошаговый план** внедрения (фазы 0–5) | | [checklist.md](checklist.md) | Проверки после внедрения | ## Скрипты | Скрипт | Назначение | |--------|------------| | [scripts/security/haproxy-ufw-apply.sh](../../scripts/security/haproxy-ufw-apply.sh) | UFW на HAProxy (dry-run по умолчанию) | | [scripts/security/haproxy-ufw.env.example](../../scripts/security/haproxy-ufw.env.example) | Пример env для HAProxy | | [scripts/security/backend-ufw-from-haproxy.sh](../../scripts/security/backend-ufw-from-haproxy.sh) | UFW на бэкенде: порт только с HAProxy | | [scripts/security/backend-ufw.env.example](../../scripts/security/backend-ufw.env.example) | Пример env для бэкенда | ## Быстрый старт (после чтения deployment-plan) ```bash # на 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-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](haproxy-host.md)).