Password Manager

Passwort Manager Vaultwarden

Ein Passwort Manager ist heutzutage kein „nice to have“ sondern ein „Must have“, wenn man die verschiedenen Meldungen in der Presse verfolgt, was kompromitierte Webseiten und Zugänge betrifft.

In meiner Tätigkeit als IT-Berater und System Engineer habe ich schon einige Passwort Manager genutzt:

  • 1Password
  • KeyPass
  • Enpass
  • LastPass
  • und zuletzt Vaultwarden

Alle Passwortmanager, deren Plugins und Anwendungen haben ihre Vorteile und Nachteile. Um im Browser auf einem Desktop-PC automatisch Passwörter ausfüllen zu lassen, benötigt es Browser-Erweiterung. Auch für 1Password oder Vaultwarden gibt es Browser-Add-ons, die beim Ausfüllen helfen und mal besser, mal schlechter, funktionieren.

Besonders praktisch ist Autofill auf dem Smartphone, denn Copy & Paste zwischen Apps ist wesentlich mühsamer als auf dem Desktop. Bei aktuellen Android- und iOS-Versionen klinken sich die Passwortmanager als Autofill-Provider ein und tragen Benutzernamen sowie Passwörter ein.

Datenschutz :

Leider sind alle Passwort Anwendungen auf den Smartphones mit Tracking versehen und tragen somit nicht wirklich zu Vertrauen bei. Aber es ist mal wie es ist, wir brauchen einen Manager, Plugins und seine Clients auf dem Smartphone.

  • Bitwarden mit 2 Tracking
  • Kaspersky mit 2 Tracking
  • Avira mit 8 Tracking
  • Dashlane mit 4 Tracking
  • und weitere …

Das große Problem mit den Plugins ist die Synchronisation. Es wird eine Unterstützung zu Nextcloud, OneDrive, Dropbox usw. angeboten. Nur wenn es ins Detail geht wird es kompliziert. Die Synchronisation z.B. mit Enpass über Nextcloud auf dem Samrtphone ist eine einzige Katastrophe. Auf dem Desktop geht das ganz ordentlich. Möchte nun das Szenario etwas tiefer betrachten.

Password Manager
Password Manager

Wenn wir das Bild betrachten, dann fällt uns auf dass immer nur eine Datei beschrieben wird von verschiedenen Geräten. Es sind zwar Plugins und Apps installiert, nur die Synchronisation erfolgt leider nicht gleichzeitig. Auf dem Desktop liegt die Datei vault.enpassdbsync die überwacht wird durch die Anwendung Nextcloud-Client selbst. Dh. wenn die Datei sich ändert wird diese sofort auf den Nextcloud Server übertragen.

Auf dem Smartphone ist es schwieriger bzw. fast unmöglich. Es muss lokal auf dem Smartphone die Datei vault.enpassdbsync gefunden werden und diese mit den Smartphone Anwendung direkt verbunden werden. Der Mist ist, dass immer und überall eine Datei hin und her verschoben werden muss damit diese synchron gehalten wird über den Nextcloud Server. Das gleiche gilt für Dropbox, Onedrive und andere Cloud Dienste. Andere Passwortmanager funktionieren ähnlich, wenn diese nicht über einen fremden Cloud Provider angebunden sind.

Wenn es mit der Synchronisation einfach gehen soll, geht das zu Lasten der Datensicherheit. In der Regel  kümmern sich die Anbieter darum dass alle Geräte per Push mit den neuen Daten synchronisiert werden. Dabei begibt man sich in die totale Abhängigkeit des Software Hersteller inkl. persönlicher Daten. Dies ist nicht der Weg zur „Digitale Souveränität“, sondern Selfhosting und Eigenkontrolle. Hinzu kommt noch, das man etwas dabei lernt und Lösungen für Firmenkunden anbieten kann.  

Neuer Ansatz

Wie wäre es wenn es eine Lösung gibt die wie folgt aussieht:

  • Keine Synchronisation über eine lokale Datei auf Endgeräten
  • Kein Nextcloud, OneDrive, Dropbox nötig
  • Echtzeit Synchronisation über alle Geräte
  • Über alle gängigen Browser in Echtzeit
  • Smartphones Sync
  • Einfaches Protokoll HTTP/HTTPS
  • Webanwendung über Browser erreichbar
  • Selfhosting für Digitale Souveränität
  • Einfache Installation und Wartung
  • Keine komplizierte Datensicherung
  • Keine Desktop Installation nötig

Die Lösung heißt „vaultwarden“ als Passwortmanager, die es auch als fertiges Docker Image gibt.

Wie im Bild oben zu sehen ist, benötigt es nur einen zentralen Server mit der Vaultwarden Installation. Der ganze Teil mit Desktop Anwendung und Schnittstelle zu Nextcloud etc. entfällt komplett. Die Übertragung und Synchronisation findet nur mit Plugins im Browser statt, mehr wird nicht benötigt. 

