Vaultwarden im LXC Container installieren

Moin!

Vaultwarden ist ein genialer und sehr intuitiver Passwortmanager. Er verfügt über eine schöne Oberfläche und ein breites Set an Features. Zudem ist er kostenfrei und kann selbst gehostet werden. Vaultwarden basiert auf der Server API von Bitwarden, allerdings wurde es in Rust programmiert, um Ressourcen sparend, arbeiten zu können. Durch die Implementierung der Bitwarden API ist es möglich, die offiziellen Client Applikation für die üblichen Betriebssysteme zu verwenden.

Solltet ihr bereits eine Installation im Betrieb haben und seit lediglich hier, um die zusätzlichen Einstellungen zur Erhöhung der Sicherheit zu konfigurieren, könnt ihr direkt dorthin springen. Gleicht aber bitte eure Installation mit meiner ab, um Ungereimtheiten zu vermeiden. Ich werde Lesern nur bei Installation unterstützen, die nach meinen Beiträgen getätigt wurden.

Ihr benötigt dazu:

Ich starte immer gerne mit einem neuen LXC Container auf Basis von Debian 11, mit installierten „sudo“, Docker und Portainer. Für solche Fälle klone ich ein vorbereitetes Template innerhalb von Proxmox. Generell kann man auch mehrere Container auf einem Docker Host laufen lassen, allerdings trenne ich das immer auf. Es ist aber bei Weitem kein muss.

Optional: Ich persönlich lege immer einen User für Docker an, der keine „sudo“ Berechtigung hat, aber Container verwalten darf. Dazu legen wir einen User an und fügen ihn der Docker Gruppe hinzu.

adduser vaultwarden
usermod -aG docker vaultwarden
su vaultwarden

Anschließend erstellen wir einen neuen Ordner. Dort angekommen erstellen wir die benötigte docker-compose.yml.
Optional: Wer mit MariaDB arbeiten und auf die interne Datenbank verzichten möchte, fügt die Zeile mit -e DATABASE_URL hinzu.

mkdir /home/username/vaultwarden
nano docker-compose.yml
version: '3'
services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: always
    environment:
      - DATABASE_URL=mysql://username:passwort@ip-mariadb/datenbankname   # MIT MariaDB
      - LOG_LEVEL=info
      - TZ=Europe/Berlin
    ports:
      - 80:80
      - 443:443
    volumes:
      - /vw-data:/data/

Nun müssen wir den Container noch starten. Das gestaltet sich sehr einfach. Dazu im Verzeichnis in der die docker-compose.yml liegt, einfach den folgenden Befehl ausführen.

docker-compose up -d

So sieht die Basisinstallation aus. Ihr könnt jetzt Vaultwarden über die IP eures Containers erreichen.
Optional: Nun erstellen wir bei unserem Domainprovider eine Subdomain und hinterlegen dort unsere öffentliche IP. Anschließend hinterlegt ihr bei eurem Reverse Proxy Server die Weiterleitung auf die gewünschte interne IP und generiert ein SSL Zertifikat mit Let’s Encrypt.

Schon könnt ihr Vaultwarden über https://subdomain.euredomain.tld erreichen.

Weitere nützliche Einstellungen zur Erhöhung der Sicherheit

Für jede Einstellung, die wir hinzufügen, stoppen wir den Container und editieren die docker-compose.yml. Danach wird der Container neu gebaut und gestartet. Die Einstellungen werden unter dem Punkt „environment:“ ergänzt. Dies funktioniert wie folgt:

docker-compose down
nano docker-compose.yml
docker-compose up -d

Admin Web UI aktivieren

Fangen wir mit der Admin Web UI an. Zuerst generieren wir uns einen sicheren Admin Token. Dieser sichert den Zugang zum Admin Web UI und verhindert, dass Unbefugte Zugriff erhalten.

