55 lines
3.3 KiB
Markdown
55 lines
3.3 KiB
Markdown
# Безопасность периметра HAProxy (kalinamall.ru)
|
||
|
||
План защиты хоста **haproxy.kalinamall.ru** и **бэкендов** за ним. HAProxy слушает **25**, **80**, **443**; фильтрация по SNI/Host и allowlist уже в `haproxy.cfg`, но **UFW на хосте inactive** — ниже поэтапное включение **defense in depth**.
|
||
|
||
## Модель угроз (кратко)
|
||
|
||
| Уровень | Что закрывает |
|
||
|---------|----------------|
|
||
| **MikroTik / провайдер** | DDoS, geo, лишние порты до DMZ |
|
||
| **UFW на HAProxy** | Вход только 25/80/443 + SSH с доверенных IP |
|
||
| **HAProxy ACL** | Неизвестный SNI, allowlist по сервисам |
|
||
| **UFW на бэкендах** | Сервисы доступны **только с IP HAProxy** (`192.168.160.117`) |
|
||
| **Приложение** | Auth OWA, RD Gateway, Gitea, SAC, 1С |
|
||
|
||
Обход HAProxy (VPN в `192.168.160.0/24`, прямой RDP) — отдельная политика; см. [backend-hosts.md](backend-hosts.md).
|
||
|
||
## Документы
|
||
|
||
| Файл | Содержание |
|
||
|------|------------|
|
||
| [architecture.md](architecture.md) | Схема потоков, зоны, принципы |
|
||
| [haproxy-host.md](haproxy-host.md) | Hardening Ubuntu, UFW, SSH, fail2ban, HAProxy |
|
||
| [backend-hosts.md](backend-hosts.md) | Правила для каждого бэкенда |
|
||
| [deployment-plan.md](deployment-plan.md) | **Пошаговый план** внедрения (фазы 0–5) |
|
||
| [checklist.md](checklist.md) | Проверки после внедрения |
|
||
|
||
## Скрипты
|
||
|
||
| Скрипт | Назначение |
|
||
|--------|------------|
|
||
| [scripts/security/haproxy-ufw-apply.sh](../../scripts/security/haproxy-ufw-apply.sh) | UFW на HAProxy (dry-run по умолчанию) |
|
||
| [scripts/security/haproxy-ufw.env.example](../../scripts/security/haproxy-ufw.env.example) | Пример env для HAProxy |
|
||
| [scripts/security/backend-ufw-from-haproxy.sh](../../scripts/security/backend-ufw-from-haproxy.sh) | UFW на бэкенде: порт только с HAProxy |
|
||
| [scripts/security/backend-ufw.env.example](../../scripts/security/backend-ufw.env.example) | Пример env для бэкенда |
|
||
|
||
## Быстрый старт (после чтения deployment-plan)
|
||
|
||
```bash
|
||
# на HAProxy — сначала dry-run
|
||
sudo cp ~/reverse-proxy/scripts/security/haproxy-ufw.env.example /etc/haproxy/security/haproxy-ufw.env
|
||
sudo nano /etc/haproxy/security/haproxy-ufw.env # SSH_ALLOWED, при необходимости порты
|
||
sudo bash ~/reverse-proxy/scripts/security/haproxy-ufw-apply.sh
|
||
sudo bash ~/reverse-proxy/scripts/security/haproxy-ufw-apply.sh --apply
|
||
```
|
||
|
||
На каждом бэкенде — [backend-hosts.md](backend-hosts.md) и `backend-ufw-from-haproxy.sh`.
|
||
|
||
## Связь с конфигом HAProxy
|
||
|
||
Allowlist-файлы в `/etc/haproxy/` (**не** заменяют UFW):
|
||
|
||
- `git-sac-allowed`, `rds-allowed`, `1c-allowed`, `zabbix-allowed`, `syno-allowed`
|
||
|
||
Сервисы **без** allowlist на 443: **Exchange** (`ext`, `autodiscover`), **sac-api**, **SMTP 25** — усилить на уровне приложения и мониторинга; при необходимости добавить allowlist или rate-limit (см. [haproxy-host.md](haproxy-host.md)).
|