Vaultwarden ist ein zu 100% zu Bitwarden kompatibler Passwortmanager. Allerdings ist Vaultwarden Open Source und ohne Einschränkungen kostenlos nutzbar.
Der Zugriff auf den Passwortmanager soll über einen Reverse-Proxi erfolgen, mit dem die SSL-Verschlüsselung sichergestellt wird. Details dazu siehe Nginx. Wenn der Dienst vom bösen, großen Internet aus erreichbar sein soll, muss außerdem eine Portweiterleitung und eine dynamische Domain eingerichtet werden. Hier kann ich ipv64.net empfehlen. Alternativ dazu kann der Zugriff auch über Pangolin hergestellt werden. Außerdem brauchen wir Docker und Docker-Compose. Wie ich das üblicherweise installiere, habe ich hier beschrieben: https://tutorials.kernke.koeln/serveranwendungen/docker.html.
Zunächst ist daher ein Verzeichnis für die Compose-Datei zu erstellen und in das Verzeichnis zu wechseln:
mkdir vaultwarden
cd vaultwarden
Dann ist eine Datei namens "docker-compose.yml" zu erstellen und mit Inhalt zu befüllen:
nano docker-compose.yml
Der Inhalt ist folgender (per Copy&Paste einzufügen):
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: always
environment:
DOMAIN: "https://vault.example.com" # Anpassen!
SIGNUPS_ALLOWED: "true" # wird später geändert
ADMIN_TOKEN: <output of openssl rand -base64 48>
volumes:
- ./vw-data:/data
ports:
- 8443:80
Die Domain muss natürlich angepasst werden. Das speichern wir erst einmal. Das Admin-Token müssen wir jetzt erstellen mit dem Befehl:
openssl rand -base64 48
Das Ergebnis dieser Anweisung ist ein kryptischer Code, den wir in die yml-Datei an die entsprechende Stelle eintragen müssen. Das brauchen wir nachher, um uns an der Adminoberfläche anmelden zu können.
Nun starten wir den Docker-Container mit
docker-compose up -d
oder je nachdem wie Docker-Compose an dem System installiert wurde ohne Bindestrich also
docker compose up -d
Die Einrichtung einer Portweiterleitung ist abhängig vom verwendeten Internet-Router und wird daher hier nicht beschrieben. Ich gehe also im Folgenden davon aus, dass unser soeben gestarteter Dienst intern unter Port 8443 erreichbar ist und extern unter der dynamischen Domain unter Port 443. Wir surfen also den Server an und finden dort unter dem Anmeldedialog einen kleinen Link "Konto erstellen". Wenn wir den anklicken, dann können wir (tatsächlich ;-) ein neues Konto erstellen. Die nachfolgend einzutragenden Daten sind selbsterklärend bzw. hinreichend auf der Maske beschrieben. Interessant ist hier das Feature, das Passwort gegen Datenbanken mit gestohlenen Passworte prüfen zu lassen. Sollte diese Prüfung positiv ausfallen, dann wäre das negativ und man sollte ein anderes Passwort wählen.
Nachdem wir den Account eingerichtet haben, sollten wir die Möglichkeit, sich einen Account ohne Einladung zu erstellen, aus Sicherheitsgründen deaktivieren (s.o.). Dazu melden wir uns an der Adminoberfläche an, indem wir die Domain unserer Vaultwarden-Installation gefolgt von "/admin" eingeben. Nun müssen wir den zuvor erstellten Admin-Token eingeben, um uns anmelden zu können. Dort kann man zunächst unter "Settings" das Häkchen bei "Allow new signups" entfernen und somit unerwünschte Accounts fremder Leute vermeiden. Möchte man später den Dienst anderen anbieten, dann kann man ihnen über diese Admin-Oberfläche unter dem Register "Users" eine Einladung schicken.
Auf der Admin-Oberfläche werden wir ermahnt, dass unser Admin-Token zu simpel und daher unsicher ist. Dort ist auch ein Link, unter dem wir lernen können, wie wir das ändern. Eine Möglichkeit - und meines Erachtens die naheliegendste - ist die, mit Vaultwarden selbst ein sichereres Token zu generieren. Dazu gehen wir wieder in die Shell und geben dort ein:
docker exec -it vaultwarden /vaultwarden hash
Damit senden wir das Kommando "/vaultwarden hash" gegen den Container vaultwarden. Dann werden wir aufgefordert, uns ein Passwort auszudenken und es zu bestätigen. Dieses Passwort brauchen wir später, um uns an der Admin-Oberfläche anzumelden. Danach wird ein entsprechender Code ausgegeben, den wir unter "Generell Settings/Admin token/Argon2 PHC" eingeben können. Wenn wir das speichern, verschwindet der Hinweis auf das unsichere Admin-Token. Dann können wir noch unter "Settings/SMTP Email Settings" Zugangsdaten für einen eMailaccount eingeben, damit unser Vaultwarden-Server auch mailen kann. Dann kann man die Adminoberfläche verlassen. Das Token wird in der Datei "config.json" gespeichert, die sich im Order "~/vaultwarden/vw-data" befindet.
Bei der künftigen Anmeldung an der Admin-Oberfläche wird nach einem Admin-Token gefragt. Aber anders als man denken könnte, handelt es sich dabei nicht um das soeben erstellte Token, sondern hier brauchen wir das Passwort, das wir bei Erstellung des Tokens vergeben haben.
Vaultwarden ist kompatibel mit Bitwarden. Darum lassen sich Browser-Erweiterungen und iOS- sowie Android-Apps, die für Bitwarden bestimmt sind, auch mit Vaultwarden nutzen