Server lassen sich anlegen, prüfen, bearbeiten und löschen. Proxmox liefert ab Werk ein selbst signiertes Zertifikat; der Admin sieht es vor dem Speichern und bestätigt den SHA-256-Fingerprint. Der Pin wird in einem eigenen undici-Connector geprüft, sodass eine fremde Gegenstelle das Token nie zu sehen bekommt. Weder Prüfung noch Pin ist im Schema, im Client und per CHECK ausgeschlossen. Fehler von Proxmox werden zu Ursache und Hinweis; bei 403 nennt der Hinweis das fehlende Recht samt Pfad. Getestet gegen einen HTTPS-Mock und im gebauten Stand auf Desktop und 390 px. Closes #002 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1.8 KiB
1.8 KiB
#002 Server-Verwaltung und Verschlüsselung
Status: erledigt Meilenstein: v0.1.0 Labels: feature, sicherheit Geschätzt: 6 h Tatsächlich: 0 h 11 min
Ziel
Proxmox-Server anlegen, bearbeiten, löschen; Geheimnisse verschlüsselt.
Aufgaben
- AES-256-GCM-Helfer mit Versionspräfix, Tests (falscher Schlüssel, manipulierte Daten) – mit #001
- Modell
Server, Services, REST/api/v1/server, Formular mit Token-ID/Secret - TLS: Fingerprint holen (
POST /server/pruefen), anzeigen, bestätigen, pinnen - Proxmox-Client mit undici-Agent und Fingerprint-Vergleich, UPID-Warten
- SSH optional: Schlüsselpaar erzeugen, Einzeiler anzeigen (Host-Key-Pin folgt mit dem SSH-Test in #003)
- Protokolleintrag je Änderung (geänderte Felder, nie Werte von Geheimnissen)
- Server-Umschalter in der Seitenleiste, Serverliste auf der Übersicht
Akzeptanzkriterien
- Secret erscheint nie in API-Antworten, Protokoll oder Logs (Test)
- Falscher Fingerprint → klare Fehlermeldung, Verbindung getrennt bevor das Token gesendet wird (Test)
- Playwright: Anlegen gegen Proxmox-Mock mit selbst signiertem Zertifikat, Desktop und 390 px
Abhängigkeiten
#001
Notizen / Entscheidungen
- TLS-Sitzungs-Cache aus: eine wiederaufgenommene TLS-Sitzung schickt kein Zertifikat, der Pin wäre nicht prüfbar.
- „Weder TLS-Prüfung noch Pin“ ist unmöglich – im Schema, im Client und als CHECK in der Datenbank.
- Adresse ohne Schema/Port wird zu
https://host:8006ergänzt. - ssh2 ohne native Beschleuniger (
allowBuilds: false): reines JavaScript reicht, kein Compiler im Image. - Proxmox schreibt Fehlermeldungen in die HTTP-Statuszeile;
Permission check failed (/pfad, Recht)wird zu einem Hinweis mit Recht und Pfad.