Уточнено: порт 25 с интернета не проброшен; inbound-почта не через HAProxy.
4.2 KiB
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 проброшены только 80/443 — inbound SMTP не приходит на HAProxy:25. Почта с периметра идёт напрямую на KSMG (или иным маршрутом), минуя HAProxy.
fe_smtp в haproxy.cfg — для LAN (прокси на KSMG с .117). На KSMG в EXTRA_ALLOWED укажите 192.168.160.117, если этот путь используется. IP внешних MTA, шлющих напрямую на .57, тоже нужно явно разрешить — иначе после 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.