diff --git a/docs/07-proxy-ssl.md b/docs/07-proxy-ssl.md index 4500479..14a0feb 100644 --- a/docs/07-proxy-ssl.md +++ b/docs/07-proxy-ssl.md @@ -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; -``` \ No newline at end of file +``` +| Заголовок | Назначение | +|-----------|------------| +| **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) \ No newline at end of file