905c762acc
Gitea не парсил узлы с <br/> и кириллицей без кавычек; добавлен текстовый fallback.
Безопасность периметра 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).