In unserer zunehmend digitalen Welt sind Passwörter der Schlüssel zu unserem gesamten Online-Leben. Von E-Mails über soziale Medien bis hin zu Bankkonten – überall werden Anmeldedaten benötigt. Die schiere Anzahl unterschiedlicher Passwörter, die wir uns merken müssen, führt oft zu riskanten Praktiken: zu einfache Passwörter, die Wiederverwendung von Passwörtern oder die Speicherung in ungesicherten Textdateien. Hier kommen Passwort-Manager ins Spiel. Sie generieren sichere, komplexe Passwörter für jede Ihrer Anmeldungen und speichern diese verschlüsselt in einem sogenannten „Vault“.
Während viele Menschen auf Cloud-basierte Lösungen wie LastPass oder 1Password setzen, bevorzugen technisch versierte Nutzer, die vollständige Kontrolle über ihre Daten behalten möchten, eine Self-Hosting-Lösung. Eine hervorragende, ressourcenschonende und sichere Option ist Vaultwarden, eine Open-Source-Alternative zu Bitwarden. Und wo ließe sich diese besser hosten als auf einem bewährten Hypervisor wie Proxmox VE, verpackt in einem effizienten LXC-Container?
Diese umfassende Schritt-für-Schritt-Anleitung führt Sie durch den gesamten Prozess der Installation und Konfiguration von Vaultwarden auf Ihrem Proxmox-Server als LXC. Am Ende haben Sie Ihren eigenen, sicheren und privaten Passwort-Manager, über den Sie die volle Kontrolle haben.
Warum Vaultwarden?
Vaultwarden (ehemals Bitwarden_RS) ist eine in Rust geschriebene, quelloffene und inoffizielle Implementierung des Bitwarden-Servers API. Es ist vollständig kompatibel mit den offiziellen Bitwarden-Clients (Desktop, Browser-Erweiterungen, mobile Apps), verbraucht jedoch deutlich weniger Ressourcen als der offizielle Bitwarden-Server, der auf .NET basiert. Dies macht es zur idealen Wahl für Home-Server oder Systeme mit begrenzten Ressourcen.
- Kompatibilität: Funktioniert nahtlos mit allen offiziellen Bitwarden-Clients.
- Leichtgewicht: Sehr ressourcenschonend, ideal für kleine Server oder Raspberry Pis.
- Sicherheit: Bietet die gleiche starke End-to-End-Verschlüsselung wie Bitwarden.
- Open Source: Transparenz und eine aktive Community, die zur Sicherheit beiträgt.
- Funktionsumfang: Umfasst grundlegende Bitwarden-Funktionen wie Synchronisation, sichere Passwortgenerierung, Multi-Faktor-Authentifizierung (MFA) und Organisationsfunktionen.
Warum Proxmox LXC?
Proxmox VE ist eine leistungsstarke Open-Source-Virtualisierungsplattform, die es Ihnen ermöglicht, virtuelle Maschinen (VMs) und Linux-Container (LXCs) auf einem einzigen Host zu betreiben. Für Anwendungen wie Vaultwarden sind LXC-Container oft die bessere Wahl als VMs, und das aus guten Gründen:
- Effizienz: LXCs teilen sich den Kernel des Host-Systems, was den Overhead im Vergleich zu VMs erheblich reduziert. Sie starten schneller und verbrauchen weniger RAM und CPU-Zyklen.
- Isolation: Obwohl sie denselben Kernel teilen, sind LXCs voneinander und vom Host isoliert. Dies gewährleistet eine gute Trennung und Sicherheit für Ihre Anwendungen.
- Verwaltung: Proxmox bietet eine intuitive Weboberfläche zur einfachen Erstellung, Verwaltung und Sicherung von LXCs (Snapshots, Backups).
- Ressourcenmanagement: Sie können CPU, RAM und Speicherplatz flexibel zuweisen und bei Bedarf anpassen.
Voraussetzungen für die Installation
Bevor wir mit der Installation beginnen, stellen Sie sicher, dass Sie die folgenden Punkte erfüllt haben:
- Ein Proxmox VE-Server ist installiert und läuft.
- Sie haben Zugriff auf die Proxmox-Weboberfläche (normalerweise auf Port 8006).
- Grundlegende Linux-Kenntnisse (Umgang mit der Kommandozeile, `apt`, `cd`, `mkdir`, Texteditoren wie `nano`).
- Eine stabile Internetverbindung für den Proxmox-Host.
- Ein SSH-Client (z.B. PuTTY unter Windows oder Terminal unter Linux/macOS), um auf den Proxmox-Host und später auf den LXC zuzugreifen.
- Ausreichend freie Ressourcen auf Ihrem Proxmox-Server (mindestens 1 CPU-Kern, 512MB RAM, 8-16GB Speicherplatz für den LXC).
Schritt-für-Schritt-Anleitung zur Installation von Vaultwarden als LXC
Schritt 1: Vorbereitung des LXC-Containers in Proxmox
Zuerst müssen wir einen neuen Linux-Container auf Ihrem Proxmox-Server erstellen.
- Login in Proxmox: Öffnen Sie Ihren Webbrowser und melden Sie sich bei Ihrer Proxmox-Weboberfläche an (z.B.
https://<Ihre_Proxmox_IP>:8006
). - Container-Template herunterladen: Bevor Sie einen Container erstellen können, benötigen Sie ein OS-Template. Wählen Sie in der Proxmox-Oberfläche Ihren Datenspeicher (z.B.
local
) und navigieren Sie zu „CT Templates“ > „Templates“. Klicken Sie auf „Download“ und wählen Sie ein aktuelles Debian-Template (z.B. Debian 12 (bookworm)) aus. - Neuen LXC-Container erstellen: Klicken Sie oben rechts auf „CT erstellen“.
- Allgemein:
- Hostname: Geben Sie einen aussagekräftigen Namen ein (z.B.
vaultwarden-lxc
). - Passwort: Vergeben Sie ein sicheres Passwort für den Root-Benutzer des Containers.
- Hostname: Geben Sie einen aussagekräftigen Namen ein (z.B.
- Vorlage: Wählen Sie das zuvor heruntergeladene Debian-Template aus.
- Festplatte: Geben Sie eine Größe für die virtuelle Festplatte an. 8GB-16GB sind für Vaultwarden ausreichend.
- CPU: Weisen Sie mindestens 1 CPU-Kern zu. Für Heimgebrauch ist dies in der Regel genug.
- Arbeitsspeicher: Geben Sie 512MB bis 1024MB RAM an. Vaultwarden ist sehr ressourcenschonend, 512MB reichen meistens aus.
- Netzwerk:
- Modus: Wählen Sie „Statische IP-Adresse“.
- IPv4-Adresse/CIDR: Geben Sie eine freie IP-Adresse in Ihrem Netzwerk mit Subnetzmaske an (z.B.
192.168.1.100/24
). - Gateway: Geben Sie die IP-Adresse Ihres Routers ein (z.B.
192.168.1.1
).
- DNS: Sie können die Standardeinstellungen beibehalten oder die IP Ihres Routers bzw. eines öffentlichen DNS-Servers (z.B.
8.8.8.8
für Google DNS) eintragen. - Bestätigen: Überprüfen Sie die Einstellungen und klicken Sie auf „Fertigstellen“. Stellen Sie sicher, dass „Unprivilegierten Container erstellen“ aktiviert ist, da dies eine bessere Sicherheit bietet.
- Container starten: Sobald der Container erstellt wurde, wählen Sie ihn in der Proxmox-Oberfläche aus und klicken Sie auf „Starten“.
Schritt 2: Erster Login und Systemaktualisierung im LXC
Nachdem der Container gestartet ist, müssen wir ihn aktualisieren und einige grundlegende Pakete installieren.
- Login:
- Über die Proxmox-Weboberfläche: Wählen Sie den gestarteten LXC aus und klicken Sie auf „Konsole“.
- Per SSH (empfohlen): Öffnen Sie Ihr Terminal oder Ihren SSH-Client und verbinden Sie sich mit der statischen IP-Adresse Ihres LXC:
ssh root@<LXC_IP_Adresse>
. Geben Sie das bei der Erstellung festgelegte Root-Passwort ein.
- System aktualisieren: Führen Sie die folgenden Befehle aus, um die Paketlisten zu aktualisieren und alle installierten Pakete auf den neuesten Stand zu bringen:
apt update apt upgrade -y
- Nützliche Pakete installieren: Installieren Sie einige grundlegende Tools, die Sie möglicherweise benötigen:
apt install curl wget git nano -y
Schritt 3: Installation von Docker und Docker Compose
Vaultwarden wird am besten als Docker-Container betrieben, da dies die Installation, Konfiguration und Updates erheblich vereinfacht. Docker Compose hilft uns dabei, den Container mit allen notwendigen Einstellungen zu starten.
- Docker installieren: Der offizielle Docker-Installations-Script ist der einfachste Weg:
curl -fsSL https://get.docker.com -o get-docker.sh sh get-docker.sh
Der Script installiert Docker Engine, Containerd und Docker Compose. Wenn Sie eine ältere Debian-Version oder Probleme haben, können Sie auch die offizielle Docker-Dokumentation für eine manuelle Installation konsultieren.
- Docker-Berechtigungen hinzufügen (optional, aber empfohlen): Wenn Sie Vaultwarden nicht als Root-Benutzer, sondern als ein anderer Benutzer betreiben möchten, fügen Sie diesen Benutzer zur Docker-Gruppe hinzu:
usermod -aG docker <Ihr_Benutzername>
Nachdem Sie diesen Befehl ausgeführt haben, müssen Sie sich abmelden und erneut anmelden, damit die Änderungen wirksam werden.
- Docker-Installation überprüfen: Führen Sie einen einfachen Docker-Befehl aus, um sicherzustellen, dass Docker korrekt installiert wurde:
docker run hello-world
Sie sollten eine Bestätigungsnachricht sehen, dass Docker funktioniert.
Schritt 4: Konfiguration von Vaultwarden mit Docker Compose
Jetzt erstellen wir die docker-compose.yml
-Datei, die Docker anweist, wie Vaultwarden gestartet werden soll.
- Verzeichnis für Vaultwarden erstellen: Erstellen Sie ein Verzeichnis, in dem die Konfigurationsdateien und Daten von Vaultwarden gespeichert werden:
mkdir ~/vaultwarden cd ~/vaultwarden
docker-compose.yml
-Datei erstellen: Öffnen Sie einen Texteditor (z.B.nano
) und erstellen Sie die Dateidocker-compose.yml
:nano docker-compose.yml
Fügen Sie den folgenden Inhalt ein:
version: '3.8' services: vaultwarden: image: vaultwarden/server:latest container_name: vaultwarden restart: always environment: # Hier können Sie Ihre Vaultwarden-spezifischen Umgebungsvariablen definieren. # Eine vollständige Liste finden Sie in der Vaultwarden-Dokumentation. # https://github.com/dani-garcia/vaultwarden/wiki/Configuration-overview # Geben Sie hier Ihre Domäne an, falls Sie einen Reverse Proxy verwenden. # Andernfalls können Sie es leer lassen oder die IP des LXC verwenden. # DOMAIN: "https://vaultwarden.ihre-domain.de" # Legt fest, ob neue Benutzer sich selbst registrieren können. # Setzen Sie dies nach der Registrierung Ihres ersten Administrators auf 'false'! SIGNUPS_ALLOWED: "true" # Aktiviert WebSocket für die Echtzeit-Synchronisation. Immer 'true' lassen. WEBSOCKET_ENABLED: "true" # Optional: Pfad zum Data-Verzeichnis im Container. Nicht ändern, wenn Sie den Standard beibehalten. # DATA_FOLDER: "/data" # Optional: Für Administratoren, um Anmeldefehler in Bitwarden zu sehen. # RUST_LOG: "debug" # Oder "info", "warn", "error" volumes: # Hier werden die persistenten Daten von Vaultwarden gespeichert. # Wichtig für Backups und Updates! - ./vw-data:/data ports: # Port-Mapping: HOST_PORT:CONTAINER_PORT # Standardmäßig lauscht Vaultwarden auf Port 80 (HTTP) und 3012 (WebSocket) im Container. - 80:80 - 3012:3012
Wichtige Hinweise zur Konfiguration:
image: vaultwarden/server:latest
: Zieht immer das neueste stabile Vaultwarden-Image.SIGNUPS_ALLOWED: "true"
: Setzen Sie dies nach der ersten Registrierung Ihres Administrator-Kontos auf"false"
! Andernfalls kann sich jeder über das Internet registrieren.WEBSOCKET_ENABLED: "true"
: Ermöglicht die Echtzeit-Synchronisation. Dies sollte immer aktiviert sein../vw-data:/data
: Dieses Volume stellt sicher, dass Ihre Vaultwarden-Daten (Passwörter, Einstellungen) auf dem Host-System im Ordner~/vaultwarden/vw-data
gespeichert werden und nicht verloren gehen, wenn der Container neu erstellt wird.ports: - 80:80 - 3012:3012
: Leitet HTTP-Anfragen vom Port 80 des LXC an Port 80 im Container weiter. Port 3012 ist für WebSocket-Verbindungen.DOMAIN:
Diese Variable ist wichtig, wenn Sie einen Reverse Proxy und eine Domain verwenden. Lassen Sie sie für den ersten Zugriff über die IP-Adresse zunächst auskommentiert oder leer.
Speichern Sie die Datei (Strg+X, Y, Enter bei nano).
Schritt 5: Starten von Vaultwarden
Jetzt können Sie Vaultwarden mit Docker Compose starten.
- Container starten: Führen Sie im Verzeichnis
~/vaultwarden
den folgenden Befehl aus:docker-compose up -d
Der Parameter
-d
sorgt dafür, dass der Container im Hintergrund läuft (detached mode). - Status überprüfen: Überprüfen Sie, ob der Container korrekt läuft:
docker-compose ps
Sie sollten sehen, dass der
vaultwarden
-Container den StatusUp
hat. - Logs ansehen (optional): Bei Problemen können Sie die Logs des Containers einsehen:
docker-compose logs vaultwarden
Schritt 6: Erster Zugriff auf Vaultwarden und Absicherung
Vaultwarden sollte nun erreichbar sein.
- Web-Zugriff: Öffnen Sie Ihren Webbrowser und navigieren Sie zur IP-Adresse Ihres LXC-Containers (z.B.
http://192.168.1.100
). - Registrieren Sie Ihr erstes Konto: Sie sollten die Registrierungsseite von Bitwarden sehen. Registrieren Sie Ihr Administrator-Konto mit einer E-Mail-Adresse und einem sehr sicheren Master-Passwort. Dies wird Ihr Schlüssel zu allen Ihren gespeicherten Passwörtern sein.
- Wichtige Sicherheitsmaßnahme: Deaktivieren Sie die Registrierung: Nachdem Sie Ihr erstes Konto erstellt und sich erfolgreich angemeldet haben, ist es unerlässlich, die Registrierungsfunktion zu deaktivieren, damit sich keine unerwünschten Personen auf Ihrem Vaultwarden-Server anmelden können.
- Kehren Sie zur Konsole Ihres LXC zurück und bearbeiten Sie die
docker-compose.yml
-Datei erneut:nano ~/vaultwarden/docker-compose.yml
- Ändern Sie die Zeile:
SIGNUPS_ALLOWED: "true"
zu:
SIGNUPS_ALLOWED: "false"
- Speichern Sie die Datei.
- Starten Sie den Vaultwarden-Container neu, damit die Änderungen wirksam werden:
docker-compose down docker-compose up -d
- Kehren Sie zur Konsole Ihres LXC zurück und bearbeiten Sie die
Schritt 7: (Optional, aber sehr empfohlen) Reverse Proxy und SSL-Einrichtung
Aktuell ist Ihr Vaultwarden über HTTP (unverschlüsselt) erreichbar. Für eine sichere Nutzung ist HTTPS (SSL/TLS-Verschlüsselung) unerlässlich. Dies erreichen Sie am besten durch einen Reverse Proxy, der auf einem separaten LXC oder einer VM (z.B. Nginx Proxy Manager, Caddy, Traefik oder ein einfacher Nginx-Server) läuft. Der Reverse Proxy würde die externe Domain (z.B. vaultwarden.ihre-domain.de
) mit einem Let’s Encrypt SSL-Zertifikat absichern und die Anfragen dann intern an die IP-Adresse Ihres Vaultwarden-LXC weiterleiten.
Die Einrichtung eines Reverse Proxys ist ein komplexes Thema, das den Rahmen dieses Artikels sprengen würde. Es wird jedoch dringend empfohlen, diesen Schritt zu implementieren, bevor Sie Vaultwarden produktiv nutzen. Hierbei müssen Sie die DOMAIN
-Umgebungsvariable in Ihrer docker-compose.yml
entsprechend anpassen und den Reverse Proxy so konfigurieren, dass er die Anfragen an Ihren Vaultwarden-LXC weiterleitet.
Wartung und Pflege Ihres Vaultwarden LXC
- Backups: Nutzen Sie die hervorragenden Backup-Funktionen von Proxmox, um regelmäßig Backups Ihres Vaultwarden LXC zu erstellen. Gehen Sie dazu in der Proxmox-Oberfläche auf den LXC, dann auf „Backup“ und klicken Sie auf „Jetzt sichern“. Diese Backups umfassen alle Daten und Konfigurationen des LXC.
- Vaultwarden-Updates: Um Vaultwarden zu aktualisieren, navigieren Sie in der LXC-Konsole zum Verzeichnis
~/vaultwarden
und führen Sie aus:docker-compose pull docker-compose up -d
Dies zieht das neueste Image und startet den Container neu.
- LXC-System-Updates: Halten Sie auch das zugrunde liegende Debian-System des LXC aktuell:
apt update apt upgrade -y
Fazit
Sie haben es geschafft! Mit dieser Schritt-für-Schritt-Anleitung haben Sie erfolgreich Vaultwarden als LXC unter Proxmox installiert und konfiguriert. Sie verfügen nun über eine leistungsstarke, sichere und ressourcenschonende Lösung für Ihr Passwort-Management, bei der Sie die volle Kontrolle über Ihre sensiblen Daten behalten. Denken Sie daran, die Registrierung nach der Ersteinrichtung zu deaktivieren und idealerweise einen Reverse Proxy mit SSL zu implementieren, um maximale Sicherheit zu gewährleisten.
Das Self-Hosting Ihres Passwort-Managers bietet Ihnen nicht nur ein Höchstmaß an Datenschutz und Sicherheit, sondern auch die Gewissheit, dass Ihre Passwörter genau dort gespeichert werden, wo Sie es wünschen – unter Ihrer eigenen Kontrolle. Beginnen Sie noch heute mit einem sichereren digitalen Leben!