Zum Hauptinhalt springen
Zurück zur Kategorie

Vaultwarden Installation: Self-Hosted Passwort-Manager

Vaultwarden (Bitwarden-kompatibel) Docker-Installation, HTTPS-Konfiguration, Admin-Panel, Organisations- und Sammlungsverwaltung, Verwendung mit Bitwarden-Clients.

Lesezeit: 13 Min Self-Hosting
vaultwardenbitwardenpasswort-managerself-hostingdockersicherheit
Autor
REXE Teknoloji Network & Security Team
Redaktion
REXE Teknoloji Technical Editorial
Erstveröffentlichung
Letzte Aktualisierung

Vaultwarden Installation: Self-Hosted Passwort-Manager

Vaultwarden ist eine leichtgewichtige, community-unterstützte Alternative zum offiziellen Bitwarden-Server, geschrieben in Rust. Im Vergleich zum offiziellen Bitwarden-Server verbraucht es deutlich weniger Ressourcen und ist vollständig kompatibel mit allen Bitwarden-Clients (Web, Desktop, Mobil, Browser-Erweiterung). Durch das Hosting auf Ihrem eigenen Server behalten Sie die vollständige Kontrolle über Ihre Passwörter.

Was ist Vaultwarden?

Vaultwarden (früher bitwarden_rs) ist ein Open-Source-Projekt, das die Bitwarden-API in Rust neu implementiert. Hauptmerkmale:

  • Geringer Ressourcenverbrauch: Läuft problemlos mit 512 MB RAM
  • Bitwarden-Kompatibilität: Alle offiziellen Bitwarden-Clients werden unterstützt
  • Organisationsunterstützung: Kostenlose Erstellung von Organisationen und Sammlungen
  • TOTP-Unterstützung: Zwei-Faktor-Authentifizierung
  • Web Vault: Über den Browser zugängliche Weboberfläche
  • Send-Funktion: Sicheres Teilen von Dateien und Texten

