Bitwarden: Sichere Passwortverwaltung

  1. Deployment der Docker Compose Datei und Konfiguration der E-Mail-Benachrichtigungen
  2. Generierung eines sicheren ADMIN-TOKENs im Terminal
  3. Aktualisierung des ADMIN_TOKEN im Portainer Stack
  4. Konfiguration von Caddy
  5. Zugriff auf die Bitwarden-Webvault
  6. Erstellen Ihres ersten Bitwarden-Accounts über eine Einladung
  7. Verwenden von Bitwarden – Einrichtung 2FA
  8. Einrichtung der UFW-Firewall für Bitwarden
  9. Fazit

Um eine reibungslose Installation und Nutzung von Bitwarden zu gewährleisten, ist es unabdingbar, die im vorherigen Tutorial erläuterten Vorbereitungsmaßnahmen abgeschlossen zu haben. Insbesondere das Deployment des Caddy Reverse Proxys mit einer bereits konfigurierten Subdomain, ausgeführt in Schritt 5 „Optional: Caddy als Reverse Proxy: Einrichtung von Caddy zur Erreichbarkeit von externen Diensten und zur Vereinfachung der SSL/TLS-Zertifikatsverwaltung„, und Schritt 6 „Optional: DynDNS mit Fritzbox: Einrichtung des kostenlosen DynDNS-Dienstes über die Fritzbox mit Selfhost“ sind von zentraler Bedeutung. Die folgenden Anleitungen zur Implementierung von Bitwarden mittels einer Docker Compose Datei und Portainer bauen auf diesen vorbereitenden Schritten auf. Im Folgenden wird der Deployment-Prozess von Bitwarden mit Hilfe einer Docker Compose Datei und Portainer erläutert. Durch die selbstgehostete Implementierung von Bitwarden auf Ihrem eigenen Server erhalten Sie eine vollständige Kontrolle und Einsicht in Ihre Passwortverwaltungsinfrastruktur. Dies bietet zahlreiche Vorteile gegenüber gehosteten Lösungen:

  • Datensouveränität: Ihre sensiblen Daten bleiben in Ihrer Kontrolle, ohne Dritte involviert zu haben. Dies ist besonders wichtig, wenn es um den Schutz persönlicher oder unternehmenskritischer Informationen geht.
  • Kosteneffizienz: Im Vergleich zu abonnementbasierten Passwortverwaltungsdiensten können Sie Kosten sparen, insbesondere wenn Sie bereits über die notwendige Hardware und Infrastruktur verfügen.
  • Anpassbarkeit: Mit dem Zugriff auf den Quellcode und die Serverinfrastruktur können Sie Bitwarden nach Bedarf anpassen und erweitern.
  • Offline-Zugang: Eine selbstgehostete Lösung ermöglicht es Ihnen, auch ohne Internetverbindung auf Ihre Passwortdatenbank zuzugreifen, vorausgesetzt, Sie befinden sich im gleichen Netzwerk wie Ihr Server.
  • Erweiterte Sicherheitsfeatures: Die Möglichkeit, zusätzliche Sicherheitsebenen wie Fail2Ban, Web Application Firewalls oder andere Sicherheitsmaßnahmen zu integrieren, erhöht die Sicherheit Ihrer Passwortverwaltungslösung weiter.

Mit diesen Vorteilen im Hinterkopf, bietet das Hosting von Bitwarden auf Ihrem eigenen Server eine robuste und sichere Umgebung für die Verwaltung Ihrer Passwörter. Die nachfolgenden Schritte leiten Sie durch den Prozess der Einrichtung von Bitwarden mittels einer Docker Compose Datei und Portainer.

Deployment der Docker Compose Datei und Konfiguration der E-Mail-Benachrichtigungen

Kopieren Sie die nachstehende Docker Compose Datei und fügen Sie sie in Portainer als neuen Stack ein.

  • Navigieren Sie zu Ihrem Portainer-Dashboard. –> Ihre-lokale-IP-des-Raspberry-Pi’s:9000
  • Klicken Sie in der Mitte auf „local“.
Portainer – Startbildschirm

Gehen Sie in der linken Navigationsleiste auf „Stacks“ und klicken Sie oben rechts auf „+ Add stack“.

Stacks Übersicht
  • Geben Sie dem Stack einen Namen, z.B. bitwarden-fail2ban.
  • Kopieren Sie den nachfolgend bereitgestellten Docker-Compose-Code in das Feld „Web editor“.