openssl rand -base64 64
gE6i9XNXTnG9mzBob5GTJMsLxDAcqudeGBcZnwuDDleN2aD+Qlm4dGMMDCMBtL/Y
CtaKBZlglE9I0uhwhu6cfA==

// Token in die Zwischenablage kopieren
// Bedenke! Jeder, der diesen Token hat, besitzt die Kontrolle über DEINEN Passwortmanager!!!

Nun docker-compose.yml editieren und folgende Variabel ergänzen.

nano docker-compose.yml
    environment:
      - ADMIN_TOKEN=DenVorherErstelltenAdmintokenEinfügen

Das Admin Web UI könnt ihr ganz einfach mit https://subdomain.euredomain.tld/admin aufrufen.

Offene User Registrierung deaktivieren

Wer nicht möchte, dass fremde Personen sich einen Account in eurem Passwortmanager erstellen kann, deaktiviert die User Registrierung von Vaultwarden.

    environment:
      - SIGNUPS_ALLOWED=false

User Invitation deaktivieren

Um eure Nutzer daran zu hindern, andere User ohne euer Wissen einladen zu können, deaktivieren wir diese Funktion ebenfalls.

    environment:
      - INVITATIONS_ALLOWED=false

SMTP Server für Benachrichtigungen von Vaultwarden konfigurieren

Dies ist die Konfiguration für Version bis einschließlich 1.24
Damit Vaultwarden auch in der Lage ist User per E-Mail zu benachrichtigen, müssen wir einen entsprechenden SMTP Server konfigurieren. Die benötigten Informationen könnt ihr bei eurem E-Mail-Anbieter erfragen.

    environment:
      - SMTP_FROM_NAME=Vaultwarden
      - SMTP_HOST=domain.euresanbieters.tld
      - SMTP_FROM=vaultwarden.euredomain.tld
      - SMTP_PORT=587 oder 465
      - SMTP_SSL=true
      - SMTP_EXPLICIT_TLS=true
      - SMTP_USERNAME=euerloginname
      - SMTP_PASSWORD=euerloginpasswort

Dies ist die Konfiguration ab Version 1.25 und neuer.
Damit Vaultwarden auch in der Lage ist User per E-Mail zu benachrichtigen, müssen wir einen entsprechenden SMTP Server konfigurieren. Die benötigten Informationen könnt ihr bei eurem E-Mail-Anbieter erfragen. Je nach Anbieter müsst ihr die Kombination aus SMTP_PORT und SMTP_SECURITY anpassen. Entweder „starttls“ mit Port 587 oder „forcetls“ mit Port 465.

    environment:
      - SMTP_FROM_NAME=Vaultwarden
      - SMTP_HOST=domain.euresanbieters.tld
      - SMTP_FROM=vaultwarden.euredomain.tld
      - SMTP_PORT=587 oder 465
      - SMTP_SECURITY=starttls oder force_tls
      - SMTP_USERNAME=euerloginname
      - SMTP_PASSWORD=euerloginpasswort

User zur Verifikation der E-Mail zwingen

Als Nächstes kümmern wir uns, um die Sicherheit unserer Nutzer, indem wir sie dazu zwingen Ihre E-Mail-Adresse zu bestätigen. Die ist im Falle eines vergessenen Passworts sehr sinnvoll.

    environment:
      - SIGNUPS_VERIFY=true

Passworthinweis dauerhaft deaktivieren

Als Nächstes besteht noch die Möglichkeit, den Passworthinweis zu unterbinden. Dies kann je nach Verständnis für Sicherheit der User durchaus sinnvoll sein.

    environment:
      - SHOW_PASSWORD_HINT=false

Grüße gehen aus dem Archiv!

Abonnieren
Benachrichtige mich bei
guest
4 Kommentare
Älteste
Neuste Meist Bewerteste
Inline Feedbacks
Zeige alle Kommentare
4
0
Bitte lasse uns an deinen Gedanken teilhaben und kommentier den Beitrag.x
Cookie Consent mit Real Cookie Banner