Systemanforderungen

  • Server mit Docker und Docker Compose
  • Mindestens 512 MB RAM
  • Gültiger Domainname (für HTTPS erforderlich)
  • SSL-Zertifikat (Let's Encrypt empfohlen)

Installation mit Docker

docker-compose.yml erstellen

hljs yaml
version: '3.8'

services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: unless-stopped
    environment:
      DOMAIN: "https://vault.example.com"
      SIGNUPS_ALLOWED: "true"
      ADMIN_TOKEN: "starkes-admin-token-hier"
      WEBSOCKET_ENABLED: "true"
      LOG_LEVEL: "warn"
    volumes:
      - ./vw-data:/data
    ports:
      - "127.0.0.1:8080:80"
      - "127.0.0.1:3012:3012"
hljs bash
# Container starten
docker compose up -d

# Logs prüfen
docker logs vaultwarden -f

Verwenden Sie einen starken und zufälligen Wert für ADMIN_TOKEN. Mit openssl rand -base64 48 können Sie ein sicheres Token generieren.

Admin-Token generieren

hljs bash
# Sicheres Admin-Token generieren
openssl rand -base64 48

# Sichereres Token mit Argon2-Hash (empfohlen)
docker run --rm -it vaultwarden/server /vaultwarden hash --preset owasp

Nginx Reverse Proxy und SSL-Konfiguration

Da Vaultwarden HTTPS erfordert, ist die Einrichtung eines Nginx Reverse Proxy obligatorisch.

Nginx-Konfiguration

hljs nginx
server {
    listen 80;
    server_name vault.example.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    server_name vault.example.com;

    ssl_certificate /etc/letsencrypt/live/vault.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/vault.example.com/privkey.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;

    client_max_body_size 128M;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    location /notifications/hub {
        proxy_pass http://127.0.0.1:3012;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

    location /notifications/hub/negotiate {
        proxy_pass http://127.0.0.1:8080;
    }
}

Let's Encrypt SSL-Zertifikat

hljs bash
# Certbot installieren
apt install certbot python3-certbot-nginx -y

# SSL-Zertifikat erhalten
certbot --nginx -d vault.example.com

# Automatische Erneuerung testen
certbot renew --dry-run

Admin-Panel-Konfiguration

Zugriff auf das Admin-Panel unter https://vault.example.com/admin.

Wichtige Admin-Einstellungen

hljs bash
# Registrierung nach der Einrichtung deaktivieren
SIGNUPS_ALLOWED=false

# Registrierung nur für bestimmte Domains erlauben
SIGNUPS_DOMAINS_WHITELIST=example.com,company.org

# Einladungssystem
INVITATIONS_ALLOWED=true

# E-Mail-Verifizierung
SIGNUPS_VERIFY=true

SMTP E-Mail-Konfiguration

hljs yaml
environment:
  SMTP_HOST: "smtp.gmail.com"
  SMTP_FROM: "vault@example.com"
  SMTP_PORT: "587"
  SMTP_SECURITY: "starttls"
  SMTP_USERNAME: "vault@example.com"
  SMTP_PASSWORD: "app-passwort"

Benutzerverwaltung

Benutzer einladen

Über das Admin-Panel unter UsersInvite User können Sie E-Mail-Einladungen senden.

hljs bash
# Benutzer per CLI einladen
docker exec vaultwarden /vaultwarden invite --email user@example.com

Organisationen und Sammlungen erstellen

Organisationen sind in Vaultwarden kostenlos (kostenpflichtig im offiziellen Bitwarden):

  1. Im Web Vault anmelden
  2. OrganisationenNeue Organisation
  3. Organisationsname und Rechnungs-E-Mail eingeben
  4. Sammlungen zum Kategorisieren von Passwörtern verwenden
  5. Mitglieder einladen und Rollen zuweisen (Admin, Manager, User, Custom)

Bitwarden-Clients verbinden

Browser-Erweiterung

  1. Bitwarden-Erweiterung installieren (Chrome, Firefox, Edge)
  2. Auf Server-URL im Anmeldebildschirm klicken
  3. https://vault.example.com eingeben
  4. Mit Ihrem Konto anmelden

Mobile App

1. Bitwarden-App öffnen
2. Auf den Regionsauswähler im Anmeldebildschirm tippen
3. "Self-hosted" auswählen
4. Server-URL: https://vault.example.com
5. Speichern und anmelden

Backup

hljs bash
# Vaultwarden-Daten sichern
tar -czf vaultwarden-backup-$(date +%Y%m%d).tar.gz ./vw-data/

# Automatisches Backup-Skript
cat > /etc/cron.daily/vaultwarden-backup << 'EOF'
#!/bin/bash
BACKUP_DIR="/backups/vaultwarden"
mkdir -p $BACKUP_DIR
tar -czf $BACKUP_DIR/backup-$(date +%Y%m%d-%H%M%S).tar.gz /opt/vaultwarden/vw-data/
find $BACKUP_DIR -name "backup-*.tar.gz" -mtime +30 -delete
EOF
chmod +x /etc/cron.daily/vaultwarden-backup

Vaultwarden läuft hervorragend auf REXE VPS-Servern. 1 GB RAM und 1 vCPU reichen für kleine Teams aus.

Häufig gestellte Fragen

Was ist der Unterschied zwischen Vaultwarden und dem offiziellen Bitwarden?

Vaultwarden ist ein Community-Projekt, das die Bitwarden-API in Rust neu implementiert. Es verbraucht deutlich weniger Ressourcen als der offizielle Bitwarden-Server (512 MB RAM reichen). Organisationen und Premium-Funktionen sind in Vaultwarden kostenlos, während sie beim offiziellen Server kostenpflichtig sind. Es ist vollständig kompatibel mit allen Bitwarden-Clients.

Kann ich Vaultwarden ohne HTTPS verwenden?

Nein, Bitwarden-Clients erfordern aus Sicherheitsgründen HTTPS. Ohne ein gültiges SSL-Zertifikat verweigern Clients die Verbindung. Mit Let's Encrypt können Sie ein kostenloses SSL-Zertifikat erhalten. Self-signed Zertifikate funktionieren auch für lokale Netzwerke, erfordern aber manuelles Vertrauen in den Clients.

Ich kann nicht auf das Admin-Panel zugreifen, das Token funktioniert nicht.

Überprüfen Sie, ob der ADMIN_TOKEN-Wert in docker-compose.yml korrekt definiert ist. Bei Argon2-Hash müssen '$'-Zeichen in YAML möglicherweise escaped werden. Setzen Sie das Token in einfache Anführungszeichen: ADMIN_TOKEN: '$$argon2id$$...'. Container neu starten: docker compose restart vaultwarden.

WebSocket-Benachrichtigungen funktionieren nicht, keine Echtzeit-Synchronisierung.

Stellen Sie sicher, dass der /notifications/hub-Pfad in Ihrer Nginx-Konfiguration auf Port 3012 weitergeleitet wird. Überprüfen Sie, ob WEBSOCKET_ENABLED=true gesetzt ist. Vergewissern Sie sich, dass 'proxy_set_header Upgrade $http_upgrade' und 'proxy_set_header Connection upgrade' in Nginx vorhanden sind.

Wie sichere ich Vaultwarden-Daten?

Alle Daten werden im Verzeichnis ./vw-data/ gespeichert. Sichern Sie dieses Verzeichnis regelmäßig: tar -czf backup.tar.gz ./vw-data/. Kritische Dateien: db.sqlite3 (Datenbank), rsa_key* (Verschlüsselungsschlüssel), attachments/ (Anhänge). Der Verlust der Schlüssel macht alle Passwörter unzugänglich.

Wie teile ich Passwörter mit Organisationsmitgliedern?

Erstellen Sie eine Organisation und fügen Sie Sammlungen hinzu. Bearbeiten Sie das Passwort, das Sie teilen möchten, und wählen Sie die entsprechende Sammlung im Abschnitt 'Sammlungen'. Laden Sie Mitglieder zur Organisation ein und erteilen Sie Sammlungszugriffsberechtigungen. Mitglieder können geteilte Passwörter in ihren eigenen Bitwarden-Clients sehen.

Verwandte Artikel

NetzwerkverkehrEingehend GbpsAusgehend Gbps