Update file 07-proxy-ssl.md

This commit is contained in:
Administrator 2026-03-20 15:39:27 +05:00
parent a702ba4f97
commit 1978136531

View File

@ -8,6 +8,10 @@ Nginx Proxy Manager (NPM) работает на хосте `gateway` (192.168.1.
- **Порты**: 80 (HTTP), 443 (HTTPS), 81 (админка)
- **Хранилище данных**: `/opt/npm/data`, `/opt/npm/letsencrypt`
## Доступ к админке NPM
Административный интерфейс доступен по адресу `https://192.168.1.201:81` (только локально). Учётные данные хранятся в зашифрованном виде во встроенной базе данных SQLite.
## Проксируемые домены
| Домен | Назначение | Бэкенд | SSL (Let's Encrypt) |
@ -49,4 +53,42 @@ add_header X-Content-Type-Options nosniff always;
add_header X-Frame-Options SAMEORIGIN always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Permissions-Policy "geolocation=(), microphone=(), camera=()" always;
```
```
| Заголовок | Назначение |
|-----------|------------|
| **Strict-Transport-Security (HSTS)** | Заставляет браузер всегда использовать HTTPS, предотвращая атаки понижения протокола. |
| **X-Content-Type-Options** | Запрещает браузеру выполнять MIME-sniffing, снижая риск атак типа XSS. |
| **X-Frame-Options** | Защищает от clickjacking, разрешая встраивание только в страницы того же источника. |
| **Referrer-Policy** | Контролирует, какая информация о referer передаётся при переходе на другие сайты. |
| **Permissions-Policy** | Отключает ненужные API (геолокация, камера, микрофон) для всех страниц. |
## Мониторинг NPM
- Логи NPM собираются **Promtail** (на gateway) и отправляются в **Loki**.
- В Grafana настроены дашборды для отслеживания ошибок и статистики запросов.
- Ключевые метрики: количество запросов, коды ответов (4xx, 5xx), загрузка сертификатов.
## Проблемы и рекомендации
### 🔴 Отсутствие заголовков безопасности
Большинство прокси не имеют настроенных заголовков HSTS, X-Content-Type-Options и других. Это повышает риски атак. **Рекомендуется** добавить заголовки для всех публичных доменов через интерфейс NPM (вкладка Advanced).
### 🟡 Использование тега `latest`
Образ NPM (`jc21/nginx-proxy-manager:latest`) обновляется неконтролируемо. **Рекомендуется** зафиксировать версию в `docker-compose.yml` (например, `jc21/nginx-proxy-manager:2.12.3`).
### 🟠 Прокси с Offline статусом
`qb.zailon.ru` недоступен. Проверьте:
- Запущен ли контейнер qBittorrent на хосте `torrent`?
- Слушает ли он порт 8080 (`ss -tulnwp | grep 8080`)?
- Корректно ли правило прокси (IP и порт)?
### 🟢 Мониторинг
Убедитесь, что логи NPM попадают в Loki. Проверьте конфигурацию Promtail на gateway. В Grafana создайте дашборд для отслеживания ошибок 5xx и истечения сертификатов.
---
**Связанные разделы:**
- [Сервисы и порты](06-services.md)
- [Сеть и доступ](04-network.md)
- [Мониторинг и логирование](08-monitoring.md)
- [Безопасность](10-security.md)