Vaultwarden

Alternative inoffizielle Implementierung des Bitwarden Servers in Rust. Open Source & 100% kostenlos zum selber hosten. Bitwarden Client wird komplett unterstützt und kann problemlos verwendet werden.

Übersicht

Bei Vaultwarden handelt es sich um eine implementierung der Community des Bitwarden Servers in Rust. Der Server kann komplett kostenlos selbst gehostet werden z. B. als Docker Container. Der vollständige Code sowie die Dokumentation kann hier eingesehen werden: Vaultwarden GitHub

Vaultwarden unterstützt die folgenden (Bitwarden-)Features:

In allen Bitwarden Clients kann ein Vaultwarden Server als URL hinterlegt werden anstelle eines "richtigen" Bitwarden Servers. Es stehen trotzdem alle Funktionen zur Verfügung.

Tresor

Der Tresor eines Benutzers sieht im Web beispielsweise wie folgt aus.

grafik.png

Send

Im Menü Send können z. B. Passwörter oder Texte oder ganze Dateien sicher geteilt werden über einen Link samt Passwort sowie Ablaufzeit.

grafik.png

Werkzeuge

Unter den Werkzeugen steht z. B. ein Passwort Generator zur Auswahl sowie Im- und Exportfunktionen.

grafik.png

Berichte

Einige besonders interessante Funktionen sind im Reiter Berichte zu finden, womit beispielsweise die Passwörter überprüft werden können, um mögliche Kompromittierungen zu entdecken.

grafik.png

Organisationen

In diesem Menü können neue Organisationen erstellt und bestehende verwaltet werden. Für jede Organisation lassen sich Mitglieder samt Berechtigungen einstellen sowie Richtlinien für die Mitglieder festlegen wie z. B. 2FA erzwingen.

grafik.png

Installation

Die Installation des Vaultwarden Servers ist mit Docker schnell erledigt.

So würde z. B. folgende Docker Compose Datei bereits ausreichend sein, um eine funktionierende Instanz bereitzustellen.

  pass:
    image: vaultwarden/server
    container_name: vaultwarden
    environment:
      - TZ=Europe/Berlin
    volumes:
      - /pfad/zu/vaultwarden/data:/data
    ports:
      - 80:80
    restart: unless-stopped

Um die Docker Compose Konfiguration auszuführen, kann am besten in das Verzeichnis der YAML Datei gewechselt werden. Danach wird je nach nach gewählter Installation sudo docker-compose up -d oder sudo docker compose up -d (keine Bindestrich zwischen docker und compose) eingegeben, um die Standard Konfiguration docker-compose.yml zu starten. Compose erstellt dann die gewünschten Container mit den angegeben Optionen. Sollten die Container bereits mit dieser Compose Konfiguration erstellt worden sein, so werden die Container in dieser neu erstellt, dessen Konfiguration geändert wurde.

Nach einigen Sekunden ist die Weboberfläche von Vaultwarden unter http://Server-IP erreichbar.

Da Vaultwarden besonders sensible Daten wie eben Passwörter, Kreditkarteninformationen usw. speichert, sollte die Weboberfläche unbedingt mit HTTPS abgesichert werden. Die Entwickler selbst empfehlen einen Reverse Proxy, bieten jedoch auch eine eigene HTTPS Funktion über Rocket an: Vaultwarden HTTPS

Beim Aufruf der Seite erscheint das Login/Registrierungsfenster. Je nach weiterer Konfiguration (z. B. deaktivierter Registrierung) sieht diese etwas anders aus.

grafik.png

Mail & Send konfigurieren

Für einige Funktionen wie z. B. das Senden von Passwörtern / Geheimnissen ist ein E-Mail Konto samt SMTP-Server anzugeben.

Steht dieser zur Verfügung, am besten ein eigenes Postfach für Vaultwarden erstellen.

Danach die Docker Compose Konfiguration wie folgt erweitern.

    environment:
      - SENDS_ALLOWED=true
      - SMTP_HOST=smtp.beispiel.de
      - SMTP_FROM=vaultwarden@beispiel.de
      - SMTP_FROM_NAME=Vaultwarden
      - SMTP_SECURITY=starttls
      - SMTP_PORT=465
      - SMTP_USERNAME=vaultwarden
      - SMTP_PASSWORD=EinRichtigStarkes20+ZeichenPasswort
#      - SMTP_TRUSTSERVER=true

Die Option SENDS_ALLOWED aktiviert die Funktion zum Senden von Passwörtern / Geheimnissen. Alle anderen Optionen, die mit SMTP_ beginnen, konfigurieren die Einstellungen für den E-Mails Server sowie das Postfach.

Die Option SMTP_TRUSTSERVER wurde auskommentiert. Sofern es einen Zertifikatsfehler gibt, z. B. weil ein selbst signiertes Zertifikat verwendet wird, kann die Zertifikatsprüfung deaktiviert werden, indem diese Option aktiviert wird (Raute entfernen). Dies stellt jedoch eine SIcherheitsgefährdung dar und sollte nicht verwendet werden. Es sei denn, die Container sind direkt über den Host miteinander verbunden und kommunizieren nur Docker Intern.

Anschließend wie gewohnt die Compose Konfiguration neu laden und die Container neu erstellen lassen.

Um die Docker Compose Konfiguration auszuführen, kann am besten in das Verzeichnis der YAML Datei gewechselt werden. Danach wird je nach nach gewählter Installation sudo docker-compose up -d oder sudo docker compose up -d (keine Bindestrich zwischen docker und compose) eingegeben, um die Standard Konfiguration docker-compose.yml zu starten. Compose erstellt dann die gewünschten Container mit den angegeben Optionen. Sollten die Container bereits mit dieser Compose Konfiguration erstellt worden sein, so werden die Container in dieser neu erstellt, dessen Konfiguration geändert wurde.

Admin Seite aktivieren

Wenn gewünscht, kann eine Admin Seite aktiviert werden, über die sich Benutzer einladen, verwalten und löschen lassen.

Die Admin Seite wird über einen sog. Admin Token abgesichert. Mit diesem Token kann die Adminoberfläche geöffnet werden. Der Token kann eine beliebige Zeichenkette sein. Diese sollte möglichst lang sein, gut geschützt und geheim gehalten werden.

Die Aktivierung erfolgt durch eine zusätzliche Environment Variable in der Compose Konfiguration.

    environment:
      - ADMIN_TOKEN=hier_der_extra_lange_laaaange_token

Anschließend wie gewohnt die Compose Konfiguration neu laden und die Container neu erstellen lassen.

Um die Docker Compose Konfiguration auszuführen, kann am besten in das Verzeichnis der YAML Datei gewechselt werden. Danach wird je nach nach gewählter Installation sudo docker-compose up -d oder sudo docker compose up -d (keine Bindestrich zwischen docker und compose) eingegeben, um die Standard Konfiguration docker-compose.yml zu starten. Compose erstellt dann die gewünschten Container mit den angegeben Optionen. Sollten die Container bereits mit dieser Compose Konfiguration erstellt worden sein, so werden die Container in dieser neu erstellt, dessen Konfiguration geändert wurde.

Danach ist ein neuer Unterordner in der URL verfügbar: http://Server-IP/admin

Auf der neuen Seite können auch alle Einstellungen am Server geändert werden, die bisher über die Docker Compose Konfiguration geändert wurden, wie z. B. SMTP-Server.

grafik.png