Wichtig: Passen Sie zuvor die folgenden SMTP Paramter gemäß Ihres E-Mail Providers an:

  • - DOMAIN=https://IHRE-SUBDOMAIN.selfhost.co
  • - ADMIN_TOKEN=IHR-SICHERER-PCH-ADMIN-TOKEN –> Wird für den Zugriff auf das Vaultwarden Admin Panel benötigt.
  • - SMTP_HOST=MAIL.EXAMPLE.COM --> Der SMTP Mailserver Ihres Mailproviders
  • - SMTP_FROM=IHRE-E-MAIL-ADRESSE
  • - SMTP_USERNAME=IHRE-EMAIL-ADRESSE
  • - SMTP_PASSWORD=IHR-LOGIN-PASSWORT
version: '3.8'

services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    environment:
      - DOMAIN=https://IHRE-SUBDOMAIN.selfhost.co
      - LOGIN_RATELIMIT_MAX_BURST=3
      - LOGIN_RATELIMIT_SECONDS=30
      - LOGIN_RATELIMIT_BLOCK_DURATION=86400
      - ADMIN_RATELIMIT_MAX_BURST=3
      - ADMIN_RATELIMIT_SECONDS=30
      - ADMIN_RATELIMIT_BLOCK_DURATION=86400
      - ADMIN_TOKEN=IHR-SICHERER-PCH-ADMIN-TOKEN 
      - WEBSOCKET_ENABLED=true
      - SENDS_ALLOWED=true
      - EMERGENCY_ACCESS_ALLOWED=true
      - WEB_VAULT_ENABLED=true
      - SIGNUPS_ALLOWED=false
      - SIGNUPS_VERIFY=true
      - SIGNUPS_VERIFY_RESEND_TIME=3600
      - SIGNUPS_VERIFY_RESEND_LIMIT=3
      - SMTP_HOST=MAIL.EXAMPLE.COM 
      - SMTP_USERNAME=IHRE-EMAIL-ADRESSE   
      - SMTP_SECURITY=starttls
      - SMTP_PORT=587
      - SMTP_PASSWORD=IHR-LOGIN-PASSWORT
      - SMTP_AUTH_MECHANISM="Login"
      - TZ=Europe/Berlin
    volumes:
      - /home/ubuntu/docker-compose-data/vaultwarden-caddy/vaultwarden-data:/data
    networks:
      - caddy_reverse_proxy
      - internal

  fail2ban:
    image: crazymax/fail2ban:latest
    container_name: fail2ban
    cap_add:
      - NET_ADMIN
      - NET_RAW
    volumes:
      - /home/ubuntu/docker-compose-data/vaultwarden-caddy/fail2ban-data:/data
      - /var/run/docker.sock:/var/run/docker.sock:ro
    networks:
      - caddy_reverse_proxy
      - internal

networks:
  caddy_reverse_proxy:
    external: true
  internal:

Deployment des bereitgestellten Docker-Compose-Codes

Nachdem Sie den Stack in Portainer deployed haben, sollten die Dienste vaultwarden, caddy und fail2ban nun laufen. Überprüfen Sie den Status auf der Portainer-Übersichtsseite.

Status über laufende Container

Generierung eines sicheren ADMIN-TOKENs im Terminal

Für eine erhöhte Sicherheit ist es ratsam, ein Argon2 PHC (Password Hashing Competition) Hash für das ADMIN_TOKEN zu verwenden statt eines einfachen Textes. Folge diesen Schritten, um ein sicheres ADMIN_TOKEN zu generieren und zu setzen:

  1. Verbinden Sie sich mit Ihrem Raspberry-Pi über den Remote-Desktop-Manager bzz. stellen Sie eine SSH-Verbindung her:
  2. Führe den folgenden Befehl aus, um einen sicheren Argon2 PHC-String zu generieren.
docker exec -it vaultwarden /vaultwarden hash
Generierung eines sicheren ADMIN_TOKENs

Passwort eingeben:
Sie werden aufgefordert, ein mindestens 8-stelliges Passwort einzugeben. Dieses Passwort wird verwendet, um den Argon2 PHC-String zu generieren. Geben Sie Ihr gewähltes Passwort ein und bestätigen mit Enter und geben Sie es erneut ein um es zu bestätigen.

Argon2 PHC-String kopieren:
Nachdem Sie das Passwort eingegeben haben, wird ein Argon2 PHC-String generiert und im Terminal angezeigt. Kopieren Sie diesen String (hellblau markiert).

Generierter Argon2 PCH Admin Tokem im Terminal

Aktualisierung des ADMIN_TOKEN im Portainer Stack

$argon2id$v=19$m=65540,t=3,p=4$vIz27x7FPxEwavMwPpM7jaT/vqY0wFwTL5ZwfTMMssk$/CNtFI7kvylEJj9FpGwUS+Vdc11MSzAT+0kNgUNstyg

Wichtig: Aktuell müssen Sie den String anpassen:

