48df10b17e
- Harden DB-backed handlers and seed profiles; align client wire shapes for cluster resources, QEMU config, and node SSL fields - Serve plain HTTP on Compose :8006; keep TLS optional (--profile tls) and terminate HTTPS at Kubernetes Ingress - Add pulumi-tests (full contract surface majors 6–9 + BPG lifecycle) and make pulumi-tests - Ship bilingual docs, CHANGELOG, SECURITY, CONTRIBUTING, and GitHub Actions (make ci + Compose/Helm validation)
49 lines
3.2 KiB
Markdown
49 lines
3.2 KiB
Markdown
**Language / Язык:** [English](../security.md) | [Русский](security.md)
|
||
|
||
# Безопасность
|
||
|
||
Политика репозитория и репортинг: [SECURITY.md](../../SECURITY.md).
|
||
|
||
## Модель угроз лаборатории
|
||
|
||
Этот проект — **локальный / CI лабораторный симулятор**. Он не закалён как
|
||
multi-tenant публичный сервис Proxmox. Учётные данные по умолчанию, demo-контролы UI
|
||
и эндпоинты совместимости удобны для разработки и намеренно открыты в стандартном
|
||
Compose-стеке.
|
||
|
||
Не выставляйте порт `8006` в недоверенные сети без дополнительных мер,
|
||
которые вы обеспечите сами. Хост `:8006` — lab HTTPS API-шлюз (у реального PVE
|
||
на этом порту HTTPS). Хост **`:8007` этим стеком не используется** (на железе
|
||
обычно PBS). См. [Порты и TLS](configuration.md#порты-и-tls).
|
||
|
||
## Учётные данные и секреты
|
||
|
||
- Пароли и секреты API-токенов хранятся как scrypt-хеши.
|
||
- Значения тикетов подписываются HMAC и краткоживущие.
|
||
- CSRF привязывает мутации к сессиям по тикету.
|
||
- Логи редактируют распознанные представления тикетов, паролей и токенов.
|
||
- Ответы create/regenerate токена показывают секрет один раз; GET его никогда не
|
||
выводит.
|
||
|
||
Меняйте `TICKET_SIGNING_KEY` для любой общей лаборатории. Замените seeded-пароли и
|
||
токены перед демонстрацией другим людям.
|
||
|
||
## TLS-материалы
|
||
|
||
`docker/tls/` содержит встроенный self-signed сертификат для локального шлюза. Он
|
||
нужен, чтобы неизменённые TLS-клиенты (например, proxmoxer) могли подключаться.
|
||
**Никогда** не переиспользуйте эти файлы в production.
|
||
|
||
## Администрирование симулятора
|
||
|
||
Сейчас **нет** отдельно аутентифицированной control plane `/_simulator`.
|
||
Helper-маршруты Web UI под `/ui/api/*` и `/admin/compatibility*` доступны, когда
|
||
процесс достижим. Считайте границей доверия сетевую экспозицию.
|
||
|
||
## Симулированные внешние системы
|
||
|
||
LDAP sync stamps, pending-состояние OpenID, ACME и эндпоинты Ceph сохраняют только
|
||
локальное состояние симулятора. Они не открывают реальные подключения к внешним IdP
|
||
или кластерам. Не полагайтесь на симулятор для тестирования защиты от утечки
|
||
учётных данных к реальным провайдерам.
|