Document OWA /owa under ext SNI (no extra HAProxy rules)
This commit is contained in:
@@ -10,7 +10,7 @@ TLS: на целевых серверах используются **wildcard-с
|
|||||||
|
|
||||||
| Служба | Внешнее имя (клиенты) | Внутренний хост / IP | Порт снаружи |
|
| Служба | Внешнее имя (клиенты) | Внутренний хост / IP | Порт снаружи |
|
||||||
|--------|------------------------|----------------------|--------------|
|
|--------|------------------------|----------------------|--------------|
|
||||||
| Microsoft Exchange (OWA, EWS, MAPI/HTTPS и т.д.) | `ext.kalinamall.ru` | fifth.kalinamall.ru — **192.168.160.42** | 443 (TCP/SNI) |
|
| Microsoft Exchange (OWA `https://ext.kalinamall.ru/owa`, EWS, MAPI/HTTPS и т.д.) | `ext.kalinamall.ru` | fifth.kalinamall.ru — **192.168.160.42** | 443 (TCP/SNI) |
|
||||||
| Autodiscover | `autodiscover.kalinamall.ru` | тот же Exchange — **192.168.160.42** | 443 (TCP/SNI) |
|
| Autodiscover | `autodiscover.kalinamall.ru` | тот же Exchange — **192.168.160.42** | 443 (TCP/SNI) |
|
||||||
| RDS | `rds.kalinamall.ru` | k6a-dc3.b26.kalinamall.ru — **192.168.160.40** | 443 |
|
| RDS | `rds.kalinamall.ru` | k6a-dc3.b26.kalinamall.ru — **192.168.160.40** | 443 |
|
||||||
| 1С | `erp.kalinamall.ru` | hp-serv.b26.kalinamall.ru — **192.168.160.150** | 443 |
|
| 1С | `erp.kalinamall.ru` | hp-serv.b26.kalinamall.ru — **192.168.160.150** | 443 |
|
||||||
@@ -20,6 +20,8 @@ TLS: на целевых серверах используются **wildcard-с
|
|||||||
|
|
||||||
DNS: записи **A** для `ext`, **`autodiscover`**, `rds`, `erp`, `ksmg` (и при необходимости для входа по RDP/SSH) должны указывать на **публичный IP** хоста с HAProxy. Имя `autodiscover.kalinamall.ru` должно быть в **SAN** wildcard `*.kalinamall.ru` или отдельно в сертификате на Exchange.
|
DNS: записи **A** для `ext`, **`autodiscover`**, `rds`, `erp`, `ksmg` (и при необходимости для входа по RDP/SSH) должны указывать на **публичный IP** хоста с HAProxy. Имя `autodiscover.kalinamall.ru` должно быть в **SAN** wildcard `*.kalinamall.ru` или отдельно в сертификате на Exchange.
|
||||||
|
|
||||||
|
В режиме **TCP + SNI** отдельные строки в HAProxy для путей вроде `/owa` **не нужны**: после согласования TLS клиент шлёт HTTP внутри шифрования, разбор путей делает **IIS/Exchange** на `192.168.160.42`.
|
||||||
|
|
||||||
## Установка HAProxy на Ubuntu 24.04 (Noble)
|
## Установка HAProxy на Ubuntu 24.04 (Noble)
|
||||||
|
|
||||||
Для этого репозитория нужен HAProxy **не ниже 2.4**. Конструкции `req_ssl_sni` и `tcp-request content accept` (разбор ClientHello для SNI в TCP-режиме) входят в штатные сборки **2.8.x** из Ubuntu 24.04 и во все актуальные ветки **3.x**.
|
Для этого репозитория нужен HAProxy **не ниже 2.4**. Конструкции `req_ssl_sni` и `tcp-request content accept` (разбор ClientHello для SNI в TCP-режиме) входят в штатные сборки **2.8.x** из Ubuntu 24.04 и во все актуальные ветки **3.x**.
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ defaults
|
|||||||
# HTTPS (443): маршрутизация по SNI → внутренние серверы с wildcard на 443
|
# HTTPS (443): маршрутизация по SNI → внутренние серверы с wildcard на 443
|
||||||
# Клиенты: ext, autodiscover (Exchange) / rds / erp.kalinamall.ru
|
# Клиенты: ext, autodiscover (Exchange) / rds / erp.kalinamall.ru
|
||||||
# Бэкенды: Exchange, RDS, 1С (см. README)
|
# Бэкенды: Exchange, RDS, 1С (см. README)
|
||||||
|
# Пути URL ( /owa, /ecp, /ews/, /mapi/ … ) HAProxy не разбирает — они внутри TLS; достаточно SNI ext.kalinamall.ru
|
||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
|
|
||||||
frontend fe_https_sni
|
frontend fe_https_sni
|
||||||
@@ -32,6 +33,7 @@ frontend fe_https_sni
|
|||||||
tcp-request inspect-delay 5s
|
tcp-request inspect-delay 5s
|
||||||
tcp-request content accept if { req_ssl_hello_type 1 }
|
tcp-request content accept if { req_ssl_hello_type 1 }
|
||||||
|
|
||||||
|
# OWA: https://ext.kalinamall.ru/owa — тот же поток, отдельное правило не требуется
|
||||||
use_backend be_exchange if { req_ssl_sni -i ext.kalinamall.ru }
|
use_backend be_exchange if { req_ssl_sni -i ext.kalinamall.ru }
|
||||||
use_backend be_exchange if { req_ssl_sni -i autodiscover.kalinamall.ru }
|
use_backend be_exchange if { req_ssl_sni -i autodiscover.kalinamall.ru }
|
||||||
use_backend be_rds if { req_ssl_sni -i rds.kalinamall.ru }
|
use_backend be_rds if { req_ssl_sni -i rds.kalinamall.ru }
|
||||||
|
|||||||
Reference in New Issue
Block a user