Kapitel 5/Free Rohtext.md hinzugefügt
This commit is contained in:
553
Kapitel 5/Free Rohtext.md
Normal file
553
Kapitel 5/Free Rohtext.md
Normal file
@@ -0,0 +1,553 @@
|
||||
# Kapitel 5 – Vaultwarden (Passwörter, 2FA)
|
||||
|
||||
## Einleitung
|
||||
|
||||
Zugangsdaten gehören zu den sensibelsten Informationen im digitalen Alltag.
|
||||
Ob Streaming-Tools, Creator-Plattformen, E-Mail-Konten, Domains oder Selfhosting-Dienste – jeder Dienst hat sein eigenes Passwort, manche erfordern zusätzlich Zwei-Faktor-Codes (2FA).
|
||||
|
||||
### Das Problem mit Passwörtern im Alltag
|
||||
|
||||
Oft landen Passwörter:
|
||||
- in Browsern, die ohne Hauptkennwort speichern,
|
||||
- in Textdateien auf dem Desktop,
|
||||
- oder werden für mehrere Konten wiederverwendet.
|
||||
|
||||
Zwei-Faktor-Codes liegen dann verstreut in Authenticator-Apps auf dem Handy – ohne Backup und nicht synchronisierbar.
|
||||
|
||||
> [!WARNING]
|
||||
> Wer 2FA-Codes verliert, verliert oft dauerhaft den Zugriff.
|
||||
> Viele Dienste bieten keinen Wiederherstellungsprozess ohne die Codes.
|
||||
|
||||
### Vaultwarden als Lösung
|
||||
|
||||
Vaultwarden ist ein selbst gehosteter Passwort-Manager.
|
||||
Er speichert Passwörter und 2FA-Codes verschlüsselt auf dem eigenen Server – vollständig kompatibel mit den offiziellen Bitwarden-Apps für Browser, Desktop und Mobilgeräte.
|
||||
|
||||
Der Zugriff erfolgt über eine zentrale Weboberfläche, erreichbar unter einer eigenen Domain wie `https://pass.DEINE-DOMAIN.tld`, mit gültigem SSL-Zertifikat und WebSocket-Sync.
|
||||
|
||||
> [!TIP]
|
||||
> Vaultwarden ist die leichtgewichtige, Docker-basierte Variante von Bitwarden – ohne Cloud, ohne Abo, ohne Datenweitergabe.
|
||||
|
||||
### Ziel dieses Kapitels
|
||||
|
||||
Wir richten Vaultwarden in einem eigenen Debian‑12‑LXC per Docker Compose ein und machen ihn per Nginx Proxy Manager erreichbar.
|
||||
Dabei setzen wir auf verschlüsselte Kommunikation (HTTPS), geschützte WebSocket-Verbindung und ein gehärtetes Admin-Backend mit Hash-Login.
|
||||
|
||||
Am Ende des Kapitels steht ein voll einsatzfähiger Passwort-Manager:
|
||||
- auf eigener Hardware,
|
||||
- mit geschlossener Registrierung,
|
||||
- sicher erreichbar von jedem Gerät.
|
||||
|
||||
---
|
||||
|
||||
## Voraussetzungen & Ressourcen
|
||||
|
||||
Vaultwarden wird in einem eigenen LXC-Container unter Debian 12 betrieben.
|
||||
Ein LXC ist ein leichtgewichtiger Container unter Proxmox – ideal für einzelne Dienste wie diesen. Die Einrichtung haben wir bereits in Kapitel 1 Schritt für Schritt gezeigt.
|
||||
|
||||
### Anforderungen an den Container
|
||||
|
||||
- **Betriebssystem:** Debian 12
|
||||
- **CPU:** 1 Kern
|
||||
- **RAM:** 512 MB
|
||||
- **Festplatte:** 8 GB
|
||||
- **IP-Adresse:** 192.168.1.50 (per DHCP-Reservierung im Router fest zugewiesen)
|
||||
- **Internetverbindung:** erforderlich für Paketinstallation und Docker-Download
|
||||
|
||||
> [!TIP]
|
||||
> Vergib die IP-Adresse über eine **DHCP-Reservierung im Router**, nicht außerhalb des DHCP-Bereichs.
|
||||
> So stellst du sicher, dass die Adresse dauerhaft erhalten bleibt – ohne Konflikte mit anderen Geräten.
|
||||
|
||||
👉 *Screenshot geeignet: Proxmox – LXC erstellen → Allgemeine Einstellungen mit Hostname „vaultwarden“*
|
||||
|
||||
### Subdomain & Reverse Proxy
|
||||
|
||||
Damit Vaultwarden später über eine Webadresse erreichbar ist, benötigen wir:
|
||||
|
||||
- Eine Subdomain wie `pass.meinedomain.de`
|
||||
- Einen laufenden Nginx Proxy Manager (siehe Kapitel 3), der HTTPS-Anfragen an den Vaultwarden-Container weiterleiten kann
|
||||
|
||||
> [!NOTE]
|
||||
> Du kannst auch eine kostenlose DynDNS-Adresse verwenden – z. B. über DuckDNS.
|
||||
> Wichtig ist nur, dass der Proxy Manager Anfragen zuverlässig an die IP `192.168.1.50` weiterleitet.
|
||||
|
||||
👉 *Screenshot geeignet: DuckDNS-Dashboard mit Subdomain + NPM-Dashboard mit Proxy Host*
|
||||
|
||||
## Schritt-für-Schritt-Anleitung
|
||||
|
||||
### System vorbereiten
|
||||
|
||||
Wir starten im frisch erstellten LXC-Container.
|
||||
Öffne in Proxmox den Container `vaultwarden` und klicke im Menü auf **Konsole**.
|
||||
|
||||
Zuerst bringen wir das System auf den aktuellen Stand und installieren die benötigten Hilfspakete.
|
||||
Diese sorgen dafür, dass externe Paketquellen sicher eingebunden und später Docker korrekt installiert werden kann.
|
||||
|
||||
apt update
|
||||
apt upgrade -y
|
||||
apt install -y ca-certificates curl gnupg lsb-release
|
||||
|
||||
> [!NOTE]
|
||||
> Diese Pakete ermöglichen verschlüsselte Verbindungen, das Verifizieren von Signaturen und das Erkennen der verwendeten Systemversion.
|
||||
|
||||
👉 *Screenshot geeignet: Proxmox-Konsole mit apt upgrade und Paketinstallation*
|
||||
|
||||
### Docker und Compose installieren
|
||||
|
||||
Vaultwarden wird als Docker-Anwendung betrieben.
|
||||
Dafür installieren wir die aktuelle Docker Engine und das dazugehörige Compose-Plugin direkt aus dem offiziellen Repository.
|
||||
|
||||
1. Verzeichnis für den Signaturschlüssel anlegen:
|
||||
|
||||
mkdir -p /etc/apt/keyrings
|
||||
|
||||
2. Docker-Signaturschlüssel herunterladen und abspeichern:
|
||||
|
||||
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
|
||||
|
||||
3. Docker-Repository hinzufügen:
|
||||
|
||||
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
|
||||
$(. /etc/os-release && echo $VERSION_CODENAME) stable" > /etc/apt/sources.list.d/docker.list
|
||||
|
||||
4. Paketlisten aktualisieren und Docker installieren:
|
||||
|
||||
apt update
|
||||
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
||||
|
||||
5. Docker beim Systemstart automatisch aktivieren:
|
||||
|
||||
systemctl enable --now docker
|
||||
|
||||
> [!TIP]
|
||||
> Prüfe die Installation mit folgenden Befehlen:
|
||||
|
||||
docker --version
|
||||
docker compose version
|
||||
|
||||
👉 *Screenshot geeignet: Terminalausgabe mit Docker- und Compose-Version*
|
||||
|
||||
> [!WARNING]
|
||||
> Falls Docker im Container nicht startet:
|
||||
> In Proxmox → Container auswählen → Reiter „Optionen“ → Haken bei „Nesting“ und „keyctl“ setzen → Container neu starten.
|
||||
|
||||
👉 *Screenshot geeignet: Proxmox → CT-Optionen mit aktivierten Haken*
|
||||
|
||||
### Projektstruktur & .env-Datei
|
||||
|
||||
Wir legen jetzt die Verzeichnisstruktur für Vaultwarden an und erstellen eine Konfigurationsdatei `.env`.
|
||||
Diese Datei enthält später wichtige Einstellungen wie die Adresse des Dienstes und (optional) SMTP-Daten für Mailversand.
|
||||
|
||||
Öffne die Konsole des Containers und gib folgende Befehle ein:
|
||||
|
||||
mkdir -p /opt/vaultwarden/data
|
||||
cd /opt/vaultwarden
|
||||
nano .env
|
||||
|
||||
Es öffnet sich der Nano-Editor. Trage hier Folgendes ein:
|
||||
|
||||
DOMAIN=https://pass.DEINE-DOMAIN.tld
|
||||
SIGNUPS_ALLOWED=false
|
||||
|
||||
# Optional: SMTP für Verifizierung und Passwort-Reset
|
||||
# SMTP_HOST=smtp.example.com
|
||||
# SMTP_FROM=pass@example.com
|
||||
# SMTP_PORT=587
|
||||
# SMTP_SECURITY=starttls
|
||||
# SMTP_USERNAME=nutzername
|
||||
# SMTP_PASSWORD=deinSMTPpasswort
|
||||
|
||||
> [!TIP]
|
||||
> Trage die Domain unbedingt **mit https://** ein.
|
||||
> Ohne Protokollangabe können später Links in Mails oder der Weboberfläche fehlerhaft sein.
|
||||
|
||||
> [!NOTE]
|
||||
> Die Option `SIGNUPS_ALLOWED=false` deaktiviert die offene Registrierung.
|
||||
> Du aktivierst sie später kurzzeitig manuell, um deinen ersten Nutzer anzulegen.
|
||||
|
||||
Speichern mit:
|
||||
Strg + O → Enter → Strg + X
|
||||
|
||||
👉 *Screenshot geeignet: Nano-Editor mit ausgefüllter .env-Datei*
|
||||
|
||||
### docker-compose.yml erstellen
|
||||
|
||||
Vaultwarden wird über Docker Compose gestartet.
|
||||
Dazu legen wir eine Datei namens `docker-compose.yml` an, die beschreibt, welches Image verwendet wird, auf welchen Ports der Dienst erreichbar ist und wo die Daten gespeichert werden.
|
||||
|
||||
Gib in der Konsole ein:
|
||||
|
||||
nano docker-compose.yml
|
||||
|
||||
Füge folgenden Inhalt ein:
|
||||
|
||||
services:
|
||||
vaultwarden:
|
||||
image: vaultwarden/server:latest
|
||||
container_name: vaultwarden
|
||||
restart: unless-stopped
|
||||
env_file: .env
|
||||
environment:
|
||||
- DOMAIN=${DOMAIN}
|
||||
volumes:
|
||||
- ./data:/data
|
||||
ports:
|
||||
- "8000:80"
|
||||
- "3012:3012"
|
||||
|
||||
> [!NOTE]
|
||||
> Port 8000 wird später im Nginx Proxy Manager als Weiterleitungsziel eingetragen.
|
||||
> Port 3012 ist für WebSockets zuständig – ohne ihn funktioniert der Live-Sync zwischen Geräten nicht.
|
||||
|
||||
Speichern mit:
|
||||
Strg + O → Enter → Strg + X
|
||||
|
||||
👉 *Screenshot geeignet: docker-compose.yml im Nano-Editor mit vollständigem Inhalt*
|
||||
|
||||
### Container starten & Logs prüfen
|
||||
|
||||
Sobald alle Dateien angelegt sind, starten wir Vaultwarden zum ersten Mal.
|
||||
Dabei wird das Docker-Image heruntergeladen, der Container erstellt und im Hintergrund ausgeführt.
|
||||
|
||||
Gib in der Konsole ein:
|
||||
|
||||
docker compose up -d
|
||||
|
||||
> [!TIP]
|
||||
> Der Parameter `-d` sorgt dafür, dass der Container im Hintergrund („detached“) läuft.
|
||||
|
||||
Prüfe danach, ob der Container fehlerfrei gestartet wurde:
|
||||
|
||||
docker compose logs -f --tail=80 vaultwarden
|
||||
|
||||
Wenn alles korrekt eingerichtet ist, erscheint nach einigen Sekunden die Meldung:
|
||||
|
||||
Rocket has launched from http://0.0.0.0:80
|
||||
|
||||
Das bedeutet, dass Vaultwarden intern erfolgreich auf Port 80 gestartet wurde.
|
||||
|
||||
> [!NOTE]
|
||||
> Wenn stattdessen Fehlermeldungen wie „permission denied“ oder „/data not writable“ auftauchen,
|
||||
> überprüfe die Rechte des Datenordners oder lösche einen fehlerhaften Container mit:
|
||||
|
||||
docker compose down
|
||||
docker compose up -d
|
||||
|
||||
👉 *Screenshot geeignet: Terminal mit „Rocket has launched...“-Ausgabe im Log*
|
||||
|
||||
### Veröffentlichung im Nginx Proxy Manager
|
||||
|
||||
Vaultwarden läuft nun intern auf Port 8000 des Containers.
|
||||
Damit der Dienst auch von außen über eine Domain wie `https://pass.DEINE-DOMAIN.tld` erreichbar ist, richten wir ihn im Nginx Proxy Manager (NPM) als neuen Proxy Host ein.
|
||||
|
||||
Öffne die NPM-Weboberfläche:
|
||||
http://<IP-des-NPM-Containers>:81
|
||||
|
||||
> [!NOTE]
|
||||
> Die Einrichtung von NPM haben wir ausführlich in Kapitel 3 gezeigt.
|
||||
> Falls du dir nicht sicher bist, wie du einen Proxy Host anlegst, sieh dir das dortige Beispiel erneut an.
|
||||
|
||||
#### Proxy Host hinzufügen
|
||||
|
||||
1. Gehe auf **Hosts → Proxy Hosts**
|
||||
2. Klicke auf **Add Proxy Host**
|
||||
|
||||
Fülle die Felder wie folgt aus:
|
||||
|
||||
- **Domain Names:** `pass.DEINE-DOMAIN.tld`
|
||||
- **Scheme:** `http`
|
||||
- **Forward Hostname / IP:** `192.168.1.50`
|
||||
- **Forward Port:** `8000`
|
||||
- **Block Common Exploits:** aktivieren
|
||||
- **Websockets Support:** aktivieren
|
||||
|
||||
👉 *Screenshot geeignet: Proxy Host Maske mit IP 192.168.1.50 und Port 8000*
|
||||
|
||||
#### WebSocket-Weiterleitung hinzufügen
|
||||
|
||||
Vaultwarden nutzt WebSockets für den Live-Sync zwischen Geräten.
|
||||
Dafür muss eine spezielle Weiterleitung für den Pfad `/notifications/hub` eingerichtet werden.
|
||||
|
||||
1. Klicke im Proxy Host auf den Reiter **Custom Locations**
|
||||
2. Wähle **Add Location**
|
||||
|
||||
Trage ein:
|
||||
|
||||
- **Location:** `/notifications/hub`
|
||||
- **Forward Hostname / IP:** `192.168.1.50`
|
||||
- **Forward Port:** `3012`
|
||||
- **Websockets Support:** aktivieren
|
||||
|
||||
Speichern und zurück zum Hauptfenster des Proxy Hosts.
|
||||
|
||||
👉 *Screenshot geeignet: Custom Location mit WebSocket-Port 3012*
|
||||
|
||||
#### SSL-Zertifikat erstellen
|
||||
|
||||
Wechsle in den Reiter **SSL** und richte ein gültiges HTTPS-Zertifikat ein:
|
||||
|
||||
- **SSL Certificate:** Request a new SSL Certificate
|
||||
- **Force SSL:** aktivieren
|
||||
- **HTTP/2 Support:** aktivieren
|
||||
- **HSTS Enabled:** aktivieren
|
||||
- **Agree to terms:** Haken setzen
|
||||
|
||||
> [!TIP]
|
||||
> Achte darauf, dass die Domain bereits auf deinen Server zeigt.
|
||||
> Die Validierung von Let’s Encrypt funktioniert nur, wenn die Ports 80 und 443 korrekt weitergeleitet wurden.
|
||||
|
||||
Speichern. Der Proxy Host wird nun aktiv.
|
||||
Rufe im Browser `https://pass.DEINE-DOMAIN.tld` auf.
|
||||
Die Login-Seite von Vaultwarden sollte jetzt erscheinen.
|
||||
|
||||
👉 *Screenshot geeignet: Browseransicht mit Vaultwarden-Loginmaske unter HTTPS-Adresse*
|
||||
|
||||
### Admin-Absicherung & Benutzer anlegen
|
||||
|
||||
Vaultwarden besitzt ein separates Admin-Interface unter:
|
||||
`https://pass.DEINE-DOMAIN.tld/admin`
|
||||
|
||||
Beim ersten Aufruf erscheint ein Warnhinweis:
|
||||
Die Nutzung eines einfachen Admin-Tokens in Klartext ist unsicher.
|
||||
Stattdessen hinterlegen wir einen verschlüsselten Zugriffscode im Format **Argon2 PHC**.
|
||||
|
||||
#### Sicheren Admin-Token erzeugen
|
||||
|
||||
Vaultwarden enthält ein eingebautes Werkzeug zum Erzeugen dieses Hashes.
|
||||
|
||||
Gib in der Konsole des Containers ein:
|
||||
|
||||
docker exec -it vaultwarden /vaultwarden hash --preset owasp
|
||||
|
||||
Du wirst zweimal nach dem gewünschten Admin-Passwort gefragt.
|
||||
Am Ende erscheint ein langer Code, der mit `$argon2id$` beginnt.
|
||||
Diesen **komplett kopieren** – er wird später im Adminbereich eingetragen.
|
||||
|
||||
> [!NOTE]
|
||||
> Dieser Code ist nicht das Passwort selbst, sondern ein sicherer Rechenwert daraus.
|
||||
> Du verwendest weiterhin das **eingegebene Passwort**, nicht den Hash zum Login.
|
||||
|
||||
👉 *Screenshot geeignet: Konsole mit Ausgabe des Argon2-Hashes*
|
||||
|
||||
#### Hash im Webinterface eintragen
|
||||
|
||||
1. Öffne `https://pass.DEINE-DOMAIN.tld/admin`
|
||||
2. Logge dich mit dem neuen Passwort ein
|
||||
3. Gehe zu **Settings → General**
|
||||
4. Trage den kopierten Hash in das Feld **Admin Token / Argon2 PHC** ein
|
||||
5. Speichern
|
||||
|
||||
Ab jetzt ist der Adminbereich mit dem sicheren Hash geschützt.
|
||||
Der alte Klartext-Eintrag darf entfernt werden.
|
||||
|
||||
> [!TIP]
|
||||
> Öffne die `.env`-Datei und lösche die Zeile mit `ADMIN_TOKEN=`
|
||||
> Danach den Container neu starten:
|
||||
|
||||
sed -i '/^ADMIN_TOKEN=/d' /opt/vaultwarden/.env
|
||||
cd /opt/vaultwarden && docker compose restart vaultwarden
|
||||
|
||||
👉 *Screenshot geeignet: Adminbereich mit gespeichertem Hash + Login-Maske*
|
||||
|
||||
#### Ersten Benutzer anlegen
|
||||
|
||||
Vaultwarden lässt keine offenen Registrierungen zu – genau das haben wir in der `.env` vorher deaktiviert.
|
||||
Um den ersten Benutzer anzulegen, aktivieren wir die Anmeldung **kurzzeitig manuell**:
|
||||
|
||||
1. Adminbereich öffnen → **Settings → General**
|
||||
2. Option **Allow new signups** aktivieren → Speichern
|
||||
3. In einem zweiten Tab `https://pass.DEINE-DOMAIN.tld/#/register` öffnen
|
||||
4. Benutzer registrieren
|
||||
5. Danach Anmeldung testen und die Registrierung wieder deaktivieren
|
||||
|
||||
> [!TIP]
|
||||
> Alternativ kannst du Nutzer auch über **Users → Invitations** per E-Mail einladen, wenn SMTP korrekt konfiguriert ist.
|
||||
|
||||
👉 *Screenshot geeignet: Registrierung und späterer Login im Tresor*
|
||||
|
||||
### Backups & Wiederherstellung
|
||||
|
||||
Vaultwarden speichert alle Daten in einem lokalen Ordner – das betrifft sowohl Passwörter, Benutzer, Konfigurationen als auch Anhänge und TOTP-Codes.
|
||||
|
||||
Wichtig:
|
||||
Nicht der Docker-Container ist relevant, sondern der **Ordner `/opt/vaultwarden/data`**.
|
||||
Nur dieser Ordner muss regelmäßig gesichert werden.
|
||||
|
||||
#### Manuelles Backup erstellen
|
||||
|
||||
Ein manuelles Backup kannst du direkt im Container-Terminal erstellen:
|
||||
|
||||
cd /opt/vaultwarden
|
||||
tar -czf /root/vaultwarden-backup-$(date +%F).tar.gz data
|
||||
|
||||
> [!TIP]
|
||||
> Wenn du maximale Datensicherheit willst, kannst du Vaultwarden vor dem Backup kurz stoppen:
|
||||
|
||||
docker compose stop vaultwarden
|
||||
|
||||
> [!NOTE]
|
||||
> Für kleine Setups ist ein Online-Backup im laufenden Betrieb meist ausreichend.
|
||||
|
||||
Nach dem Backup startest du den Container bei Bedarf wieder:
|
||||
|
||||
docker compose start vaultwarden
|
||||
|
||||
Die Backup-Datei liegt danach unter `/root/` und heißt z. B. `vaultwarden-backup-2025-10-04.tar.gz`
|
||||
|
||||
👉 *Screenshot geeignet: Terminalausgabe nach erfolgreicher Archivierung*
|
||||
|
||||
#### Wiederherstellung
|
||||
|
||||
Falls du Vaultwarden auf einem neuen System wiederherstellen musst:
|
||||
|
||||
1. Neue Instanz bis zur `docker-compose.yml` einrichten
|
||||
2. Backup-Datei nach `/opt/vaultwarden/` kopieren
|
||||
3. Archiv entpacken:
|
||||
|
||||
tar -xzf vaultwarden-backup-2025-10-04.tar.gz
|
||||
|
||||
4. Container starten:
|
||||
|
||||
docker compose up -d
|
||||
|
||||
Das System ist danach wieder wie vorher nutzbar – inklusive aller Benutzer, Einstellungen und Daten.
|
||||
|
||||
> [!WARNING]
|
||||
> Stelle sicher, dass die Zugriffsrechte auf den Ordner `data` erhalten bleiben.
|
||||
> Andernfalls kann Vaultwarden die Datenbank nicht korrekt öffnen.
|
||||
|
||||
---
|
||||
|
||||
## Troubleshooting & Tipps
|
||||
|
||||
### Vaultwarden lädt nicht im Browser
|
||||
|
||||
Wenn sich die Seite `https://pass.DEINE-DOMAIN.tld` nicht öffnet:
|
||||
|
||||
- Öffne in Proxmox den Container `vaultwarden`
|
||||
- Klicke auf **Konsole**
|
||||
- Gib ein:
|
||||
|
||||
docker compose ps
|
||||
|
||||
In der Spalte „State“ muss „running“ stehen.
|
||||
|
||||
Falls nicht, starte den Container erneut:
|
||||
|
||||
docker compose up -d
|
||||
|
||||
👉 *Screenshot geeignet: Ausgabe von `docker compose ps` mit Status „running“*
|
||||
|
||||
> [!TIP]
|
||||
> Du kannst auch testen, ob Vaultwarden intern erreichbar ist:
|
||||
> Öffne `http://192.168.1.50:8000` im Browser.
|
||||
> Wenn dort die Login-Maske erscheint, funktioniert Vaultwarden – das Problem liegt am Proxy.
|
||||
|
||||
### Die Domain funktioniert, aber es erscheint keine Login-Maske
|
||||
|
||||
Öffne den Nginx Proxy Manager und gehe wie folgt vor:
|
||||
|
||||
- Klicke auf den Proxy Host für `pass.DEINE-DOMAIN.tld`
|
||||
- Prüfe:
|
||||
- IP-Adresse: `192.168.1.50`
|
||||
- Port: `8000`
|
||||
- Haken bei „Block Common Exploits“ und „Websockets Support“
|
||||
|
||||
👉 *Screenshot geeignet: Proxy Host Übersicht mit richtiger IP und Port*
|
||||
|
||||
- Wechsle in den Reiter **Custom Locations**
|
||||
- Prüfe:
|
||||
- Location: `/notifications/hub`
|
||||
- Ziel-Port: `3012`
|
||||
- WebSocket-Support: aktiviert
|
||||
|
||||
👉 *Screenshot geeignet: Custom Location mit aktivem Websocket-Haken*
|
||||
|
||||
> [!TIP]
|
||||
> Änderungen speichern, Proxy Host kurz deaktivieren und wieder aktivieren.
|
||||
|
||||
### Die Seite lädt, aber nichts funktioniert richtig
|
||||
|
||||
Wenn z. B. das Design fehlt oder Buttons nicht reagieren:
|
||||
|
||||
- Öffne die `.env`-Datei mit:
|
||||
|
||||
nano /opt/vaultwarden/.env
|
||||
|
||||
- Prüfe, ob die Domain mit `https://` eingetragen ist:
|
||||
|
||||
DOMAIN=https://pass.DEINE-DOMAIN.tld
|
||||
|
||||
Fehlt das `https://`, tragen wir es nach und starten neu:
|
||||
|
||||
docker compose restart vaultwarden
|
||||
|
||||
👉 *Screenshot geeignet: Nano-Editor mit korrigierter DOMAIN-Zeile*
|
||||
|
||||
### Ich kann mich nicht im Adminbereich anmelden
|
||||
|
||||
- Rufe `https://pass.DEINE-DOMAIN.tld/admin` auf
|
||||
- Gib das Passwort ein, das du beim Erzeugen des Hashs vergeben hast
|
||||
|
||||
> [!NOTE]
|
||||
> Der Admin-Login funktioniert **nicht mit dem Hash**, sondern mit dem dazugehörigen Passwort.
|
||||
|
||||
Wenn du keinen Zugriff mehr hast:
|
||||
|
||||
- Neuen Hash erzeugen:
|
||||
|
||||
docker exec -it vaultwarden /vaultwarden hash --preset owasp
|
||||
|
||||
- Hash im Adminbereich unter **Settings → General → Admin Token** einfügen
|
||||
- Container neu starten
|
||||
|
||||
👉 *Screenshot geeignet: Adminbereich mit Argon2 PHC Feld*
|
||||
|
||||
> [!WARNING]
|
||||
> Falls nichts mehr geht:
|
||||
> Vorübergehend `ADMIN_TOKEN=deinPasswort` in `.env` setzen → dann zurück auf Hash wechseln.
|
||||
|
||||
|
||||
### Keine Live-Synchronisation zwischen Geräten
|
||||
|
||||
Wenn du Vaultwarden auf zwei Geräten gleichzeitig geöffnet hast und eine Änderung (z. B. ein neues Passwort) **nicht automatisch** auf dem anderen Gerät erscheint, liegt das fast immer an einer fehlenden WebSocket-Verbindung.
|
||||
|
||||
Vaultwarden verwendet WebSockets, um Änderungen sofort an alle verbundenen Geräte zu übertragen – ohne Neuladen.
|
||||
Damit das funktioniert, muss im Nginx Proxy Manager eine **zusätzliche Weiterleitung** eingerichtet sein.
|
||||
|
||||
Öffne den Proxy Host in NPM, der auf `pass.DEINE-DOMAIN.tld` zeigt:
|
||||
|
||||
1. Wechsle in den Reiter **Custom Locations**
|
||||
2. Stelle sicher, dass dort eine Weiterleitung für **`/notifications/hub`** eingerichtet ist
|
||||
3. Die Ziel-IP ist wie beim Haupt-Proxy `192.168.1.50`, aber der **Port ist `3012`**
|
||||
4. Aktiviere auch hier den Haken **„Websockets Support“**
|
||||
|
||||
> [!TIP]
|
||||
> Diese Weiterleitung ist zwingend erforderlich – ohne sie funktioniert die automatische Aktualisierung nicht.
|
||||
> Du musst dann manuell die Seite neu laden, um Änderungen zu sehen.
|
||||
|
||||
👉 *Screenshot geeignet: Custom Location mit Pfad `/notifications/hub`, Port 3012 und aktivem WebSocket-Haken*
|
||||
|
||||
---
|
||||
|
||||
## Zusammenfassung & Nächste Schritte
|
||||
|
||||
Mit Vaultwarden hast du jetzt einen vollwertigen Passwort-Manager im eigenen Homelab eingerichtet – sicher, unabhängig und kompatibel mit allen offiziellen Bitwarden-Apps.
|
||||
|
||||
### Was du jetzt erreicht hast:
|
||||
|
||||
- Vaultwarden läuft als Docker-Anwendung in einem eigenen Debian-LXC
|
||||
- Der Dienst ist über `https://pass.DEINE-DOMAIN.tld` erreichbar
|
||||
- Das Admin-Interface ist mit einem sicheren Hash-Zugang geschützt
|
||||
- Die WebSocket-Verbindung sorgt für Live-Synchronisierung
|
||||
- Backups sind eingerichtet und schnell wiederherstellbar
|
||||
|
||||
👉 *Screenshot geeignet: Loginmaske in Browser + aktiver Proxy Host in NPM*
|
||||
|
||||
> [!TIP]
|
||||
> Wenn du den Tresor auch unterwegs nutzen willst, installiere die Bitwarden-App auf deinem Smartphone
|
||||
> und stelle unter „Server-URL“ deine eigene Adresse ein:
|
||||
> `https://pass.DEINE-DOMAIN.tld`
|
||||
|
||||
> [!NOTE]
|
||||
> Du kannst Vaultwarden jetzt direkt im Alltag nutzen – zum Speichern von Passwörtern, Anlegen von Ordnern, Hinterlegen von TOTP-Codes und für sicheren Zugriff von überall.
|
||||
Reference in New Issue
Block a user