Files
Homelab--Bratonein-Kontroll…/Kapitel 05/Premium Rohtext.md

391 lines
14 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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.

# Kapitel 5 Vaultwarden (Passwörter, 2FA)
Im Free-Teil haben wir Vaultwarden eingerichtet, eine sichere Verbindung über Nginx Proxy Manager hergestellt und den ersten Benutzer samt Admin-Zugang erstellt.
Damit steht eine funktionierende Einzelplatzlösung ideal für den Einstieg.
In diesem Teil aktivieren wir Funktionen, die Vaultwarden bereits mitbringt, aber nicht sofort sichtbar sind:
mehr Kontrolle, mehr Sicherheit und mehr Komfort direkt in der Oberfläche, ohne zusätzliche Tools.
Wir kümmern uns unter anderem um:
- **Benutzerzugänge für weitere Personen**
So können mehrere Nutzer gemeinsam arbeiten, ohne ihre Tresore zu vermischen.
- **Sammlungen & Rollen**
Gemeinsame Zugangsdaten für einzelne Bereiche mit klarer Trennung von Zuständigkeiten.
- **2FA-Pflicht aktivieren**
Jeder Benutzer muss beim Login einen zusätzlichen Sicherheitscode eingeben erzeugt per Authenticator-App.
- **Automatisierte Backups der verschlüsselten Datenbank**
Jeden Tag eine Sicherung mit Zeitstempel, vorbereitet für Restore oder Systemwechsel.
> [!NOTE]
> Wir greifen auf genau die Instanz zurück, die du im Free-Teil eingerichtet hast.
> Es ist keine Neuinstallation nötig wir aktivieren vorhandene Funktionen und nutzen sie konsequent.
---
## Nutzer verwalten & gemeinsam nutzen
Vaultwarden unterstützt mehrere Benutzer mit getrennten Zugriffen und gemeinsamen Bereichen.
Du kannst neue Benutzer auf zwei verschiedene Arten hinzufügen mit oder ohne E-Mail-Funktion.
### Variante 1: Benutzer per Einladung (wenn Mailversand aktiviert ist)
Wenn Vaultwarden korrekt E-Mails verschicken kann, kannst du neue Benutzer direkt über den Adminbereich einladen.
1. Melde dich mit deinem Admin-Konto an
2. Gehe zu **Adminbereich → Users → Invitations**
3. Gib die E-Mail-Adresse ein
4. Klicke auf **Invite User**
Die eingeladene Person erhält einen Registrierungslink per E-Mail.
Nach dem Anlegen des Kontos erscheint sie unter **Users**.
👉 *Screenshot geeignet: Einladung verschicken + empfangene E-Mail*
### E-Mail-Versand einrichten (optional)
Vaultwarden benötigt Zugang zu einem SMTP-Mailserver.
Trage dazu in der `.env` folgende Zeilen ein ersetzt durch deine Daten:
SMTP_HOST=smtp.example.com
SMTP_FROM=vault@example.com
SMTP_PORT=587
SMTP_SECURITY=starttls
SMTP_USERNAME=vault@example.com
SMTP_PASSWORD=DEIN_PASSWORT
Speichern und neu starten:
docker compose restart vaultwarden
> [!NOTE]
> SMTP ist **nicht zwingend erforderlich**.
> Wenn du keinen Mailversand einrichten möchtest, verwende stattdessen Variante 2.
👉 *Screenshot geeignet: .env mit ausgefülltem SMTP-Block*
### Variante 2: Manuelle Benutzeranlage ohne Mailversand
Wenn Vaultwarden keine E-Mails verschicken kann oder soll, kannst du die Registrierung kurzzeitig freischalten:
1. Gehe zu **Adminbereich → Settings → General**
2. Aktiviere **Allow new signups**
3. Teile dem neuen Nutzer folgenden Link mit:
`https://pass.DEINE-DOMAIN.tld/#/register`
4. Nach erfolgreicher Anmeldung: Option wieder deaktivieren
👉 *Screenshot geeignet: Aktivierte Option „Allow new signups“*
> [!TIP]
> Diese Methode ist ideal für Haushalte oder Teams, die Benutzer direkt anlegen, ohne auf E-Mail-Einladungen angewiesen zu sein.
### Eigene Tresore pro Benutzer
Jede Person hat einen eigenen, verschlüsselten Tresor.
Diese Bereiche sind voneinander getrennt kein Nutzer kann die Daten eines anderen einsehen.
> [!TIP]
> Auch der Admin hat keinen Zugriff auf andere Tresore das erhöht die Datensicherheit deutlich.
### Geteilte Zugänge mit Sammlungen
Um Logins oder Notizen gemeinsam zu nutzen, gibt es sogenannte Sammlungen.
1. Gehe zu **Adminbereich → Organizations**
2. Lege eine Organisation an
3. Erstelle darin eine oder mehrere Sammlungen (z.B. „Streaming-Dienste“)
4. Weise Nutzer zu und lege Rechte fest:
- Nur lesen
- Lesen und schreiben
- Adminrechte
👉 *Screenshot geeignet: Sammlungsverwaltung mit Benutzerzuordnung*
> [!NOTE]
> Die Kombination aus privatem Tresor + gemeinsamen Sammlungen erlaubt sauberes Arbeiten mit klaren Verantwortlichkeiten ganz ohne doppelte Accounts oder unsichere Weitergaben.
---
## Zwei-Faktor-Anmeldung verpflichtend aktivieren
Vaultwarden unterstützt die Anmeldung mit einem zusätzlichen Sicherheitscode sogenannte Zwei-Faktor-Authentifizierung (2FA).
Damit müssen Benutzer beim Login nicht nur ihr Passwort eingeben, sondern zusätzlich einen wechselnden Code, der z.B. von einer App auf dem Smartphone erzeugt wird.
Diese Codes basieren auf dem sogenannten **TOTP-Verfahren** („Time-based One-Time Password“).
Eine App wie **Bitwarden Authenticator**, **Aegis**, **FreeOTP** oder **Google Authenticator** zeigt alle 30 Sekunden einen neuen Code an.
Im Free-Teil konnten Nutzer TOTP optional aktivieren.
Jetzt sorgen wir dafür, dass **alle neuen und bestehenden Benutzer** TOTP verwenden müssen bevor sie Zugriff auf ihre Daten erhalten.
### Aktivierung im Adminbereich
1. Melde dich als Admin an
2. Öffne den **Adminbereich → Settings → Policies**
3. Aktiviere den Schalter **Require two-step login**
4. Klicke auf **Save**
👉 *Screenshot geeignet: Adminbereich → Policies mit aktiviertem Schalter*
> [!NOTE]
> Ab sofort sehen alle Benutzer beim nächsten Login einen Hinweis, dass sie 2FA einrichten müssen, bevor sie ihren Tresor nutzen können.
### Was sieht der Benutzer?
1. Nach der Passworteingabe erscheint ein QR-Code
2. Dieser muss mit einer Authenticator-App eingescannt werden
3. Danach wird der aktuelle Code eingegeben
4. Erst dann wird Zugriff auf den Tresor gewährt
> [!TIP]
> Sollte ein Nutzer sein Smartphone verlieren oder die App zurücksetzen, kann der Admin den Zugang über den Bereich **Users** → Nutzer auswählen → **Reset two-step login** zurücksetzen.
👉 *Screenshot geeignet: Benutzer-Ansicht beim 2FA-Setup (QR-Code + Eingabemaske)*
### Ergebnis
- Alle Benutzer nutzen 2FA keine Ausnahmen
- Der Schutz ist direkt in Vaultwarden eingebaut
- Die Verwaltung bleibt komplett in deiner Hand
## Automatische Sicherung der Datenbank und Schlüssel
Vaultwarden speichert alle sensiblen Daten Passwörter, Notizen, Zwei-Faktor-Codes im Ordner `/opt/vaultwarden/data`.
Damit bei einem Systemausfall keine Informationen verloren gehen, richten wir eine tägliche Sicherung ein.
Diese läuft automatisch im Hintergrund und speichert jeden Tag eine neue Datei mit Zeitstempel.
### Backup-Verzeichnis anlegen
Wir legen zuerst den Ordner an, in dem die Backups gespeichert werden.
1. Öffne die Proxmox-Oberfläche
2. Wähle den Vaultwarden-Container aus
3. Klicke im Menü auf **Konsole**
4. Gib dort ein:
mkdir -p /srv/ucc/backups/vaultwarden
👉 *Screenshot geeignet: Konsole mit erstellt Ordnerstruktur unter /srv/ucc/backups*
### Backup-Skript erstellen
Das tägliche Backup wird über ein kleines Skript gestartet, das wir jetzt anlegen.
1. Du bist weiterhin in der **Konsole des Vaultwarden-Containers**
2. Wechsle in das Verzeichnis für benutzerdefinierte Befehle:
cd /usr/local/bin
3. Öffne den Editor zum Erstellen des Skripts:
nano vaultwarden_backup.sh
Der Bildschirm ist nun leer.
Füge folgenden Inhalt ein **ohne Änderungen**, alles exakt übernehmen:
#!/bin/bash
DATUM=$(date +%Y-%m-%d_%H-%M)
BACKUP_DIR="/srv/ucc/backups/vaultwarden"
TARGET="$BACKUP_DIR/vaultwarden-$DATUM.tar.gz"
cd /opt/vaultwarden
tar -czf "$TARGET" data
Drücke danach:
- **Strg + O** (Datei speichern), bestätige mit **Enter**
- Dann **Strg + X** (Editor schließen)
Jetzt machen wir das Skript ausführbar:
chmod +x /usr/local/bin/vaultwarden_backup.sh
> [!TIP]
> Du kannst das Backup auch jederzeit manuell starten mit:
/usr/local/bin/vaultwarden_backup.sh
👉 *Screenshot geeignet: Nano mit eingegebenem Skript + Terminal mit chmod*
### Tägliche Ausführung per Cron einrichten
Damit das Backup jeden Tag automatisch läuft:
1. Gib in der Konsole ein:
crontab -e
2. Gehe mit den Pfeiltasten ganz ans Ende der Datei
3. Füge folgende Zeile ein:
30 2 * * * /usr/local/bin/vaultwarden_backup.sh
Diese Anweisung sorgt dafür, dass das Backup jeden Tag um **2:30 Uhr nachts** erstellt wird.
Speichern:
- **Strg + O** → Enter
- **Strg + X** → beenden
👉 *Screenshot geeignet: geöffnete Crontab mit eingetragener Zeitregel*
### Alte Backups automatisch löschen
Damit der Speicher nicht irgendwann voll läuft, löschen wir alte Sicherungen automatisch.
Standard sind **30 Tage** so bleibt für einen Monat immer ein vollständiges Backup erhalten.
> [!NOTE]
> Die Zeitspanne von 30 Tagen ist ein sinnvoller Kompromiss:
> Du kannst sie jederzeit anpassen z. B. auf 7 Tage (für wenig Speicher) oder 90 Tage (für zusätzliche Sicherheit).
Öffne wieder das bestehende Skript:
nano /usr/local/bin/vaultwarden_backup.sh
Ergänze am Ende der Datei folgende Zeile:
find "$BACKUP_DIR" -type f -name "vaultwarden-*.tar.gz" -mtime +30 -delete
Die fertige Datei sieht nun so aus:
#!/bin/bash
DATUM=$(date +%Y-%m-%d_%H-%M)
BACKUP_DIR="/srv/ucc/backups/vaultwarden"
TARGET="$BACKUP_DIR/vaultwarden-$DATUM.tar.gz"
cd /opt/vaultwarden
tar -czf "$TARGET" data
find "$BACKUP_DIR" -type f -name "vaultwarden-*.tar.gz" -mtime +30 -delete
Speichern und schließen:
- **Strg + O** → Enter
- **Strg + X**
👉 *Screenshot geeignet: vollständiges Skript mit zusätzlicher Löschzeile*
Die letzte Zeile durchsucht das Backup-Verzeichnis und löscht alle Dateien, die **älter als 30 Tage** sind.
Die Angabe `-mtime +30` bedeutet: alles, was vor mehr als 30 Tagen zuletzt geändert wurde.
> [!TIP]
> Du kannst die Anzahl der Tage ganz einfach anpassen:
> - `+7` → nur 1 Woche behalten
> - `+60` → 2 Monate behalten
> - `+90` → 3 Monate behalten
> [!WARNING]
> Diese Löschung ist dauerhaft.
> Achte darauf, dass du keine wichtigen Backups außerhalb des Intervalls versehentlich mitlöschst.
### Backup prüfen
Am nächsten Tag sollte im Verzeichnis `/srv/ucc/backups/vaultwarden` eine neue Datei liegen, z. B.:
vaultwarden-2025-10-06_02-30.tar.gz
Prüfen mit:
ls -lh /srv/ucc/backups/vaultwarden
> [!NOTE]
> Die Datei enthält eine komprimierte Kopie der verschlüsselten Vault-Daten.
> Deine Passwörter sind weiterhin geschützt sie können nur über Vaultwarden geöffnet werden.
👉 *Screenshot geeignet: Terminal mit Backup-Dateiliste*
### Wiederherstellung im Notfall
Wenn dein Server ausgetauscht oder neu installiert wurde, kannst du Vaultwarden mit dem letzten Backup vollständig wiederherstellen.
Dabei werden alle Benutzer, Tresore und Einstellungen automatisch mit übernommen.
#### Vorbereitung
1. Erstelle einen neuen Vaultwarden-Container, so wie im Free-Teil beschrieben
(bis einschließlich der `docker-compose.yml`)
2. Öffne auf deinem Hauptrechner **WinSCP** oder nutze die **Proxmox-Dateiverwaltung**
3. Verbinde dich mit dem neuen Container
- Host: IP-Adresse des neuen Containers
- Benutzer: `root`
- Port: `22`
4. Navigiere im Container nach `/opt/vaultwarden/`
👉 *Screenshot geeignet: WinSCP mit geöffnetem /opt/vaultwarden/ Ordner*
#### Backup-Datei übertragen
Übertrage die gewünschte Sicherung aus deinem alten System oder aus deinem Backup-Verzeichnis:
- Wenn du von einem anderen Rechner kopierst (Linux oder macOS):
scp /srv/ucc/backups/vaultwarden/vaultwarden-2025-10-06_02-30.tar.gz root@192.168.1.50:/opt/vaultwarden/
- Wenn du von Windows aus arbeitest:
Ziehe die Datei im WinSCP-Fenster einfach in den Ordner `/opt/vaultwarden/`
👉 *Screenshot geeignet: WinSCP-Dateiübertragung des Backup-Archivs*
#### Backup entpacken
Wechsle in die Konsole des Containers:
cd /opt/vaultwarden
tar -xzf vaultwarden-2025-10-06_02-30.tar.gz
Damit wird der Ordner `data` mit allen gesicherten Inhalten wiederhergestellt.
#### Container starten
Starte Vaultwarden neu:
docker compose up -d
> [!NOTE]
> Wenn der Dienst bereits läuft, kannst du ihn auch einfach neu starten:
docker compose restart vaultwarden
Nach wenigen Sekunden sollte die Login-Seite wie gewohnt erreichbar sein.
👉 *Screenshot geeignet: Konsole mit erfolgreicher Wiederherstellung und laufendem Container*
#### Überprüfung
Öffne im Browser `https://pass.DEINE-DOMAIN.tld`
Melde dich mit deinem bekannten Benutzerkonto an.
Alle Einträge, Sammlungen und Einstellungen sollten wieder vorhanden sein.
> [!TIP]
> Prüfe zusätzlich, ob die automatischen Backups auf dem neuen System korrekt eingerichtet sind.
> Wenn nötig, wiederhole kurz die Cronjob-Konfiguration aus dem vorherigen Abschnitt.
### Ergebnis
- Vollständige Sicherung aller Daten täglich, automatisch
- Zeitgestempelte Dateien im übersichtlichen Verzeichnis
- Alte Backups werden automatisch gelöscht
- Wiederherstellung ist jederzeit möglich ohne Cloud, ohne Drittanbieter
## Zusammenfassung & Nächste Schritte
Mit den erweiterten Funktionen holst du das Maximum aus deiner Vaultwarden-Instanz heraus.
Statt nur für dich selbst ist das System jetzt bereit für mehrere Benutzer, gemeinsame Nutzung und zusätzliche Sicherheit.
### Was du jetzt erreicht hast:
- Neue Benutzer können sicher eingeladen oder manuell hinzugefügt werden
- Gemeinsame Sammlungen sorgen für klare Struktur ohne Datenverlust oder Vermischung
- Zwei-Faktor-Authentifizierung ist für alle verpflichtend aktiviert
- Alle Daten werden täglich automatisch gesichert vollständig verschlüsselt
- Alte Backups werden nach 30 Tagen automatisch gelöscht, um Speicher zu sparen
- Eine Wiederherstellung ist jederzeit möglich ohne Cloud, ohne Drittanbieter
👉 *Screenshot geeignet: Adminbereich mit mehreren Nutzern + aktiver 2FA-Policy + Backup-Ordner mit Dateien*
> [!TIP]
> Vaultwarden wächst mit.
> Du kannst jederzeit weitere Sammlungen, Organisationen oder Rollen hinzufügen ohne das System neu aufzusetzen.
> [!NOTE]
> Alle Erweiterungen sind direkt in Vaultwarden enthalten.
> Du brauchst keine zusätzlichen Dienste oder Software nur ein bisschen Konfiguration.