In einer digitalisierten Welt benötigt jeder Nutzer zahlreiche Passwörter für unterschiedliche Accounts und Anwendungen. Dabei ist es wichtig, dass die Passwörter sicher und gut verwaltet werden, um den Zugriff auf persönliche Daten zu schützen. Ein praktisches Tool zur Verwaltung der Passwörter ist ein Passwort-Manager. Vaultwarden ist eine solche Open-Source-Software, die auch auf einem Synology NAS installiert werden kann. In diesem Artikel erkläre ich passend zum Weltpassworttag, wie man Vaultwarden auf einem Synology NAS unter Docker einrichtet und die Passwörter sicher verwaltet.
Vaultwarden ist eine freie und Open-Source-Passwortverwaltungsanwendung, die von Bitwarden abstammt. Das selbst-gehostete Passwort-Management-Tool ermöglicht es den Benutzern, ein sicheres Passwort für jede ihrer Anmeldungen zu erstellen und zu speichern. Vaultwarden ist eine großartige Alternative zu anderen proprietären Passwort-Management-Lösungen. Es ist eine einfache, aber leistungsstarke Anwendung, die eine breite Palette von Funktionen bietet, die von Hosting und Management bis hin zu Synchronisation und Integration mit Drittanbietern reicht.
Docker ermöglicht es, eine Anwendung in einem Container laufen zu lassen, was bedeutet, dass die Anwendung isoliert und getrennt von anderen Anwendungen und Systemkomponenten läuft. Ein weiterer wichtiger Vorteil der Verwendung von Docker zur Installation von Vaultwarden besteht darin, dass dies Installation, Migrationen und Upgrades erleichtert.
Ich nutze ein Synology NAS. Es handelt sich um ein DS220+(Amazon Affiliate-Link) mit 10 GB RAM(Amazon Affiliate-Link).
So viele Ressourcen sind jedoch nicht für Vaultwarden nötig.
Systemanforderung | Minimum |
---|---|
CPU | 0.2 Kerne |
RAM | 128 MB |
Speicherplatz | 200 MB |
Die Anleitung lässt sich auch analog auf andere Geräte mit Docker anwenden.
Ein Reverse-Proxy-Manager im Netzwerk ist nötig, unabhängig davon, ob er sich auf einem anderen Gerät oder dem Synology NAS befindet. Ebenso ist dementsprechend eine Domain sinnvoll.
Docker sollte auf dem NAS installiert sein. Zur Einrichtung einer Synology DiskStation habe ich hier mehr geschrieben. Portainer ist grundsätzlich nicht zwingend notwendig, aber hilfreich. Im Folgenden beziehe ich mich auf eine Installation darüber, statt des Container Managers.
Als Nächstes benötige ich einen Ordner, in den ich die persistenten Daten speichern möchte. Ich erstelle einen Ordner namens vaultwarden-data
und merke mir den Pfad.
Nächster Schritt ist die Installation von Vaultwarden mithilfe von Docker-Compose. Dazu erstelle ich in Portainer einen neuen Stack.
version: '3'networks:internal:external: falseservices:vaultwarden:container_name: vaultwardenimage: vaultwarden/serverrestart: unless-stoppedvolumes:- /pfad-zum-ordner:/data # Pfad zum Ordner auf dem NAS ändern z.B. /volume1/docker/vaultwarden-data:/dataports:- 1234:80 # Port (links) kann geändert werden- 3012:3012 # Port (links) kann geändert werdenenvironment:- WEBSOCKET_ENABLED=true- ADMIN_TOKEN=einsicherespasswort # Token für Admin-Loginnetworks:- internal
Nutze ich einen Proxy Manager auf meiner DiskStation, füge ich stattdessen das Netzwerk des Proxy-Managers hinzu und entferne die Portangaben.
Nun kann ich den Stack erstellen und warten, bis der Container läuft.
Im Log des Containers sollte stehen, dass der Server läuft.
Ich richte einen Proxy Host ein. Das Vorgehen ist abhängig vom jeweiligen Reverse Proxy.
Unter Caddy würde es ungefähr so aussehen:
# Hier die Domain eintragenvaultwarden.domain.de {encode gzip# Hier den Port aus der docker-compose.yml eintragen mitsamt der IP des NASreverse_proxy /notifications/hub/negotiate 192.123.123.40:1234# Hier den Port aus der docker-compose.yml für den Web Socket eintragenreverse_proxy /notifications/hub 192.123.123.40:3012# Hier wieder den erstenreverse_proxy 192.123.123.40:1234}
Im Nginx Proxy Manager würde es so aussehen:
Ich benötige ein Let’s Encrypt Zertifikat, um Vaultwarden über HTTPS erreichbar zu machen.
# location /admin {# return 404;# }location / {proxy_pass http://192.123.123.40:1234;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://192.123.123.40:3012;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";}location /notifications/hub/negotiate {proxy_pass http://192.123.123.40:1234;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;}
Port und IP-Adresse müssen natürlich angepasst werden.
Ich rufe anschließend die URL auf und erstelle einen neuen Benutzer.
Ich logge mich mit dem Admin-Token ein, das ich in der docker-compose.yml angegeben habe. Dazu rufe ich die URL mit /admin
auf.
Dort ändere ich unter “General Settings” die Domain und kann in diesem Menüpunkt auch die Registrierung neuer Benutzer deaktivieren oder auch wieder aktivieren.
Unter “SMTP Email Settings” kann ich die E-Mail-Einstellungen vornehmen, damit mir Vaultwarden E-Mails schicken kann.
Unter dem Menüpunkt “Users” kann ich neue Benutzer einladen.
Ich kann den Admin Bereich auch deaktivieren, indem ich in den Einstellungen meines Proxy Managers die #
entferne.
location /admin {return 404;}[...]
Ein Update von Vaultwarden ist sehr einfach manuell durchzuführen. Ich muss lediglich den Stack neu erstellen. Dazu gehe ich in den Editor des Stacks in Portainer und drücke auf “Update the stack”. Ich wähle auch aus, dass das Image neu gezogen werden soll.
Gibt es ein neues Release, sollte dieses mit dem Vorgehen heruntergeladen und gestartet werden.
Vaultwarden ist eine gute Alternative zu Bitwarden. Die Installation ist sehr einfach und die Verwaltung ist auch für mehrere Benutzer sehr einfach. Die Einrichtung eines Reverse Proxies ist zwar etwas aufwendiger, aber auch nicht sehr kompliziert. Ich hoffe ich konnte mit diesem Artikel weiterhelfen.