From 0ffa3c1fa428f7fa674a32c2b735708db06b7986 Mon Sep 17 00:00:00 2001 From: Thomas Dannenberg Date: Wed, 20 Aug 2025 08:59:29 +0000 Subject: [PATCH] =?UTF-8?q?Kapitel=206/README.md=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Kapitel 6/README.md | 161 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 161 insertions(+) create mode 100644 Kapitel 6/README.md diff --git a/Kapitel 6/README.md b/Kapitel 6/README.md new file mode 100644 index 0000000..947b5f4 --- /dev/null +++ b/Kapitel 6/README.md @@ -0,0 +1,161 @@ +📘 Kapitel 6: Vaultwarden (ohne Docker, systemd) +Logische Position: 6 (nach 5: WireGuard · vor 7: Nextcloud) + +Ziel: Vaultwarden als **native Binary** im Debian‑12‑LXC per **systemd** betreiben – ohne Docker. Veröffentlichung hinter Nginx Proxy Manager (HTTPS + WebSockets), öffentliche Registrierung deaktivieren, Admin‑Token setzen, optional SMTP, einfache Backup‑Routine. + +✅ Voraussetzungen +LXC: Debian 12 (Bookworm) · root +Empfohlen: 1 vCPU, **128–256 MB RAM**, ≄ 500 MB Speicher (plus Daten) +Netzwerk: IPv4/IPv6 im LAN +Extern optional: Nginx Proxy Manager + DynDNS/Subdomain (eigene Kapitel) + +đŸ§© Was wir aufbauen +Binary: /opt/vaultwarden/vaultwarden +Dienst: systemd‑Service unter /etc/systemd/system/vaultwarden.service +Ports (intern, nur Loopback): 127.0.0.1:8000 (HTTP/API), 127.0.0.1:3012 (WebSocket) +Persistenz: **/var/lib/vaultwarden** (enthĂ€lt /data) +Konfig per Datei: **/etc/vaultwarden.env** (DOMAIN, ADMIN\_TOKEN, SIGNUPS\_ALLOWED=false, optional SMTP\_\*) +Reverse‑Proxy: NPM leitet / → 8000 und **/notifications/hub → 3012** + +đŸ—ș Kapitelablauf (KurzĂŒberblick) + +1. System vorbereiten (Update, Tools, Systemnutzer anlegen) +2. Verzeichnisse & Rechte ( /opt/vaultwarden , /var/lib/vaultwarden ) +3. Vaultwarden‑Binary laden, nach /opt/vaultwarden legen, ausfĂŒhrbar machen +4. **/etc/vaultwarden.env** erstellen (DOMAIN, ADMIN\_TOKEN, 
) +5. systemd‑Service schreiben, aktivieren, Start prĂŒfen +6. NPM: Proxy Host + Custom Location (WebSockets) + SSL +7. Admin‑Backend testen, Signups aus, optional SMTP +8. Backup (Tar von /var/lib/vaultwarden) + +🔧 Kerneinstellungen (wichtig!) + +* **DOMAIN**: [https://pass.DEINE‑DOMAIN.tld](https://pass.DEINE‑DOMAIN.tld) (fĂŒr korrekte Links) +* **ADMIN\_TOKEN**: lange, zufĂ€llige Zeichenfolge (mind. 64 Zeichen) +* **SIGNUPS\_ALLOWED=false**: öffentliche Registrierung aus +* **WEBSOCKET\_ENABLED=true** + Weiterleitung **/notifications/hub → 3012** +* **ROCKET\_ADDRESS=127.0.0.1 / ROCKET\_PORT=8000** (nur lokal lauschen) +* **WEBSOCKET\_ADDRESS=127.0.0.1 / WEBSOCKET\_PORT=3012** + +📩 Installation (LXC, ohne Docker) +System & Tools: + +```bash +apt update && apt upgrade -y +apt install -y ca-certificates curl unzip +# Systemnutzer ohne Login +useradd --system --home /var/lib/vaultwarden --shell /usr/sbin/nologin vaultwarden || true + +# Verzeichnisse +mkdir -p /opt/vaultwarden +mkdir -p /var/lib/vaultwarden +chown -R vaultwarden:vaultwarden /var/lib/vaultwarden +``` + +Binary laden (URL der offiziellen Release‑Asset eintragen – linux x86\_64 gnu): + +```bash +export VW_URL="" # z.B. .../vaultwarden--x86_64-unknown-linux-gnu.tar.gz +curl -L "$VW_URL" -o /tmp/vaultwarden.tar.gz +mkdir -p /tmp/vw && tar -xzf /tmp/vaultwarden.tar.gz -C /tmp/vw +install -m 0755 /tmp/vw/vaultwarden /opt/vaultwarden/vaultwarden +# (Web Vault ist in den offiziellen Releases enthalten) +``` + +Konfiguration (/etc/vaultwarden.env): + +```env +DOMAIN=https://pass.DEINE-DOMAIN.tld +ADMIN_TOKEN=ErzeugeHierMindestens64Zeichen +SIGNUPS_ALLOWED=false +WEBSOCKET_ENABLED=true +ROCKET_ADDRESS=127.0.0.1 +ROCKET_PORT=8000 +WEBSOCKET_ADDRESS=127.0.0.1 +WEBSOCKET_PORT=3012 +# Optional SMTP +# SMTP_HOST=smtp.example.com +# SMTP_FROM=pass@example.com +# SMTP_PORT=587 +# SMTP_SECURITY=starttls +# SMTP_USERNAME=user +# SMTP_PASSWORD=deinPasswort +``` + +systemd‑Service (/etc/systemd/system/vaultwarden.service): + +```ini +[Unit] +Description=Vaultwarden (Bitwarden server compatible) – native +After=network.target + +[Service] +User=vaultwarden +Group=vaultwarden +EnvironmentFile=/etc/vaultwarden.env +ExecStart=/opt/vaultwarden/vaultwarden +WorkingDirectory=/var/lib/vaultwarden +# Ressourcen‑Schutz (optional, schlank halten) +LimitNOFILE=1048576 +PrivateTmp=true +ProtectSystem=full +ProtectHome=true +NoNewPrivileges=true + +[Install] +WantedBy=multi-user.target +``` + +Aktivieren & starten: + +```bash +systemctl daemon-reload +systemctl enable --now vaultwarden +systemctl status vaultwarden --no-pager +``` + +Erwartet: Dienst „active (running)“. + +🌐 NPM/Reverse Proxy (mit WebSockets) +**Proxy Host** anlegen: + +* Domain Names: pass.DEINE‑DOMAIN.tld +* Scheme: http · Forward Host/IP: 127.0.0.1 (oder LXC‑IP) · Forward Port: 8000 +* Block Common Exploits: an · Websockets Support: an + **Custom Location**: +* Location: /notifications/hub → Forward Host/IP: 127.0.0.1 (oder LXC‑IP) · Port: 3012 · Websockets an + **SSL**: +* Let’s Encrypt Zertifikat anfordern; Force SSL, HTTP/2, HSTS: an + +đŸ›Ąïž Erstkonfiguration (Web‑UI) + +* Aufruf: [https://pass.DEINE‑DOMAIN.tld](https://pass.DEINE‑DOMAIN.tld) +* Admin: [https://pass.DEINE‑DOMAIN.tld/admin](https://pass.DEINE‑DOMAIN.tld/admin) → Token = ADMIN\_TOKEN +* PrĂŒfen: Signups **aus** (SIGNUPS\_ALLOWED=false) +* Optional: SMTP setzen & Testmail senden +* Erstes Benutzerkonto anlegen und **2FA (TOTP/FIDO2)** aktivieren + +đŸ’Ÿ Backup (Basis) +Daten liegen in **/var/lib/vaultwarden**. Einfaches Backup: + +```bash +tar -czf /root/vaultwarden-backup-$(date +%F).tar.gz -C / var/lib/vaultwarden +``` + +Restore testweise separat prĂŒfen; regelmĂ€ĂŸig per Cron sichern. + +⚠ Stolperfallen + +* WebSockets nicht weitergeleitet → Live‑Sync/Push funktioniert nicht +* DOMAIN nicht auf https → fehlerhafte Links/Icons +* ADMIN\_TOKEN zu kurz/unsicher → Risiko fĂŒrs Admin‑Backend +* Signups offen gelassen → ungewollte Accounts + +🔗 Siehe auch +Kap. 3 Nginx Proxy Manager (Domain/HTTPS) +Kap. 4 DynDNS (Erreichbarkeit von außen) +Kap. 14 Backup (Basis, privat) +Kap. 7 Nextcloud (nĂ€chster Schritt) + +📜 Lizenz fĂŒr dieses Kapitel +Creative Commons Attribution (CC BY) – Nutzung/Weitergabe/Anpassung erlaubt, mit Namensnennung „Bratonien Tech“.