Files
reverse-proxy/docs/security/backend-hosts.md
T

3.9 KiB
Raw Blame History

Firewall на бэкендах

Цель: сервисный порт доступен с HAProxy (192.168.160.117) и при необходимости с admin-подсетей; не с произвольного LAN/Internet напрямую.

Скрипт: backend-ufw-from-haproxy.sh.

Таблица бэкендов

Сервис IP Порт Протокол HAProxy backend Примечание
Exchange 192.168.160.42 443 TCP be_exchange OWA, ActiveSync
RDS Gateway 192.168.160.40 4430 TCP be_rds не 443
1С ERP 192.168.160.150 443 TCP be_erp
Git (Gitea) 192.168.160.129 443 TCP be_git SSH Gitea 2222 — отдельно
SAC 192.168.160.145 443 TCP be_sac
Zabbix 192.168.160.53 80 TCP be_zabbix HTTP
Synology heap 192.168.160.185 5001 TCP be_syno_heap DSM HTTPS
Synology exchange 192.168.160.35 5001 TCP be_syno_exchange
KSMG 192.168.160.57 25 TCP be_ksmg_smtp см. ниже

Шаблон правил (логика)

allow from 192.168.160.117 to <PORT>
allow from ADMIN_ALLOWED to 22/tcp   # SSH, если на этом хосте
allow from LAN to ...                # только если нужен прямой доступ (минимизировать)
deny incoming (default)

Пример env для Git (192.168.160.129)

HAPROXY_IP=192.168.160.117
BACKEND_PORT=443
ADMIN_ALLOWED="192.168.160.0/24"
UFW_EXTRA_SERVICES="2222/tcp"   # если Gitea SSH с admin LAN

Особые случаи

KSMG (192.168.160.57:25)

Почта с интернета приходит на HAProxy:25 → KSMG. На KSMG в EXTRA_ALLOWED укажите 192.168.160.117. Если другие MTA шлют напрямую на .57 (минуя HAProxy), их IP тоже нужно явно разрешить — иначе после UFW почта встанет.

RDS (192.168.160.40)

Порт 4430, не 443. VPN-клиенты с прямым RDP на .3 / .40 обходят HAProxy — ограничивать 3389/4430 на session hosts отдельной GPO/файрволом.

Synology

DSM может требовать доп. порты (5000, 5001, relay). Для доступа только через HAProxy достаточно 5001 с .117. Прямой доступ к NAS с LAN — отключить или ограничить в DSM Панель → Безопасность → Брандмауэр.

Exchange

Внутренние клиенты Outlook могут ходить напрямую на .42 по LAN — UFW не сломать без списка подсетей Exchange. Варианты:

  • разрешить 192.168.160.0/24 на 443 (шире);
  • или только .117 + подсеть Exchange DAG/clients (уже).

Windows vs Linux

Скрипт UFW — для Linux. Для Windows (Exchange, RDS, 1С) — Windows Firewall with Advanced Security: inbound allow Remote IP 192.168.160.117, порт сервиса.

Развёртывание на Linux-бэкенде

sudo mkdir -p /etc/haproxy/security
sudo cp backend-ufw.env.example /etc/haproxy/security/backend-ufw.env
sudo nano /etc/haproxy/security/backend-ufw.env
sudo bash backend-ufw-from-haproxy.sh
sudo bash backend-ufw-from-haproxy.sh --apply

Проверка

С HAProxy (или симуляция):

curl -kI --resolve git.kalinamall.ru:443:ПУБЛИЧНЫЙ_IP https://git.kalinamall.ru/

С другого LAN-хоста (не .117):

curl -kI --connect-timeout 3 https://192.168.160.129/   # ожидается timeout/refused

В логе HAProxy — backend UP.