Files
reverse-proxy/README.md
T

69 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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:
```bash
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. Проверка и перезапуск:
```bash
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](https://github.com/PTah/reverse-proxy)
Если репозиторий ещё пустой:
```bash
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](https://git-scm.com/) и доступ к GitHub (Personal Access Token или SSH).
## Лицензия
Конфигурация поставляется как есть, без гарантий. Используйте на свой риск.