Files
reverse-proxy/docs/security/README.md
T

55 lines
3.3 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.
# Безопасность периметра 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)).