Wähle einen Artikel
Passwortmanager Bitwarden auf VPS per Docker installieren
Passwortmanager Bitwarden auf VPS per Docker installieren

0. Überblick

  • Verwendetes System: Debian 10 64 bit
  • Genutzter User: Ich nehme alles als „root“ vor
  • Testserver: vServer XXL 2.0
  • Zeitdauer: ca. 10 Minuten
  • Schwierigkeit: Einfach. Nur Code kopieren 😉
  • Besonderheiten:

1. Bitwarden installieren

1.1 Einleitung

Bei Bitwarden handelt es sich um einen open source Password Manager. Ihr könnt Bitwarden selbst hosten und wisst dadurch immer, wo eure Passwörter gespeichert sind. Bitwarden wird in mehreren Version angeboten. Für zusätzliche müsst ihr eine jährliche Gebühr zahlen. Genau Infos dazu findet ihr hier: https://bitwarden.com/pricing

1.2 Infos zu yml Dateien

Bei yml Dateien ist es sehr wichtig, dass die Zeilen alle richtig eingerückt sind. Die Zeilen MÜSSEN immer mit der Leertaste eingerückt werden. Es dürfen KEINE Tabs enthalten sein. Ihr könnt den nachfolgenden Code immer online „überprüfen“ lassen. Die meisten Fehler entstehen nämlich durch die falsche Formatierung. Ein Dienst zum Überprüfen ist zum Beispiel: https://codebeautify.org/yaml-validator

1.3 Vorbereitung

Diese Anleitung basiert auf dem aktuellen Debian 10 Betriebssystem. Bitwarden werden wir unter Docker realisieren. Dies ermöglicht uns später sehr schnelle Updates und eine schnelle Installation.

Um Bitwarden neben anderen Diensten auf unserem Server betreiben zu können, nutzen wir hier den Reverse Proxy Traefik. Die Anleitung dazu finden Sie hier: https://www.dogado.de/vps/vserver-anwendungsfaelle/traefik-reverseproxy-auf-vserver-installieren

1.3.1 Benutzer erstellen

Wir erstellen uns einen neuen Benutzer „bitwarden“. Dazu gebt ihr folgendes ein:

adduser bitwarden 

Nun legen wir noch ein Kennwort fest. Gebt dazu folgendes ein:

passwd bitwarden 

1.3.2 Verzeichnis erstellen

Wir erstellen uns ein neues Verzeichnis, in welchem wir später alle Daten von Moodle abspeichen. Dazu geben wir folgendes in der Konsole ein:

mkdir -p /opt/containers/bitwarden 

Ihr könnt hier auch ein anderes Verzeichnis verwenden. Müsst dann aber die gesamte Anleitung entsprechend anpassen.

Nun müssen wir noch die Rechte des Ordners anpassen. Dazu gebt ihr folgendes ein:

chmod -R 700 /opt/containers/bitwarden 

Nun geben wir noch unserem neuen Benutzer die Rechte an dem Ordner:

chown -R bitwarden:bitwarden /opt/containers/bitwarden 

1.3.3 Installationsskript herunterladen

Nun laden wir uns das offizielle Skript zur Installation herunter. Gebt dazu folgendes ein:

cd /opt/containers/bitwarden 

curl -Lso bitwarden.sh https://go.btwrdn.co/bw-sh && chmod 700 bitwarden.sh 

1.3.4 yq installieren

Nun installieren wir noch das Programm „yq“. Dabei handelt es sich um Programm, welches uns später hilft, einige Docker Dateien (YML) anzupassen.

Zur Installation gebt ihr folgendes ein:

wget https://github.com/mikefarah/yq/releases/download/v4.13.5/yq_linux_amd64 -O /usr/bin/yq &&    chmod +x /usr/bin/yq 

1.3.5 Installationsskript ausführen

Um das Skript zu starten, müsst ihr folgendes eingeben:

./bitwarden.sh install 

Nun werdet ihr folgendes gefragt:

Terminalanzeige mit Bitwarden-ASCII-Banner und Open-Source-Text; Versionszeilen zu bitwarden.sh, Docker und docker-compose.

Gebt hier eure Domain ein. Bei mir ist das „bitwarden.testbereich.net“.

Nun werdet ihr gefragt, ob ein SSL Zertifikat generiert werden soll. Gebt hier „n“ ein, da dies Traefik für uns erledigt.

Kommandozeilen-Dialog: Domainabfrage für Bitwarden-Instanz und SSL-Zertifikatsabfrage; Cursor blinkt.

