reverse-proxy

Периметровая конфигурация HAProxy для сети kalinamall.ru: Exchange, RDS, 1С, почтовый шлюз KSMG, ограниченный RDP и SSH.

TLS: на целевых серверах используются wildcard-сертификаты GlobalSign; HAProxy на 443 работает в режиме TCP + SNI и не терминирует TLS — сертификаты остаются на бэкендах.

Соответствие имён и адресов

Служба Внешнее имя (клиенты) Внутренний хост / IP Порт снаружи
Microsoft Exchange ext.kalinamall.ru fifth.kalinamall.ru — 192.168.160.42 443 (TCP/SNI)
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
Почтовый шлюз (KSMG) ksmg.kalinamall.ru ksmg.kalinamall.ru — 192.168.160.57 25
RDP (публичный IP / DNS при необходимости) itis.b26.kalinamall.ru — 192.168.160.198 3389
SSH (Ubuntu) (публичный IP) 192.168.160.85 22

DNS: записи A для ext, rds, erp, ksmg (и при необходимости для входа по RDP/SSH) должны указывать на публичный IP хоста с HAProxy.

Установка

  1. Установите HAProxy 2.4+ (нужны req_ssl_sni и tcp-request content accept для SNI).

  2. Скопируйте haproxy.cfg в /etc/haproxy/haproxy.cfg.

  3. Списки доверенных адресов для RDP и SSH:

    sudo mkdir -p /etc/haproxy/trusted
    sudo cp trusted/rdp.lst.example /etc/haproxy/trusted/rdp.lst
    sudo cp trusted/ssh.lst.example /etc/haproxy/trusted/ssh.lst
    

    Отредактируйте rdp.lst и ssh.lst: укажите свои подсети и IP (по одному адресу или CIDR на строку). Удалите заглушку 127.0.0.1/32, когда появятся реальные адреса.

  4. Проверка и перезапуск:

    sudo haproxy -c -f /etc/haproxy/haproxy.cfg
    sudo systemctl reload haproxy
    

Проверка ssl verify none на бэкендах

В backend для 443 указано ssl verify none, чтобы health-check и при необходимости установка соединения не ломались на внутренних именах/SAN. Если вы выпустите внутренние доверенные CA и зададите их в системе, можно включить проверку (verify required + ca-file).

Порты на фаерволе

Откройте с интернета только: 25, 22, 3389, 443 (и при использовании — 8404 для stats). Остальной трафик — по политике безопасности.

Публикация в GitHub

Репозиторий: https://github.com/PTah/reverse-proxy

Если репозиторий ещё пустой:

cd reverse-proxy
git init
git add .
git commit -m "Initial HAProxy config for kalinamall.ru perimeter"
git branch -M main
git remote add origin https://github.com/PTah/reverse-proxy.git
git push -u origin main

Требуется Git и доступ к GitHub (Personal Access Token или SSH).

Лицензия

Конфигурация поставляется как есть, без гарантий. Используйте на свой риск.

S
Description
Настройка HAProxy на внешнем периметре для проброса соединений внутрь сети (Exchange Server, почта, git)
Readme 357 KiB
Languages
Shell 83.1%
PowerShell 16.9%