391 lines
14 KiB
Markdown
391 lines
14 KiB
Markdown
# 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.
|