Fernwartung Download starten

Vaultwarden: Self-Hosted Passwort-Manager für Unternehmen

LinuxSecuritySelf-HostedPasswörter
Vaultwarden: Self-Hosted Passwort-Manager für Unternehmen

Passwörter sind nach wie vor das schwächste Glied in der IT-Sicherheitskette — besonders in Unternehmen, in denen Teams gemeinsam auf Systeme zugreifen. Cloud-Dienste wie 1Password oder LastPass sind bequem, werfen aber für datenschutzbewusste Organisationen grundlegende Fragen auf: Wo liegen die Credentials? Wer hat theoretisch Zugriff? Was passiert bei einem Vendor-Breach? Vaultwarden beantwortet diese Fragen mit einer klaren Lösung: vollständige Kontrolle, eigener Server, kein Drittanbieter.

Warum selbst gehosteter Passwort-Manager?

Die Entscheidung für einen selbst gehosteten Passwort-Manager ist keine ideologische — sie ist pragmatisch. Für Unternehmen, die personenbezogene Daten verarbeiten, schreibt die DSGVO technische und organisatorische Maßnahmen zum Schutz dieser Daten vor. Ein Cloud-Passwort-Manager bedeutet, dass Zugangsdaten zu internen Systemen bei einem Drittanbieter liegen — oft in einem Rechenzentrum außerhalb der EU.

Hinzu kommt das Vendor-Lock-in-Problem: Ändern sich Preise, Eigentümer oder Geschäftsbedingungen, haben Teams ein ernsthaftes operatives Problem. Der Wechsel eines Passwort-Managers für ein ganzes Unternehmen ist aufwändig.

MerkmalVaultwarden (Self-Hosted)Bitwarden Cloud1Password TeamsKeePass
DatensouveränitätVollständigEingeschränktEingeschränktVollständig
DSGVO-KonformitätJa (eigener Server)BedingtBedingtJa
Browser-ExtensionJa (Bitwarden-kompatibel)JaJaPlugins
Mobile AppsJa (iOS + Android)JaJaJa (Drittanbieter)
Organisationen / TeamsJaJa (kostenpflichtig)JaNein
2FA-Pflicht erzwingbarJaJa (Business)JaNein
Monatliche KostenServerkostenAb 3 USD/NutzerAb 7 USD/NutzerKostenlos
API-KompatibilitätBitwarden-APIBitwarden-APIProprietärNein

Vaultwarden ist eine leichtgewichtige, inoffizielle Implementierung des Bitwarden-Server-Protokolls in Rust. Es ist vollständig kompatibel mit allen offiziellen Bitwarden-Clients — Browser-Extensions, Desktop-Apps und Mobile-Apps funktionieren ohne Anpassungen. Im Gegensatz zum offiziellen Bitwarden-Server benötigt Vaultwarden keine Microsoft SQL Server-Instanz, sondern läuft mit einer einzigen SQLite-Datenbank und ist damit ideal für den Betrieb auf kleinen VMs oder sogar Raspberry Pis.

Vaultwarden mit Docker deployen

Die einfachste und empfohlene Methode ist der Betrieb via Docker Compose. Vaultwarden benötigt lediglich ein Volume für die Datenbank sowie — für Produktivumgebungen — einen vorgelagerten Reverse Proxy für HTTPS.

# docker-compose.yml
services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: unless-stopped
    environment:
      DOMAIN: "https://vault.example.com"
      SIGNUPS_ALLOWED: "false"        # Registrierung deaktivieren nach Setup
      ADMIN_TOKEN: "${VW_ADMIN_TOKEN}" # aus .env-Datei laden
      SMTP_HOST: "mail.example.com"
      SMTP_FROM: "vault@example.com"
      SMTP_FROM_NAME: "Vaultwarden"
      SMTP_PORT: "587"
      SMTP_SECURITY: "starttls"
      SMTP_USERNAME: "${SMTP_USER}"
      SMTP_PASSWORD: "${SMTP_PASS}"
      PUSH_ENABLED: "true"            # Mobile Push-Benachrichtigungen
      LOG_LEVEL: "warn"
    volumes:
      - vaultwarden_data:/data
    ports:
      - "127.0.0.1:8080:80"           # Nur lokal binden, Reverse Proxy vorgelagert

