Wer heute noch keinen Passwortmanager einsetzt, hat definitiv ein Sicherheitsproblem. Auf keinen Fall sollen die Logins zu leicht sein, auf keinen Fall sollte man überall das gleiche Passwort benutzen. Bei der Vielzahl an Diensten, bei denen man angemeldet ist, kann man sich nicht alle Passwörter merken. Ein Passwortmanager speichert diese Logins sicher ab und bietet dabei noch Komfortfunktionen wie das automatische Ausfüllen von Login-Feldern.
Warum Bitwarden?
Eine häufige Empfehlung ist Bitwarden. Schon in der kostenlosen Variante bietet es alle notwendigen Funktionen für eine dauerhafte Nutzung, dabei ist es für jedes Betriebssystem und in Browsern als Erweiterung verfügbar. Da Bitwarden zusätzlich Open Source ist, hat man sogar die Möglichkeit es selbst zu hosten. Dann liegen die verschlüsselten Daten nicht mehr beim Anbieter auf dem Server, sondern bei einem selbst. Dafür muss man dann auch selbst dafür sorgen, dass es ein Backup der Daten gibt, falls das System mal ausfällt. Die offiziellen Anwendungen, Apps und Erweiterungen lassen sich auch mit einem selbst gehosteten Server nutzen.
Zur offiziellen Webseite: https://bitwarden.com/de-de/
Was ist Vaultwarden?
Die offziellen Bitwarden Server bestehen aus mehreren Docker Containern und haben keine geringen Systemanforderungen, da sie auf den Betrieb von sehr vielen Nutzern ausgelegt sind. Deswegen gibt es das Open Source Projekt “Vaultwarden” (https://github.com/dani-garcia/vaultwarden). Dies ist ein in der Programmiersprache Rust nachgebauter Server, der mit Bitwarden voll kompatibel ist. Dieser benötigt nur sehr geringe Ressourcen, besteht aus nur einem Container und bietet zusätzlich alle Funktionen, die man sonst nur mit einem offiziellen Premium-Abo erhalten würde. Diese Anleitung beschreibt die Installation von Vaultwarden.
Voraussetzungen
Folgende Voraussetzungen müssen für diese Anleitung erfüllt sein:
- Docker ist installiert: Docker - Installation auf Server
- Traefik ist als Reverse Proxy einsatzbereit: Traefik als Reverse Proxy
Es kann auch ein anderer Reverse Proxy genutzt werden, dies wird hier aber nicht beschrieben.
Ordnerstruktur in dieser Anleitung (muss nicht übereinstimmen):
|
|
Vorbereitungen
Zunächst legen wir einen neuen Unterordner für das neue docker-compose-Projekt “Bitwarden” gemäß der zuvor genannten Ordnerstruktur an und wechseln in das Verzeichnis.
|
|
Außerdem benötigen wir ein Passwort, das wir für das Admin-Panel von Vaultwarden festlegen. Da dies nicht im Klartext in die yaml-Datei geschrieben werden soll, müssen wir das vorab verschlüsseln.
Dazu installieren wir zunächst das Tool “argon2”:
|
|
Jetzt generieren wir uns ein sicheres Passwort mit:
|
|
Das Ergebnis daraus ist ein langes kryptisches Passwort, ähnlich diesem: Os/E9pO16/IbhQRJ5qH4UDNwrHPrwjx2jGnHAiGMJxsHr4YVZzvGfcQsq4W7vIXX
Dies müssen wir uns gut wegspeichern. Das ist das Passwort, das zukünftig im Adminpanel eingegeben werden muss.
Jetzt verschlüsseln wir das gerade generierte Passwort noch, damit es nicht im Klartext irgendwo eingetragen werden muss. (“LANGES_ERSTELLTES_PASSWORT” muss ersetzt werden):
|
|
Konkretes Beispiel (nicht so benutzen, sondern eigenes Passwort eintragen!):
|
|
Ergebnis (Beispiel): $$argon2id$$v=19$$m=65540,t=3,p=4$$ekJ5MnJlaE1MbDkyRDRURkMvNnRQalA4WWs0V0xGWWEvcm5mK2xFaXhuVT0$$0rWuLO1FI2Pz/WuOMKdWPIq00rUFg+eu084+4/xVkGM
Dieses Ergebnis müssen wir uns zwischenspeichern, da wir es gleich in der docker-compose.yml benötigen.
Vaultwarden Container erstellen
Da wir uns noch im Ordner ~docker/bitwarden
befinden, können wir direkt eine neue docker-compose.yml
Datei anlegen und direkt im Editor nano öffnen:
|
|
In diese Datei kopieren wir nachfolgenden Inhalt. Dabei musst du folgendes anpassen:
- In “environment” die Variable
ADMIN_TOKEN
. Hier musst du dein verschlüsseltes Passwort angeben, der String startet mit $$argon2… - In “environment” müssen die Variablen
DOMAIN
undDOMAIN_ORIGIN
mit der URL gefüllt werden, unter der Vaultwarden erreichbar sein soll. - Bei den “labels” muss ebenfalls 2x die korrekte Domain gesetzt werden bei den “Host(
bitwarden.deinedomain.de
)-Angaben.
Der Rest kann so bleiben, sofern die Einrichtung von Traefik nach der Anleitung hier im Blog erfolgt ist.
|
|
Speichern und schließen mit
Win: STRG+O, ENTER, STRG+X
Mac: CONTROL+O, ENTER, CONTROL+X
Damit können wir den Container erstellen und starten lassen und gehen direkt im Anschluss wieder ins Log, um sicherzustellen dass keine Fehler zu sehen sind.
|
|
Die Ausgaben im Log sollten ungefähr so aussehen:
|
|
Log verlassen mit
Win: STRG+C
Mac: CONTROL+C
Vaultwarden öffnen
Es kann noch 1-2 Minuten nach dem Start dauern, bis die Seite dann erreichbar ist, aber dann solltet ihr unter eurer angegebenen Domain die Startseite von Vaultwarden sehen, sofern euer DNS richtig eingestellt ist.
Das Adminpanel erreicht ihr, wenn ihr an eure Vaulwarden-Domain ein ’ /admin’ anhängt, also https://bitwarden.euredomain.de/admin
Der Admin-Token ist der unverschlüsselte lange String, also der den wir im ersten Schritt generiert haben.
Bitwarden Apps
In den Bitwarden Desktop Anwendungen, Mobile Apps und Browser-Erweiterungen gibt es beim Login immer ein kleines Zahnrad für die Einstellungen. Hier kann man dann die URL von seiner selbstgehosteten Instanz eintragen, damit die Anwendung auf diese zugreift statt mit den offiziellen Bitwarden Servern zu arbeiten.
Abschließende Hinweise
Wenn man seinen Passwortmanager selber hostet, sollte man sich auf jeden Fall Gedanken über ein gutes, regelmäßiges Backup machen. Verliert man diese Daten, sind alle gespeicherten Logins verloren.
In dieser Anleitung liegen die zu sichernden Daten in einem Docker Volume, dieses ist hier zu finden: /var/lib/docker/volumes/bitwarden-data/_data/
. Da hier auch eine SQLite-Datenbank genutzt wird, sollte der Container gestoppt werden, bevor die Daten kopiert werden. (docker stop bitwarden
, danach docker start bitwarden
).
Wenn es sich um einen Internetserver handelt, sollte dieser auch vernünftig abgesichert sein und regelmäßig aktualisiert werden. Hilfen dazu gibt es hier im Blog.