Files
Sergey Antropoff 48df10b17e Prepare 0.1.0 for lab release: durable handlers, HTTP Compose, CI, and pulumi-tests.
- 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)
2026-07-18 04:18:05 +03:00

49 lines
3.2 KiB
Markdown
Raw Permalink 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.
**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
или кластерам. Не полагайтесь на симулятор для тестирования защиты от утечки
учётных данных к реальным провайдерам.