Installation

Erstelle ein Unterverzeichnis z.B. „vaultwarden“ und eine Datei „docker-compose.yml“ mit folgenden Inhalt:

version: '3'
services:
  bitwarden:
    image: vaultwarden/server:latest
    restart: always
    ports:
      - 8060:80
      - 3012:3012
    volumes:
      - bw-data:/data
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro
      - bw-data:/log
      - LOG_FILE=/log/bitwarden.log
    environment:
      - WEBSOCKET_ENABLED=true
      - SIGNUPS_ALLOWED=false
      - ADMIN_TOKEN=meingeheimertoken
      - INVITATIONS_ALLOWED=true
      - SHOW_PASSWORD_HINT=false

volumes:
     bw-data:

Im Anschluß starten wir den Container mit „docker-compose up -d“ aus dem Unterverzeichnis.

Nun sollte die Anwendung über den Browser erreichbar sein z.B. „http://docker-container-ip-adresse:8060“ . Die Anwendung müsste nun im Browser richtig angezeigt werden, aber es kann noch kein Benutzer angelegt werden, da die Anwendung nur über HTTPS funktioniert. Dazu nutze ich den Nginx-Proxy-Manager wie in diesem Artikel beschrieben : https://blog.unixweb.de/nginx-proxy-manager-fuer-homeoffice-mit-fritzbox/

In diesem Fall wird die IP-Adresse und der Port des Docker-Container eingetragen :

  1. Forward Hostname / IP -> IP-Adresse des Docker Host 
  2. Forward Port -> Port 8060
  3. Eventuell noch ein SSL-Zertifikat anlegen und mit dem Proxy Host verbinden
  4. Sicher gehen dass SSL eingeschaltet ist – Force SSL aktivieren
  5. Websocket aktivieren Port 3012 / 8060 mit zwei Einträgen unter „Custom Locations“
  6. Websockets Support aktivieren bei Proxy Host
  7. Fertig

Nun kann die Anwendung so aufgerufen werden das diese auch im Browser fehlerfrei funktioniert.
ACHTUNG: Hier muss ein bestimmter Parameter auf NICHT „false“ gesetzt werden, da sonst dass erstellen eines Benutzer auf der Startseite nicht möglich ist. Der Parameter ist absichtlich auf „false“ gesetzt, da ich nicht verantwortlich sein will für Hunderte offene Vaultwarden Instanzen im Internet.  

Legen wir nun einen Benutzer an, sofern der Parameter richtig gesetzt ist. Alternativ geht es auch über den Admin-Zugang unter „https://vaultwarden.example.com/admin/“. Im Feld „Invite User“ können Benutzer eingeladen werden. Bedingung:  ist dass unter Settings: SMTP Email Settings“ gesetzt sind, sonst kann keine Mail versendet werden. 

 

Tresor ist erstellt
Daten Import von 1Password Datei
Erfolgreicher Import von 1Password

Installation der Browser Plugins :

Nach der Installation muss dem Plugin mitgeteilt werden, welche Selfhosting URL dieser benutzen soll. Hierzu muss im Plugin oben links das „Zahnrad“ angeklickt werden. Bei Server URL dann die eigene Server URL eintragen und speichern. Im Anschluß „Anmelden“ anklicken und schon sollte der Tresor mit seinen Zugangsdaten sichtbar sein.

Dies soll es mal für diesen Teil gewesen sein. Es gibt noch ein paar Dinge die erklärt werden, die ich später ergänzen werde. Wie der Admin Zugang, die datei config.json, Mailversand, URL Mapping und MySQL Datenbank Anbindung.

Beste Grüße Joachim

Joachim

Aus Leidenschaft für Technik. Aktuelle Themen sind Datensicherheit, Software für Datenschutz, Mobile Geräte, Smartphone Sicherheit und Anwendungen, Raspberry Pi Geek.

Alle Beiträge ansehen von Joachim →

4 Gedanken zu “Passwort Manager Vaultwarden

  1. Ich habe es nicht selbst getestet, aber funktioniert das Anlegen des Kontos überhaupt, wenn im Compose-File explizit „SIGNUPS_ALLOWED“ auf „false“ gesetzt wird?

    1. Das geht nur über den Admin-Zugang, damit können Benutzer angelegt und verwaltet werden. Ich will ja nicht verantwortlich sein dass 100 Instanzen plötzlich offen sind für Registrierungen. Eine ganz einfache Vorsichtmaßnahme für die ich Verantwortung trage. Stände da „True“ würde hier sicher kommunziert, was ich mir erlaube sowas zu veröffentlichen. Wie man es macht man macht es immer verkehrt.

      Grüße Joachim

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert