In einer zunehmend vernetzten Welt sind Passwörter der Schlüssel zu unserem digitalen Leben. Von E-Mails über Bankkonten bis hin zu sozialen Medien – ein starkes, einzigartiges Passwort für jeden Dienst ist unerlässlich. Doch wer kann sich schon Hunderte von komplexen Passwörtern merken? Hier kommen Passwort-Manager ins Spiel. Während viele auf kommerzielle Cloud-Lösungen setzen, bietet das Self-Hosting eine unübertroffene Kontrolle über Ihre sensiblen Daten. Dieser Artikel führt Sie Schritt für Schritt durch die Einrichtung eines robusten, sicheren und hochperformanten Self-Hosting-Setups für Vaultwarden, ergänzt durch die Leistung von Cloudflare und die Benutzerfreundlichkeit des Nginx Proxy Manager.
### Warum dieses Setup? Die Vorteile auf einen Blick
Bevor wir ins Detail gehen, lassen Sie uns erörtern, warum diese spezielle Kombination von Tools eine hervorragende Wahl für Ihr persönliches Passwort-Management darstellt:
1. **Vaultwarden: Der schlanke Bitwarden-Klon**
* Open Source und Vertrauen: Vaultwarden ist eine in Rust geschriebene Alternative zum beliebten Bitwarden-Server. Es ist leichtgewichtig, ressourcenschonend und vollständig kompatibel mit den offiziellen Bitwarden-Clients (Browser-Erweiterungen, Desktop-Apps, Mobile-Apps).
* Datenschutz und Kontrolle: Ihre Passwörter und sensiblen Daten liegen auf Ihrem eigenen Server, nicht bei einem Drittanbieter. Sie haben die volle Kontrolle darüber, wer Zugriff hat und wie die Daten gespeichert werden.
* Sicherheit: Bitwarden-Clients verwenden eine End-to-End-Verschlüsselung, was bedeutet, dass selbst wenn Ihr Server kompromittiert würde, Ihre sensiblen Daten (Passwörter) für Angreifer immer noch verschlüsselt wären.
2. **Cloudflare: Performance, Sicherheit und DDoS-Schutz**
* Globales CDN und DNS: Cloudflare fungiert als Reverse Proxy und Content Delivery Network (CDN). Es leitet den Datenverkehr Ihrer Domain über sein weltweites Netzwerk, was die Ladezeiten beschleunigt und die Verfügbarkeit verbessert.
* Sicherheit auf Enterprise-Niveau: Mit Funktionen wie DDoS-Schutz, einer Web Application Firewall (WAF) und Bot-Management schirmt Cloudflare Ihren Server vor vielen gängigen Bedrohungen ab, bevor sie ihn überhaupt erreichen.
* Kostenloses SSL/TLS: Cloudflare bietet kostenlose SSL/TLS-Zertifikate, die die Kommunikation zwischen Ihren Nutzern und Cloudflare verschlüsseln. In Kombination mit einem „Full (strict)” SSL-Modus gewährleisten Sie auch eine sichere Verbindung von Cloudflare zu Ihrem Server.
* IP-Anonymisierung: Ihr Server läuft hinter Cloudflare, was bedeutet, dass Ihre tatsächliche Server-IP-Adresse nicht direkt öffentlich zugänglich ist, was eine zusätzliche Schutzschicht darstellt.
3. **Nginx Proxy Manager (NPM): Reverse Proxy leicht gemacht**
* Einfache Konfiguration: NPM ist eine webbasierte grafische Benutzeroberfläche, die die Konfiguration von Nginx als Reverse Proxy enorm vereinfacht. Sie müssen keine komplexen Nginx-Konfigurationsdateien manuell bearbeiten.
* Kostenlose SSL-Zertifikate: NPM integriert nahtlos mit Let’s Encrypt, um kostenlose, automatisch erneuerte SSL/TLS-Zertifikate für Ihre Domains bereitzustellen.
* Zentrale Verwaltung: Verwalten Sie all Ihre Proxy-Hosts und SSL-Zertifikate von einer zentralen Oberfläche aus.
* Docker-freundlich: NPM wird selbst als Docker-Container betrieben, was die Installation und Verwaltung denkbar einfach macht.
Das Zusammenspiel dieser Komponenten schafft ein extrem robustes und sicheres System. Cloudflare schützt Ihren Server vor externen Bedrohungen und bietet Performance-Vorteile. Nginx Proxy Manager kümmert sich um die sichere Kommunikation (SSL) zu Ihrem Server und leitet Anfragen an den richtigen Docker-Container (Vaultwarden) weiter. Vaultwarden selbst speichert Ihre Passwörter sicher und verschlüsselt auf Ihrem System.
### Voraussetzungen schaffen: Was Sie benötigen
Bevor wir mit der eigentlichen Einrichtung beginnen, stellen Sie sicher, dass Sie die folgenden Punkte erfüllt haben:
* **Ein Server:** Ein Virtual Private Server (VPS) bei einem Anbieter Ihrer Wahl ist ideal. Ein Raspberry Pi oder ein alter PC mit einem Linux-Betriebssystem (z.B. Ubuntu Server oder Debian) funktioniert ebenfalls, solange er dauerhaft online ist.
* **Eine Domain:** Eine eigene Domain ist zwingend erforderlich, um SSL-Zertifikate über Let’s Encrypt zu beziehen und Cloudflare optimal nutzen zu können.
* **Docker und Docker Compose:** Installieren Sie Docker und Docker Compose auf Ihrem Server. Dies ist der Grundstein für die einfache Bereitstellung von Vaultwarden und Nginx Proxy Manager. Anleitungen dazu finden Sie auf der offiziellen Docker-Website.
* **SSH-Zugang:** Stellen Sie sicher, dass Sie per SSH auf Ihren Server zugreifen können, um Befehle auszuführen.
* **Grundlegende Linux-Kenntnisse:** Ein Verständnis für grundlegende Linux-Befehle und die Arbeit mit einem Texteditor (wie `nano` oder `vi`) ist hilfreich.
### Schritt 1: Domain bei Cloudflare einrichten
Dies ist ein entscheidender Schritt für die Sicherheit und Performance.
1. **Cloudflare-Konto erstellen & Domain hinzufügen:** Besuchen Sie cloudflare.com, erstellen Sie ein kostenloses Konto und fügen Sie Ihre Domain hinzu. Cloudflare scannt dann Ihre bestehenden DNS-Einträge.
2. **Nameserver ändern:** Cloudflare wird Ihnen zwei Nameserver (z.B. `alice.ns.cloudflare.com` und `bob.ns.cloudflare.com`) nennen. Ändern Sie die Nameserver Ihrer Domain bei Ihrem Domain-Registrar auf diese von Cloudflare bereitgestellten. Es kann einige Stunden dauern, bis diese Änderung global übernommen wird.
3. **DNS-Einträge konfigurieren:** Gehen Sie im Cloudflare-Dashboard zu Ihrer Domain und navigieren Sie zum Bereich „DNS”. Erstellen Sie die folgenden Einträge:
* Einen `A`-Record für Ihre Hauptdomain (z.B. `@` oder `ihredomain.com`), der auf die öffentliche IP-Adresse Ihres Servers zeigt. Stellen Sie sicher, dass das Orange-Wolken-Symbol (Proxy-Status) aktiviert ist.
* Einen `A`-Record für die Subdomain, unter der Vaultwarden erreichbar sein soll (z.B. `vaultwarden`). Dieser sollte ebenfalls auf die öffentliche IP-Adresse Ihres Servers zeigen und der Proxy-Status (Orange-Wolke) muss aktiviert sein.
4. **SSL/TLS-Verschlüsselung einstellen:** Navigieren Sie im Cloudflare-Dashboard zum Bereich „SSL/TLS” und dort zu „Übersicht”. Stellen Sie sicher, dass der Verschlüsselungsmodus auf **”Voll (strikt)”** (Full (strict)) eingestellt ist. Dies gewährleistet, dass die Kommunikation sowohl von Ihrem Browser zu Cloudflare als auch von Cloudflare zu Ihrem Server verschlüsselt ist und das Zertifikat auf Ihrem Server gültig sein muss.
### Schritt 2: Nginx Proxy Manager (NPM) mit Docker installieren
NPM wird als Docker-Container ausgeführt und benötigt ein separates Volume für seine Konfiguration und Datenbank.
1. **Verzeichnis erstellen:** Erstellen Sie ein Verzeichnis für NPM auf Ihrem Server:
„`bash
mkdir -p /opt/nginxproxymanager
cd /opt/nginxproxymanager
„`
2. **`docker-compose.yml` erstellen:** Erstellen Sie eine Datei namens `docker-compose.yml` in diesem Verzeichnis mit folgendem Inhalt:
„`yaml
version: ‘3.8’
services:
app:
image: ‘jc21/nginx-proxy-manager:latest’
restart: unless-stopped
ports:
# Diese Ports werden auf dem Host freigegeben
– ’80:80′ # HTTP-Verkehr
– ‘443:443′ # HTTPS-Verkehr
– ’81:81’ # Admin-Panel von Nginx Proxy Manager
volumes:
# Hier werden die Daten von NPM gespeichert
– ./data:/data
– ./letsencrypt:/etc/letsencrypt
„`
*Hinweis:* Wir verwenden hier SQLite als Datenbank, die direkt im `/data`-Volume gespeichert wird. Für größere oder professionelle Setups könnte eine externe MySQL/MariaDB-Datenbank in Betracht gezogen werden.
3. **NPM starten:** Speichern Sie die Datei und starten Sie NPM mit:
„`bash
docker-compose up -d
„`
4. **Erster Login:** Nach kurzer Zeit ist NPM unter `http://
* Standard-Benutzername: `[email protected]`
* Standard-Passwort: `changeme`
* Ändern Sie diese sofort nach dem ersten Login!
### Schritt 3: Vaultwarden mit Docker installieren
Jetzt ist es an der Zeit, Vaultwarden selbst einzurichten.
1. **Verzeichnis erstellen:** Erstellen Sie ein separates Verzeichnis für Vaultwarden:
„`bash
mkdir -p /opt/vaultwarden
cd /opt/vaultwarden
„`
2. **`docker-compose.yml` erstellen:** Erstellen Sie eine Datei namens `docker-compose.yml` mit folgendem Inhalt. Beachten Sie, dass wir hier keine Ports auf dem Host freigeben, da NPM den Zugriff übernimmt.
„`yaml
version: ‘3.8’
services:
vaultwarden:
image: ‘vaultwarden/server:latest’
container_name: vaultwarden
restart: unless-stopped
environment:
# — Wichtige Konfigurationen für Vaultwarden —
# Generieren Sie ein langes, zufälliges Token für den Admin-Zugriff
ADMIN_TOKEN: ‘Ihr_sehr_langes_und_zufaelliges_Admin_Token_hier_eingeben’
# Erlaubt neue Registrierungen (false für private Nutzung, wenn Sie alle Benutzer selbst einladen)
SIGNUPS_ALLOWED: ‘false’
# Erlaubt Einladungen durch Administratoren (true ist meist sinnvoll)
INVITATIONS_ALLOWED: ‘true’
# Aktiviert die WebSocket-Benachrichtigungen (für Echtzeit-Updates, z.B. bei der 2FA-Bestätigung)
WEBSOCKET_ENABLED: ‘true’
# Weitere optionale Einstellungen können hier hinzugefügt werden (siehe Vaultwarden-Dokumentation)
# DOMAIN: ‘https://vaultwarden.ihredomain.com’ # Kann hilfreich sein, wenn Sie Probleme haben
# ROCKET_TLS: ‘/ssl/fullchain.pem,/ssl/privkey.pem’ # Nicht notwendig, da NPM TLS übernimmt
volumes:
# Hier werden die Daten von Vaultwarden gespeichert
– ./data:/data
# Interne Portfreigabe, nur für den Docker-Netzwerkzugriff
ports:
– ‘8000:80’ # Interner Port für den HTTP-Zugriff von NPM auf Vaultwarden
„`
* **Wichtiger Hinweis zum `ADMIN_TOKEN`:** Dies ist Ihr Master-Schlüssel für das Vaultwarden Admin-Panel. Generieren Sie ein *sehr* langes, komplexes und einzigartiges Token. Nutzen Sie einen Passwort-Generator dafür. Ohne dieses Token können Sie nicht auf das Admin-Panel zugreifen!
* **`SIGNUPS_ALLOWED`:** Wenn Sie Vaultwarden nur für sich selbst oder eine geschlossene Gruppe nutzen möchten, setzen Sie dies auf `false`. Dann können nur Administratoren (die Sie selbst über das Admin-Panel erstellen) neue Benutzer einladen.
3. **Vaultwarden starten:** Speichern Sie die Datei und starten Sie Vaultwarden mit:
„`bash
docker-compose up -d
„`
Stellen Sie sicher, dass sowohl NPM als auch Vaultwarden aktiv sind, indem Sie `docker ps` ausführen. Sie sollten beide Container sehen.
### Schritt 4: Vaultwarden über Nginx Proxy Manager konfigurieren
Jetzt verknüpfen wir Vaultwarden mit Ihrem Domainnamen über NPM.
1. **Proxy Host erstellen:** Melden Sie sich im Nginx Proxy Manager (unter `http://
* **Details Tab:**
* **Domain Names:** Geben Sie Ihre Vaultwarden-Subdomain ein (z.B. `vaultwarden.ihredomain.com`).
* **Scheme:** Wählen Sie `http`.
* **Forward Hostname / IP:** Hier geben Sie den Namen Ihres Vaultwarden-Docker-Containers an, der in Ihrer `docker-compose.yml` definiert ist (`vaultwarden`). Wenn NPM und Vaultwarden im selben Docker-Netzwerk laufen, löst Docker diesen Namen automatisch auf. Alternativ können Sie `127.0.0.1` oder die IP Ihres Servers verwenden, wenn sie nicht im selben Docker-Netzwerk sind oder Sie Probleme mit der Namensauflösung haben.
* **Forward Port:** Geben Sie `8000` ein (der interne Port, den Vaultwarden im Docker-Container verwendet).
* **Block Common Exploits:** Aktivieren Sie dies.
* **Websockets Support:** **Sehr wichtig!** Aktivieren Sie dies, damit die WebSocket-Funktionalität von Vaultwarden (z.B. für 2FA-Pushes) korrekt funktioniert.
* **SSL Tab:**
* **SSL Certificate:** Wählen Sie „Request a new SSL Certificate” aus.
* **Force SSL:** Aktivieren Sie dies.
* **HSTS Enabled:** Aktivieren Sie dies (erzwingt HTTPS für zukünftige Besuche).
* **HTTP/2 Support:** Aktivieren Sie dies (für bessere Performance).
* **Email Address for Let’s Encrypt:** Geben Sie Ihre E-Mail-Adresse ein.
* **I Agree to the Let’s Encrypt Terms of Service:** Aktivieren Sie dies.
* **Use a DNS Challenge:** Dies ist der **entscheidende Punkt für Cloudflare**. Wählen Sie diese Option und konfigurieren Sie die benötigten API-Zugangsdaten für Cloudflare. NPM kann dann automatisch die DNS-Einträge bei Cloudflare aktualisieren, um das Zertifikat zu validieren. Dies ist die empfohlene Methode, da es keine offenen Ports (80/443) auf Ihrem Server benötigt, um die Zertifikatsanfrage zu validieren.
* Erstellen Sie einen Cloudflare API Token (Global API Key ist nicht mehr empfohlen, verwenden Sie einen Token mit minimalen Berechtigungen für DNS Zone Edit).
* **Advanced Tab (optional, aber empfohlen für optimale Sicherheit):**
* Fügen Sie hier einige zusätzliche Nginx-Header hinzu, um die Sicherheit zu erhöhen. Beispiele:
„`nginx
# Security Headers
add_header X-Frame-Options „SAMEORIGIN”;
add_header X-XSS-Protection „1; mode=block”;
add_header X-Content-Type-Options „nosniff”;
add_header Referrer-Policy „no-referrer-when-downgrade”;
add_header Content-Security-Policy „default-src ‘self’ data: ‘unsafe-inline’; script-src ‘self’ ‘unsafe-inline’ ‘unsafe-eval’; style-src ‘self’ ‘unsafe-inline’; img-src ‘self’ data:; connect-src ‘self’ ws: wss:”;
„`
*Hinweis:* Die `Content-Security-Policy` kann je nach Vaultwarden-Version und Plugins angepasst werden müssen. Testen Sie dies sorgfältig.
2. **Speichern:** Klicken Sie auf „Save”. NPM wird nun versuchen, das Let’s Encrypt-Zertifikat anzufordern und den Proxy-Host zu konfigurieren.
Nach erfolgreicher Konfiguration sollte Vaultwarden unter `https://vaultwarden.ihredomain.com` erreichbar sein! Versuchen Sie, die URL in Ihrem Browser zu öffnen. Sie sollten die Bitwarden-Weboberfläche sehen. Sie können sich nun mit Ihrer bestehenden Bitwarden-App oder Browser-Erweiterung verbinden, indem Sie die Server-URL auf Ihre Vaultwarden-Domain ändern.
### Schritt 5: Zusätzliche Sicherheit und Optimierung
Ihr Setup ist nun funktionsfähig, aber einige weitere Schritte erhöhen die Sicherheit und Zuverlässigkeit:
1. **Cloudflare Sicherheitseinstellungen:**
* **Firewall Rules:** Im Cloudflare-Dashboard können Sie spezifische Firewall-Regeln erstellen, z.B. um den Zugriff auf bestimmte Länder zu beschränken oder um Rate Limiting anzuwenden, wenn zu viele Anfragen von einer IP-Adresse kommen.
* **Bot Fight Mode:** Aktivieren Sie den Bot Fight Mode unter „Security” -> „Bots”, um bösartige Bots automatisch zu blockieren.
* **Always Use HTTPS:** Stellen Sie unter „SSL/TLS” -> „Edge Certificates” sicher, dass „Always Use HTTPS” aktiviert ist.
* **Minimum TLS Version:** Erhöhen Sie die minimale TLS-Version (z.B. auf 1.2 oder 1.3), um ältere, unsichere Protokolle zu deaktivieren.
2. **Vaultwarden Admin-Panel:**
* Greifen Sie auf das Admin-Panel unter `https://vaultwarden.ihredomain.com/admin` zu. Dort können Sie sich mit dem in `ADMIN_TOKEN` hinterlegten Token authentifizieren.
* Hier können Sie Benutzer verwalten, Einladungen versenden und serverseitige Einstellungen feinabstimmen.
3. **Backup-Strategie:**
* **Regelmäßige Backups:** Dies ist absolut kritisch! Implementieren Sie eine regelmäßige Backup-Strategie für Ihr Vaultwarden-Datenvolume (`/opt/vaultwarden/data`). Nutzen Sie Tools wie `rsync` oder `borgbackup`, um die Daten auf einen externen Speicher zu sichern.
* **NPM-Konfiguration:** Sichern Sie auch das Datenvolume von Nginx Proxy Manager (`/opt/nginxproxymanager/data`) und `/opt/nginxproxymanager/letsencrypt`, um Ihre NPM-Konfiguration und SSL-Zertifikate zu erhalten.
4. **Updates:**
* Halten Sie Ihre Docker-Container (Vaultwarden, Nginx Proxy Manager) regelmäßig auf dem neuesten Stand. Sie können dies manuell tun, indem Sie in den jeweiligen Verzeichnissen `docker-compose pull` und `docker-compose up -d` ausführen, oder automatisieren Sie es mit Tools wie `Watchtower`.
* Halten Sie Ihr Server-Betriebssystem und alle weiteren Pakete ebenfalls auf dem neuesten Stand.
### Fazit
Herzlichen Glückwunsch! Sie haben nun Ihr eigenes, ultimatives Self-Hosting-Setup für Vaultwarden erfolgreich eingerichtet. Mit dieser Konfiguration haben Sie nicht nur die volle Kontrolle über Ihre Passwörter und digitalen Identitäten, sondern profitieren auch von den Sicherheit-, Performance- und Verwaltungsfunktionen von Cloudflare und Nginx Proxy Manager.
Sie haben eine Lösung geschaffen, die:
* **Sicher** ist, durch End-to-End-Verschlüsselung, Cloudflare-Schutz und Let’s Encrypt SSL-Zertifikate.
* **Performant** ist, dank Cloudflares CDN und HTTP/2-Unterstützung.
* **Benutzerfreundlich** ist, durch die Bitwarden-Clients und die einfache Verwaltung mit Nginx Proxy Manager.
* **Datenschutzorientiert** ist, da Ihre Daten unter Ihrer Kontrolle bleiben.
Nehmen Sie Ihre digitale Sicherheit selbst in die Hand. Beginnen Sie noch heute mit dem Self-Hosting und erleben Sie die Freiheit und Sicherheit, die es bietet!