- 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)
3.2 KiB
Language / Язык: English | Русский
Безопасность
Политика репозитория и репортинг: SECURITY.md.
Модель угроз лаборатории
Этот проект — локальный / CI лабораторный симулятор. Он не закалён как multi-tenant публичный сервис Proxmox. Учётные данные по умолчанию, demo-контролы UI и эндпоинты совместимости удобны для разработки и намеренно открыты в стандартном Compose-стеке.
Не выставляйте порт 8006 в недоверенные сети без дополнительных мер,
которые вы обеспечите сами. Хост :8006 — lab HTTPS API-шлюз (у реального PVE
на этом порту HTTPS). Хост :8007 этим стеком не используется (на железе
обычно PBS). См. Порты и 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 или кластерам. Не полагайтесь на симулятор для тестирования защиты от утечки учётных данных к реальным провайдерам.