feat(PROJ-66): Keyfile-Escrow-Hinweis bei Installation ausgeben
install.sh gibt das frisch generierte Keyfile nach der Erzeugung einmalig aus (beide Installationspfade), mit Aufforderung es sofort in einen Passwort-Safe (Bitwarden) zu verschieben. Backup ist ohne dieses Keyfile wertlos — der Hinweis darf nicht vom "mach ich später" verschluckt werden, da der Wert danach nirgends mehr sichtbar abrufbar ist.
This commit is contained in:
@@ -269,6 +269,17 @@ selbst nicht verfügbar oder kompromittiert ist.
|
||||
- Kein Blocker für die restlichen ACs — unabhängig von PBS/App-Backup
|
||||
umsetzbar, kleiner Zusatzschritt (Bitwarden-Eintrag anlegen, kein Code).
|
||||
|
||||
**Umgesetzt (2026-07-04):** `install.sh` gibt das frisch generierte Keyfile
|
||||
direkt nach der Erzeugung einmalig auf der Konsole aus (`print_keyfile_escrow_warning()`,
|
||||
beide Installationspfade — Docker- und Native-Modus), mit deutlichem Hinweis,
|
||||
den Wert sofort in einen Passwort-Safe zu verschieben. Verhindert, dass der
|
||||
Escrow-Schritt vom Bequemlichkeitsgrund "mach ich später" verschluckt wird —
|
||||
der Wert steht sonst nirgends mehr sichtbar zur Verfügung, sobald die
|
||||
Installations-Shell geschlossen ist (Keyfile-Datei selbst ist `chmod 400`,
|
||||
nicht mehr casual auslesbar). Bereits bestehende Installationen (Keyfile
|
||||
existiert schon) bekommen die Ausgabe NICHT erneut — dafür manuell
|
||||
`cat /etc/archivmail/keyfile` einmalig ausführen und in Bitwarden nachtragen.
|
||||
|
||||
## Aufbewahrungsdauer / Rotation
|
||||
|
||||
- Vorschlag: Tägliche Backups, Rotation nach Generationen-Prinzip:
|
||||
|
||||
+19
@@ -16,6 +16,23 @@ info() { echo -e "${BLUE}[..]${NC} $*"; }
|
||||
warn() { echo -e "${YELLOW}[!!]${NC} $*"; }
|
||||
die() { echo -e "${RED}[ERR]${NC} $*" >&2; exit 1; }
|
||||
|
||||
# PROJ-66: Ein Backup (App-Backup oder PBS/Snapshot) ist ohne dieses Keyfile
|
||||
# wertlos — der Store bleibt Chiffretext. Der Inhalt wird EINMALIG bei der
|
||||
# Generierung ausgegeben, damit er sofort in einen Passwort-Safe (z.B.
|
||||
# Bitwarden Secure Note, siehe features/PROJ-66-backup-strategie.md) verschoben
|
||||
# werden kann, statt sich später darauf zu verlassen, dass irgendein Backup
|
||||
# das Keyfile schon mitgesichert hat.
|
||||
print_keyfile_escrow_warning() {
|
||||
local keyfile_path="$1"
|
||||
echo
|
||||
warn "WICHTIG — Keyfile jetzt sichern (Restore ist ohne dieses Keyfile unmöglich):"
|
||||
echo -e "${YELLOW}$(cat "$keyfile_path")${NC}"
|
||||
warn "Diesen Wert in einen separaten Passwort-Safe kopieren (z.B. Bitwarden Secure"
|
||||
warn "Note, eigene Collection mit eingeschränktem Zugriff) — unabhängig von jedem"
|
||||
warn "Server-Backup. Ohne Keyfile sind gesicherte Mail-Dateien nicht entschlüsselbar."
|
||||
echo
|
||||
}
|
||||
|
||||
[[ $EUID -eq 0 ]] || die "Bitte als root ausführen: sudo bash install.sh"
|
||||
|
||||
# ── OS-Prüfung: nur Debian 13 (trixie) ──────────────────────────────────────
|
||||
@@ -143,6 +160,7 @@ https://download.docker.com/linux/debian $(. /etc/os-release && echo "$VERSION_C
|
||||
openssl rand -base64 32 > "$CONFIG_DIR/keyfile"
|
||||
chmod 400 "$CONFIG_DIR/keyfile"
|
||||
log "Keyfile generiert: $CONFIG_DIR/keyfile"
|
||||
print_keyfile_escrow_warning "$CONFIG_DIR/keyfile"
|
||||
else
|
||||
log "Keyfile existiert bereits – wird nicht überschrieben"
|
||||
fi
|
||||
@@ -451,6 +469,7 @@ install_native() {
|
||||
chmod 400 "$CONFIG_DIR/keyfile"
|
||||
chown "$AM_USER:$AM_USER" "$CONFIG_DIR/keyfile"
|
||||
log "Keyfile generiert: $CONFIG_DIR/keyfile"
|
||||
print_keyfile_escrow_warning "$CONFIG_DIR/keyfile"
|
||||
else
|
||||
log "Keyfile existiert bereits – wird nicht überschrieben"
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user