Files
reverse-proxy/docs/security/architecture.md
T
Andrey Lutsenko 8e2a4ac1b9 docs(security): периметр 80/443→HAProxy, 25→KSMG; UFW на .117
Переписаны docs/security под текущий этап: SSH/stats из SSH_ALLOWED,
80/443 для всех. Скрипт UFW дополнен правилом 8404.
2026-06-13 22:34:57 +10:00

2.9 KiB
Raw Blame History

Архитектура защиты

Периметр (MikroTik)

С интернета DNAT на Порт
HTTP/HTTPS HAProxy 192.168.160.117 80, 443
SMTP KSMG 192.168.160.57 25

На HAProxy с интернета только 80 и 443. Порт 25 на HAProxy не проброшен.

Потоки

Поток трафика

Интернет ──80/443──► MikroTik ──► HAProxy .117 ── ACL (SNI/Host) ──► бэкенды .160.0/24
Интернет ──25──────► MikroTik ──► KSMG .57

Через HAProxy (80/443)

  • 443: reject неизвестного SNI; allowlist — git, sac-web, rds, erp, syno; без allowlist — Exchange, sac-api.
  • 80: только Host: zabbix.kalinamall.ru + zabbix-allowed.

Прокси и health-check идут с IP .117. Бэкенды должны разрешать этот источник (UFW на бэкендах — позже, см. backend-hosts.md).

Мимо HAProxy

  • Почта: inbound SMTP → напрямую KSMG (не через fe_smtp на .117).
  • LAN/VPN: прямой доступ к бэкендам, RDP, SSH — если нет host firewall.

Текущий этап: UFW на HAProxy

Сейчас внедряем только haproxy-host.md — UFW на .117:

Порт Кому
22 SSH_ALLOWED: 5.100.81.121, 192.168.128.0/17
8404 (stats) тот же список (если frontend включён)
80, 443 все
остальное deny (в т.ч. 25 на HAProxy)

Матрица фильтрации

Угроза MikroTik UFW HAProxy HAProxy cfg UFW бэкенд* Приложение
Лишние порты с интернета
Неверный SNI / Host
Не из allowlist
Прямой удар в бэкенд частично
Brute SSH fail2ban†
SMTP-спам на KSMG ✓‡ KSMG

* Бэкенды — следующий этап.
† Рекомендуется, не в scope текущего UFW.
‡ KSMG — периметровый хост для 25, отдельный план.

Принципы

  1. Default deny на вход (UFW incoming deny).
  2. Периметр на MikroTik — источник истины для DNAT; UFW на HAProxy — defense in depth + SSH.
  3. Allowlist в haproxy.cfg для 443/80; UFW не дублирует SNI/Host.
  4. UFW: сначала dry-run, потом --apply; держать вторую SSH-сессию.