volumes:
  vaultwarden_data:

Der ADMIN_TOKEN sollte ein langer, zufälliger String sein. Generieren Sie ihn mit:

openssl rand -base64 48

Speichern Sie ihn in einer .env-Datei neben der docker-compose.yml. Die .env-Datei gehört nicht ins Git-Repository.

Reverse Proxy: nginx oder OPNsense HAProxy

Vaultwarden muss zwingend über HTTPS erreichbar sein — die Bitwarden-Clients lehnen unverschlüsselte Verbindungen ab. Sie haben zwei typische Optionen:

Option A: nginx mit Let’s Encrypt

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;

    # WebSocket-Support für Live-Sync
    location /notifications/hub {
        proxy_pass         http://127.0.0.1:8080;
        proxy_http_version 1.1;
        proxy_set_header   Upgrade $http_upgrade;
        proxy_set_header   Connection "upgrade";
    }

    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;
    }
}

Option B: OPNsense HAProxy

Wer OPNsense als Firewall einsetzt, kann den integrierten HAProxy als SSL-Terminator nutzen. Legen Sie ein Backend (vaultwarden_backend, Server 127.0.0.1:8080) und einen Frontend-Listener auf Port 443 an. Das SSL-Zertifikat wird über ACME direkt in OPNsense verwaltet und automatisch erneuert. Aktivieren Sie im Frontend zusätzlich die WebSocket-Unterstützung (Option http-server-close deaktivieren, forwardfor aktivieren).

Admin-Panel und Benutzerverwaltung

Nach dem Start ist das Admin-Panel unter https://vault.example.com/admin erreichbar — geschützt durch den ADMIN_TOKEN. Hier konfigurieren Sie:

  • Einladungen: Da SIGNUPS_ALLOWED: false gesetzt ist, laden Sie Nutzer manuell per E-Mail ein
  • Organisationen: Teams können Passwort-Sammlungen (Collections) teilen, ohne individuelle Passwörter zu exponieren
  • 2FA-Pflicht: Unter Organisations-Einstellungen lässt sich 2FA als Voraussetzung für den Zugriff auf Organisations-Passwörter erzwingen

Für die initiale Einrichtung empfiehlt sich dieser Ablauf:

  1. Admin-Account anlegen und mit dem Admin-Panel vertraut machen
  2. Organisation erstellen und Collections strukturieren (z. B. nach Abteilung oder System)
  3. Team-Mitglieder per E-Mail einladen
  4. 2FA-Pflicht in der Organisation aktivieren
  5. SIGNUPS_ALLOWED dauerhaft auf false setzen

Browser-Extensions und Mobile Apps

Vaultwarden ist vollständig kompatibel mit den offiziellen Bitwarden-Clients. Nutzer installieren einfach die Bitwarden-Extension (Chrome, Firefox, Safari, Edge) oder die mobile App (iOS, Android) und geben als Server-URL die eigene Instanz an:

Server-URL: https://vault.example.com

Anschließend funktioniert die gesamte Bitwarden-Erfahrung — Auto-Fill, Passwort-Generator, sichere Notizen, TOTP-Verwaltung — gegen den eigenen Server. Für Unternehmensgeräte lässt sich die Server-URL per MDM vorbelegen, sodass Mitarbeiter nur noch ihre Zugangsdaten eintragen müssen.

Backup-Strategie: SQLite und Attachments

Das große Plus von Vaultwarden ist die Einfachheit des Backups. Die gesamte Datenbank besteht aus:

  • data/db.sqlite3 — alle Passwörter, Nutzer, Organisationen (verschlüsselt)
  • data/attachments/ — Dateianhänge
  • data/sends/ — Bitwarden Send-Objekte
  • data/config.json — Instanz-Konfiguration