Sie müssen das Dollar Zeichen ($) in dem PCH-String mit einem weiteren Dollarzeichen $ ergänzen –> zu $$ wie nachfolgend beispielhaft angeführt und ohne die einfachen Anführungszeichen ‚ ‚ in Portainer unter Stacks –> bitwarden-fail2ban –> Web Editor unter ADMIN_Token einfügen und anschließend auf „Update the stack“ klicken (Siehe nachfolgende Screenshots)

$$argon2id$$v=19$$m=65540,t=3,p=4$$keo+G4b/6tX5UNV9kf6gpuvytydJXC4RLluhY+ECswA$$3b+OLsWRqB0L7qB0CbhtN7uROZaZUSmG9p1UdxHgv3g

Einfügen des angepassten Strings in den Stack

Das Ersetzen der $ Zeichen durch $$ in der Docker Compose-Datei ist notwendig, um zu verhindern, dass Docker die $ Zeichen als Variablen interpretiert.

Durch die Verwendung eines Argon2 PHC-Strings als ADMIN_TOKEN erhöhen Sie die Sicherheit Ihrer Vaultwarden-Installation erheblich. Fügen Sie den kopierten und angepassten ADMIN-Token in den bereitgestellten Docker-Compose-Code ein.

Konfiguration von Caddy

In diesem Abschnitt erklären wir, wie Sie die Konfiguration von Caddy für Vaultwarden (ehemals Bitwarden_RS) vornehmen können. Um dies zu erreichen, sollten Sie sich via Remote Desktop Manager mit Ihrem Raspberry Pi verbinden.

  1. Verbindung herstellen:
    • Starten Sie Ihren Remote Desktop Manager und stellen Sie eine Verbindung zu Ihrem Raspberry Pi her.
  2. Caddyfile öffnen:
    • Öffnen Sie ein Terminalfenster und geben Sie den folgenden Befehl ein, um die Caddyfile zu bearbeiten:
sudo nano /etc/caddy/Caddyfile
Öffnen der Caddy Konfigurationsdatei

Konfigurationsinhalt einfügen:

  • Fügen Sie den folgenden Inhalt in die Caddyfile ein, um die notwendige Konfiguration für Vaultwarden vorzunehmen und dabei die empfohlenen Best Practices für Sicherheitsheader zu berücksichtigen und ersetzen Sie test12345.selfhost.co durch ihre eigene Subdomain:
test12345.selfhost.co {
    reverse_proxy vaultwarden:80 {
        header_up X-Real-IP {remote_host}
    }
    header {
        -Server
        Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self' data:; connect-src 'self' wss:;"
        Referrer-Policy "strict-origin-when-cross-origin"
        Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
        X-Content-Type-Options "nosniff"
        X-Frame-Options "DENY"
        X-XSS-Protection "1; mode=block"
    }
}
Einfügen des benötigten Konfigurationsinhalts

Änderungen speichern und Caddyfile schließen:

  • Drücken Sie Ctrl + X, um den nano-Editor zu schließen, gefolgt von Y, um die Änderungen zu speichern, und Enter, um zu bestätigen.

Caddy neu starten:

Nachdem Sie die Caddyfile aktualisiert haben, sollten Sie Caddy über Portainer neu starten, um die Änderungen zu übernehmen. Wählen Sie dazu Ihren caddy Reverse Proxy aus und klicken Sie anschließend auf „Restart“. Nun ist Ihre Vaultwarden-Installation über den definierten Domain-Namen erreichbar und mit den empfohlenen Sicherheitsheadern ausgestattet.

Nezstart von Caddy via Portainer

Zugriff auf die Bitwarden-Webvault

