e3201ae41b
Уточнено: порт 25 с интернета не проброшен; inbound-почта не через HAProxy.
Безопасность периметра HAProxy (kalinamall.ru)
План защиты хоста haproxy.kalinamall.ru и бэкендов за ним. HAProxy слушает 25, 80, 443; с интернета (MikroTik DNAT) доступны только 80 и 443. Фильтрация по SNI/Host и allowlist уже в haproxy.cfg, но UFW на хосте inactive — ниже поэтапное включение defense in depth.
Модель угроз (кратко)
| Уровень | Что закрывает |
|---|---|
| MikroTik / провайдер | DDoS, geo; DNAT на HAProxy только 80/443 |
| UFW на HAProxy | SSH с доверенных IP; 80/443 (и 25 только если нужен с LAN) |
| 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 с интернета на HAProxy не проброшен (см. architecture.md); fe_smtp — для LAN/внутреннего использования.