Ein einfaches Backup-Skript:

#!/bin/bash
BACKUP_DIR="/opt/backups/vaultwarden"
DATE=$(date +%Y-%m-%d_%H-%M)
mkdir -p "$BACKUP_DIR"

# SQLite Online-Backup (konsistenter Snapshot ohne Downtime)
sqlite3 /opt/vaultwarden/data/db.sqlite3 \
  "VACUUM INTO '$BACKUP_DIR/db_$DATE.sqlite3'"

# Attachments sichern
tar -czf "$BACKUP_DIR/attachments_$DATE.tar.gz" \
  -C /opt/vaultwarden/data attachments/ sends/

# Backups älter als 30 Tage löschen
find "$BACKUP_DIR" -mtime +30 -delete

Planen Sie dieses Skript als Cron-Job (z. B. stündlich) und kopieren Sie die Backups zusätzlich auf einen externen Speicher — Proxmox Backup Server, S3-kompatiblen Speicher oder ein separates NAS.

2FA-Enforcement für das gesamte Team

Vaultwarden unterstützt alle gängigen 2FA-Methoden: TOTP (Google Authenticator, Aegis), E-Mail-OTP, WebAuthn/FIDO2 und Duo. Für Teams empfiehlt sich TOTP oder WebAuthn — beide funktionieren ohne externe Abhängigkeiten.

Die 2FA-Pflicht wird auf Organisationsebene gesetzt. Nutzer, die keinen zweiten Faktor konfiguriert haben, werden beim Zugriff auf Organisations-Collections automatisch aufgefordert, einen einzurichten. Dieses Verhalten lässt sich im Admin-Panel unter Organisationsrichtlinien aktivieren.

Monitoring mit DATAZONE Control

Ein selbst gehosteter Passwort-Manager ist kritische Infrastruktur — Ausfälle oder Zertifikatsfehler sollten sofort auffallen. DATAZONE Control überwacht den Vaultwarden-Container auf Gesundheit, Laufzeit und Ressourcenverbrauch. SSL-Zertifikatsablauf, fehlgeschlagene Container-Starts und ungewöhnlicher Speicherverbrauch werden automatisch als Alert gemeldet. Ergänzt durch ein tägliches Backup-Monitoring des SQLite-Snapshots haben Administratoren vollständige Transparenz über den Betriebsstatus ihres Passwort-Managers.

Best Practices für Teams

  • Passwort-Rotation: Nutzen Sie Organisations-Collections pro Projekt oder Kunde — so lassen sich Berechtigungen gezielt entziehen, wenn Mitarbeiter das Unternehmen verlassen
  • Service-Accounts trennen: Technische Credentials (Server-Passwörter, API-Keys) gehören in eigene Collections, nicht in persönliche Tresore
  • Regelmäßige Audits: Das Admin-Panel zeigt inaktive Nutzer und nicht genutzte Collections — bereinigen Sie diese quartalsweise
  • Fail2Ban: Konfigurieren Sie Fail2Ban für wiederholte fehlgeschlagene Login-Versuche auf den Vaultwarden-Endpunkt
  • Updates: Vaultwarden erscheint regelmäßig mit Sicherheitsupdates — automatisieren Sie docker pull und Neustarts per Watchtower oder Cron

Sie möchten Vaultwarden professionell in Ihrer Unternehmensinfrastruktur betreiben? Unser Team unterstützt Sie bei Setup, Härtung und laufendem Betrieb: Linux-Infrastruktur und Kontakt aufnehmen.

Mehr zu diesen Themen:

IT-Beratung gewünscht?

Kontaktieren Sie uns für eine unverbindliche Beratung zu Proxmox, OPNsense, TrueNAS und mehr.

Jetzt Kontakt aufnehmen