Öffnen Sie Ihren Webbrowser und navigieren Sie zu Ihrer Bitwarden-Domain (z.B. https://test12345.selfhost.co).

Vaultwarden Anmeldeseite

Sie sollten jetzt die Anmeldeseite von Bitwarden sehen. Da die Registrierungen deaktiviert sind (SIGNUPS_ALLOWED=false), benötigen Sie einen Admin-Token, um Ihren ersten Account zu erstellen.

Gehen Sie auf die Seite des Vaultwarden Admin Panels:

https://IHRE-SUBDOMAIN.selfhost.co/admin

Vaultwarden Admin Loginscreen

Erster Zugriff auf das Admin-Panel:

Anmeldeseite – Vaultwarden Admin Panel

Erstellen Ihres ersten Bitwarden-Accounts über eine Einladung

  1. Als Administrator melden Sie sich zunächst im Admin-Panel an.
  2. Navigieren Sie zum Reiter „Users“.
  3. Klicken Sie auf „Invite User“.
  4. Geben Sie die E-Mail-Adresse ein, an die die Einladung gesendet werden soll, und klicken Sie anschließend auf „Invite“.
  5. Der eingeladene Benutzer erhält eine E-Mail mit einem Link zur Erstellung eines Bitwarden-Kontos. Dieser Link führt den Benutzer durch den Prozess der Kontoerstellung, bei dem er eine E-Mail-Adresse und ein starkes Passwort eingeben muss.
  6. Nachdem das Konto erstellt wurde, kann sich der Benutzer mit seinen Anmeldeinformationen anmelden.

Bilderserie zum Einladungs – und Anmeldeprozess für Vaultwarden/Bitwarden

Verwenden von Bitwarden – Einrichtung 2FA

Tipps für zusätzliche Sicherheit: Für eine zusätzliche Sicherheitsebene empfehlen wir die Einrichtung der Zwei-Faktor-Authentifizierung (2FA) für Ihr Bitwarden-Konto. So aktivieren Sie die 2FA:

  1. Klicken Sie nach dem Einloggen oben rechts auf den Pfeil, um das Dropdown-Menü zu öffnen.
  2. Wählen Sie „Kontoeinstellungen“ aus der Liste.
  3. Navigieren Sie im linken Menü zu „Sicherheit“.
  4. Öffnen Sie den Reiter „Zwei-Faktor-Authentifizierung“ und folgen Sie den Anweisungen, um die 2FA zu aktivieren.

Durch die Einrichtung der Zwei-Faktor-Authentifizierung stellen Sie sicher, dass Ihr Konto auch dann geschützt ist, wenn jemand Ihr Passwort kennt. Es bietet eine zusätzliche Schutzschicht, indem es einen zweiten Authentifizierungsfaktor erfordert, meist in Form eines Einmalpassworts (OTP) oder einer App.

Vaultwarden User-Dashboard + 2FA Einrichtungsmenü

Einrichtung der UFW-Firewall für Bitwarden

Die „Uncomplicated Firewall“ (kurz: UFW) ist eine einfache Schnittstelle für iptables und bietet eine unkomplizierte Methode, um ein Firewall-Management auf Linux-Systemen durchzuführen. Für den Betrieb von Bitwarden und zur Fernwartung des Systems über SSH müssen bestimmte Ports in der Firewall freigegeben werden. Hier erfahren Sie, wie Sie diese Ports mit UFW freigeben können.

Überprüfung der Installation von UFW: Falls UFW noch nicht auf Ihrem System installiert ist, können Sie dies mit dem folgenden Befehl tun:

sudo apt-get install ufw

Freigabe von HTTP und HTTPS: Damit Bitwarden über das Web zugänglich ist, müssen Sie die Ports 80 und 443 freigeben:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Freigabe von SSH: Um eine sichere Fernwartung zu ermöglichen, sollten Sie den Port 22 für SSH freigeben:

sudo ufw allow 22/tcp

Starten der UFW: Nachdem Sie die benötigten Ports freigegeben haben, können Sie UFW aktivieren:

sudo ufw enable

Überprüfung der Regeln: Um sicherzustellen, dass die Regeln korrekt eingestellt wurden, können Sie diese mit dem folgenden Befehl überprüfen:

sudo ufw status

In der Terminalausgabe sollten Sie die freigegebenen Ports 22, 80 und 443 sehen. Damit ist Ihre Firewall korrekt für den Betrieb von Bitwarden und SSH eingerichtet.

Schritte zur Einrichtung der UFW Firewall für den Dienst Bitwarden

Fazit

Die Verwendung von Bitwarden bietet Ihnen eine effiziente und sichere Möglichkeit, Ihre Passwörter und andere wichtige Informationen zu verwalten. Durch die Einrichtung und Nutzung dieses Self-Hosted-Services haben Sie die volle Kontrolle über Ihre Daten und können zusätzliche Sicherheitsmaßnahmen wie die Zwei-Faktor-Authentifizierung implementieren. Der richtige Umgang mit Passwort-Managern kann entscheidend dazu beitragen, Ihre digitale Identität zu schützen. Nehmen Sie sich die Zeit, sich mit den Funktionen und Einstellungen vertraut zu machen, um das Beste aus Ihrem Bitwarden-Erlebnis herauszuholen. Sicherheit sollte immer an erster Stelle stehen, und mit Tools wie Bitwarden sind Sie gut aufgestellt, um genau das zu gewährleisten.

Sollten Sie Fragen haben oder weitere Informationen benötigen, stehe ich Ihnen gerne zur Verfügung.

Hinterlasse einen Kommentar

Diese Seite verwendet Akismet, um Spam zu reduzieren. Erfahre, wie deine Kommentardaten verarbeitet werden..

Hinterlasse einen Kommentar

Diese Seite verwendet Akismet, um Spam zu reduzieren. Erfahre, wie deine Kommentardaten verarbeitet werden..