Nun müsst ihr einen Namen euer Passwortdaten wählen. Ich verwende hier den Namen „vault“, wie er vorgeschlagen wird. Ihr könnt aber auch jeden anderen Namen wählen.

Schwarzes Terminalfenster mit grüner Textanzeige: (!) Enter the database name for your Bitwarden instance (ex. vault): vault

Nun beginnt der Download der Docker Container.

Schwarzes Terminalfenster mit weißen Textzeilen; Meldungen wie Pulling from bitwarden/setup, Download complete.

Nach dem Download bekommt ihr folgende Meldung angezeigt:

Dunkles Terminalfenster mit grünem Text: (!) Enter your installation id (get at https://bitwarden.com/host):

Geht nun auf https://bitwarden.com/host und gebt dort eure E-Mail-Adresse ein:

Webseite mit Titel Request Hosting Installation Id & Key; roter Rahmen um das Feld Admin Email Address, blauer Button Submit.

Anschließend bekommt ihr eine Installations-ID sowie Key angezeigt.

Screenshot einer Webseite mit grünem Bereich unten; zeigt 'Installation Id' und 'Installation Key' (verpixelt).

Gebt die Installations-ID nun ein:

Dunkler Terminalbildschirm mit grüner Eingabeaufforderung: <Enter your installation id (get at https://bitwarden.com/host): 420...>

Als nächstes müsst ihr den Installations-Key eingeben.

Dunkles Terminalfenster mit orangefarbenem '(!)' und der Zeile '(!) Enter your installation key:' mit blinkendem Cursor.

Nun werden wir nach SSL Zertifikaten gefragt. Hier gebt ihr „n“ ein, da Traefik solche Zertifikate für uns erzeugt.

Schwarzes Terminalfenster mit weißem Text: (!) Enter your installation key:, Eingabefeld unscharf, grüner Cursor.

Nun werdet ihr wieder gefragt, ob ein Zertifikat erzeugt werden soll. Gebt hier wieder „n“ ein.

Terminalfenster mit weißem Text: (!) Do you have a SSL certificate to use? (y/n): und grünem Cursor.

Nun seid ihr fertig mit der Konfiguration und solltet folgendes sehen:

(!) Do you have a SSL certificate to use? (y/n): grüner Cursor am Ende.

2. Einstellungen anpassen

Nun werden wir noch einige Einstellungen in der Bitwarden Konfiguration anpassen

2.1 Domain anpassen

Zuerst müssen wir noch die URL anpassen. Dazu öffnet ihr folgende Datei:

nano /opt/containers/bitwarden/bwdata/config.yml 

Ändert dies nun ab:

Vorher:

url: http://bitwarden.testbereich.net 

nachher:

url: https://bitwarden.testbereich.net 

Danach öffnet ihr folgende Datei:

nano /opt/containers/bitwarden/bwdata/env/global.override.env 

Hier ändert ihr folgendes:

globalSettings__baseServiceUri__vault=http://bitwarden.testbereich.net 

nachher:

globalSettings__baseServiceUri__vault=https://bitwarden.testbereich.net 

2.2 E-Mail-Server anpassen

Nun passen wir noch den E-Mail-Server an. Dies ist notwendig, damit ihr später E-Mails über Bitwarden verschicken könnt. Ohne E-Mail kommt ihr beispielsweise nicht in den Admin Bereich. Wenn ihr diese Einstellungen tätigt und einen Fehler in der Konfiguration habt, dann läuft später die Nutzeranmeldung nicht korrekt. Daher ist hier sehr wichtig, dass hier alle Daten stimmen. Wenn ihr einen Fehler habt, so könnt ihr jederzeit später die Konfiguration erneut anpassen.

Zum Ändern der Einstellungen gebt ihr folgendes ein:

nano /opt/containers/bitwarden/bwdata/env/global.override.env 

Nun solltet ihr folgendes sehen:

Terminalfenster mit dunklem Hintergrund; zyanfarbener Text: (!) Do you want to generate a self-signed SSL certificate? (y/n):

Folgende Zeilen müsst ihr anpassen:

globalSettings__mail__replyToEmail=no-replay@bitwarden.testbereich.net 

globalSettings__mail__smtp__host=REPLACE 

globalSettings__mail__smtp__port=587 

globalSettings__mail__smtp__ssl=false 

globalSettings__mail__smtp__username=REPLACE 

globalSettings__mail__smtp__password=REPLACE 

Informiert euch hier bei eurem E-Mail Provider (gmail, web.de,…) wie eure Zugangsdaten sind.

Bei mir sieht es dann so aus:

globalSettings__mail__replyToEmail=admin@xxx.de 

globalSettings__mail__smtp__host=smtp.xxx.de 

globalSettings__mail__smtp__port=587 

globalSettings__mail__smtp__ssl=true 

globalSettings__mail__smtp__username=admin@xxx.de 

globalSettings__mail__smtp__password=meinSicheresPasswort 

Wichtig ist, dass in der Regel die Einträge „globalSettings__mail__replyToEmail“ und „globalSettings__mail__smtp__username“ identisch sein müssen.

2.3 Weitere Einstellungen

Hier findet ihr zusätzliche Infos zu den weiteren Einstellungen in dieser Datei.

3. docker-compose.override.yml erstellen

Nun müssen wir noch eine neue Datei erstellen, in der wir alle Einstellungen für Traefik vornehmen. Gebt dazu folgendes ein:

nano /opt/containers/bitwarden/bwdata/docker/docker-compose.override.yml 

Nun kopiert ihr folgenden Code in die Datei.

version: '3' 

services: 

 nginx: 

    labels: 

      - "traefik.enable=true" 

      - "traefik.http.routers.bitwarden.entrypoints=http" 

      - "traefik.http.routers.bitwarden.rule=Host(`bitwarden.euredomain.de`)"   # Hier eure URL eingeben # 

      - "traefik.http.middlewares.bitwarden-https-redirect.redirectscheme.scheme=https" 

      - "traefik.http.routers.bitwarden.middlewares=bitwarden-https-redirect" 

      - "traefik.http.routers.bitwarden-secure.entrypoints=https" 

      - "traefik.http.routers.bitwarden-secure.rule=Host(`bitwarden.euredomain.de`)"    # Hier eure URL eingeben # 

      - "traefik.http.routers.bitwarden-secure.tls=true" 

      - "traefik.http.routers.bitwarden-secure.tls.certresolver=http" 

      - "traefik.http.routers.bitwarden-secure.service=bitwarden" 

      - "traefik.http.services.bitwarden.loadbalancer.server.port=8080" 

      - "traefik.docker.network=proxy" 

      - "traefik.http.routers.bitwarden-secure.middlewares=secHeaders@file" 

 

networks: 

  proxy: 

    external: true 

Hier müsst ihr nun wieder die URL entsprechend anpassen.

Vorher:

- "traefik.http.routers.bitwarden.rule=Host(`bitwarden.euredomain.de`)" 

- "traefik.http.routers.bitwarden-secure.rule=Host(`bitwarden.euredomain.de`)" 

Nachher:

- "traefik.http.routers.bitwarden.rule=Host(`bitwarden.testbereich.net`)" 

- "traefik.http.routers.bitwarden-secure.rule=Host(`bitwarden.testbereich.net`)" 

4. Einstellungen übernehmen

Immer wenn ihr Einstellungen getätigt habt, müssen diese noch „übernommen“ werden. Dazu müsst ihr folgenden Befehl ausführen:

/opt/containers/bitwarden/./bitwarden.sh rebuild 

Nun werden die Konfigurationsdateien und Docker Dateien neu erstellt. Diesen Schritt müsst ihr immer tun, wenn ihr etwas ändert. Ebenfalls müsst ihr danach jedes Mal folgende Befehle ausführen. Diese Befehle benötigt ihr, damit Traefik korrekt funktioniert.

cd /opt/containers/bitwarden/bwdata/docker 

yq e -i 'del(.services.nginx.ports)' docker-compose.yml 

yq e -i 'del(.networks.public)' docker-compose.yml 

sed -i 's/public/proxy/g' docker-compose.yml 

sed -i 's/always/unless-stopped/g' docker-compose.yml 

5. Bitwarden starten

Mittels folgenden Befehls könnt ihr Bitwarden bequem starten:

/opt/containers/bitwarden/./bitwarden.sh start 

6. Bitwarden stoppen

Mittels folgenden Befehls könnt ihr Bitwarden bequem beenden:

/opt/containers/bitwarden/./bitwarden.sh stop 

7. Bitwarden Konto erstellen

Geht nun auf eure Webseite zum Beispiel https://bitwarden.euredomain.de

Nun solltet ihr folgendes sehen.

Screenshot einer Bitwarden-Anmeldeseite: Logo, E-Mail- und Master-Passwort-Felder, blauer Anmelden-Button.

Klickt dann auf „Konto erstellen“.

Bitwarden-Anmeldeseite mit Feldern für E‑Mail-Adresse und Master-Passwort; Buttons 'Anmelden' und hervorgehobenes 'Konto erstellen'.

Hier gebt ihr nun eine E-Mail-Adresse sowie Passwort ein.

Konto-Erstellung: Felder für E‑Mail, Name, Master-Passwort, Wiederholung; optionaler Hinweis; Absenden/Abbrechen.

Anschließend könnt ihr euch mit eurem neu erstellten Account anmelden.

Bitwarden-Anmeldeseite mit Logo, Felder für E-Mail-Adresse und Master-Passwort, Checkbox und blauem Anmelden-Button.

Nun solltet ihr die Hauptseite von Bitwarden sehen.

Screenshot von 'Mein Tresor': linke Filterliste, mittlerer Bereich mit Titel 'Mein Tresor' und Button 'Eintrag hinzufügen', Karten.

8. Administrator Account hinterlegen

Nun wollen wir unseren Account zum Administrator machen. Dazu öffnet ihr folgende Datei

nano /opt/containers/bitwarden/bwdata/env/global.override.env 

Hier ändert ihr die letzte Zeile ab:

vorher:

adminSettings__admins= 

nachher:

adminSettings__admins=admin@testbereich.net 

Gebt hier den Account an, welchen ihr zuvor erstellt habt. Wichtig ist, dass ihr einen korrekten E-Mail-Server hinterlegt haben müsst, da ihr euch nur per E-Mail-Link als Administrator anmelden könnt.

9. Nutzer Registrierung deaktivieren

Nun zeige ich euch, wie ihr die Nutzer Registrierung auf der Startseite deaktivieren könnt. Solltet ihr dies nicht tun kann jeder sich bei euch einen Account erstellen. Öffnet dazu folgende Datei:

nano /opt/containers/bitwarden/bwdata/env/global.override.env 

Hier passt ihr folgende Zeile an:

vorher:

globalSettings__disableUserRegistration=false 

nachher:

globalSettings__disableUserRegistration=true 

Nach diesen Änderungen müsst ihr nun Schritt 4 erneut ausführen!!

10. Als Administrator einloggen

Wenn ihr euren Account als Administrator hinterlegt habt und einen korrekten E-Mail-Server eingetragen habt, so könnt ihr euch als Admin anmelden. Geht dazu auf folgende Webseite: https://bitwarden.euredomain.de/admin

Nun solltet ihr folgendes sehen. Hier gebt ihr nun die E-Mail-Adresse eures Administrator Benutzers an.

Zentrales weißes Anmeldeformular mit E-Mail-Feld, Beispieltext ex. john@example.com, blauem Continue-Button.

Wenn alles korrekt ist, solltet ihr eine E-Mail erhalten. Diese sieht so aus:

Bitwarden-Logo oben; Login-Box mit Button 'Log In Now' und Hinweistext; darunter Social-Icons.

Nun könnt ihr auf den Link klicken und seid im Admin Interface.

Screenshot der Bitwarden-Admin-Seite: Dashboard mit Version, Einstellungen, Host, Port, SSL, StartTLS und Installations-ID.

Hier könnt ihr euch nun beispielsweise alle Benutzer anschauen und bearbeiten / löschen.

Admin-Panel: Users mit Suchfeld; Tabelle: Email, Created, Details; Zeile test@gonealand.de, 10/29/2021; Details-Symbole.

11. Premium Funktionen aktivieren

Wenn ihr noch mehr Funktionen benötigt, so könnt ihr euch eine Premium Mitgliedschaft holen. Diese bietet euch folgende Vorteile:

Dialogfenster 'Zu Premium wechseln' mit Vorteilenliste und grünem Haken; Button 'Premium-Mitgliedschaft erwerben'.

Die Lizenzdatei könnt ihr unter „Einstellungen à Zu Premium wechseln“ hochladen.

Screenshot einer Einstellungsseite: Linkes Menü mit hervorgehobenem 'Zu Premium wechseln'; Lizenzdatei mit 'Datei auswählen' und Absenden.

12. Zwei Faktor Authentifizierung aktivieren

Ihr könnt in den Einstellungen euren Account mittels 2 Faktor Authentifizierung absichern. Dazu geht ihr unter „Einstellungen --> Zwei-Faktor-Authentifizierung“.

Screenshot einer Web-Oberfläche: Leiste 'Einstellungen', linkes Menü mit 'Zwei-Faktor-Authentifizierung' markiert.

Nun stehen euch folgende Möglichkeiten zur Verfügung:

Liste von Anbietern zur Authentifizierung mit Logo-Icons: Authenticator-App, YubiKey, Duo Security, WebAuthn-Schlüssel, E-Mail.

Wie ihr seht, sind einige Möglichkeiten nur als Premium Nutzer möglich.

Nächster Artikel
PeerTube auf VPS/vServer installieren
Weitere passende Themen