docs(security): план UFW, hardening HAProxy и бэкендов, скрипты deploy.
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
# Безопасность периметра 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)).
|
||||
Reference in New Issue
Block a user