fix(haproxy): Autodiscover на :80 и точный fail2ban для Zabbix
Outlook при настройке ext.kalinamall.ru слал GET /autodiscover/autodiscover.xml на порт 80; старый fe_http_zabbix отвечал 403 всем не-zabbix Host, fail2ban банил клиента на сутки. fe_http проксирует Autodiscover на Exchange :80, 403 только для zabbix вне allowlist, ignoreregex для /autodiscover/.
This commit is contained in:
+23
-8
@@ -1,7 +1,7 @@
|
||||
# HAProxy — периметровый reverse-proxy для kalinamall.ru
|
||||
# Config version: 0.7.7
|
||||
# Config version: 0.7.8
|
||||
# Режим: TCP + SNI на 443 (TLS end-to-end, сертификаты на бэкендах)
|
||||
# HTTP на 80: zabbix.kalinamall.ru → 192.168.160.53 (allowlist zabbix-allowed)
|
||||
# HTTP на 80: Exchange Autodiscover (ext/autodiscover) + zabbix.kalinamall.ru (allowlist)
|
||||
#
|
||||
# Проверка синтаксиса: haproxy -c -f haproxy.cfg
|
||||
# Установка: скопируйте в /etc/haproxy/haproxy.cfg
|
||||
@@ -115,23 +115,38 @@ backend be_syno_exchange
|
||||
server syno_exch 192.168.160.35:5001 check check-ssl check-sni exchange.kalinamall.ru verify none
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# HTTP (80): Zabbix — только HTTP на бэкенде, снаружи http://zabbix.kalinamall.ru
|
||||
# Allowlist: /etc/haproxy/zabbix-allowed
|
||||
# HTTP (80): Exchange Autodiscover (Outlook) + Zabbix UI
|
||||
# Autodiscover: autodiscover.kalinamall.ru, ext.kalinamall.ru/autodiscover/* → Exchange :80
|
||||
# Zabbix: только Host zabbix.kalinamall.ru + allowlist /etc/haproxy/zabbix-allowed
|
||||
# Прочие Host на :80 → 404 (не 403), чтобы fail2ban не путал с атакой на Zabbix
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
frontend fe_http_zabbix
|
||||
frontend fe_http
|
||||
bind *:80
|
||||
mode http
|
||||
option httplog
|
||||
option forwardfor except 127.0.0.0/8
|
||||
|
||||
acl host_zabbix hdr(host) -i zabbix.kalinamall.ru
|
||||
acl host_autodiscover hdr(host) -i autodiscover.kalinamall.ru
|
||||
acl host_ext hdr(host) -i ext.kalinamall.ru
|
||||
acl path_autodiscover path_beg /autodiscover
|
||||
acl src_zabbix_allowed src -f /etc/haproxy/zabbix-allowed
|
||||
|
||||
http-request deny deny_status 403 unless host_zabbix
|
||||
http-request deny deny_status 403 if !src_zabbix_allowed
|
||||
# Zabbix: 403 только при неверном IP (fail2ban haproxy-zabbix-403)
|
||||
http-request deny deny_status 403 if host_zabbix !src_zabbix_allowed
|
||||
|
||||
default_backend be_zabbix
|
||||
use_backend be_exchange_http if host_autodiscover
|
||||
use_backend be_exchange_http if host_ext path_autodiscover
|
||||
use_backend be_zabbix if host_zabbix
|
||||
|
||||
http-request deny deny_status 404 if !host_zabbix !host_autodiscover !(host_ext path_autodiscover)
|
||||
|
||||
backend be_exchange_http
|
||||
mode http
|
||||
option forwardfor
|
||||
# fifth.kalinamall.ru (192.168.160.42) — IIS Autodiscover / редирект на HTTPS OWA
|
||||
server exch 192.168.160.42:80 check
|
||||
|
||||
backend be_zabbix
|
||||
mode http
|
||||
|
||||
Reference in New Issue
Block a user