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 Implemierung der Bitwarden API ist es möglich die offiziellen Client Applikation für die üblichen Betriebssysteme zu verwenden.

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 clone 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

### Inhalt der docker-compose.yml

version: '3'
services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: always
    environment:
      - DATABASE_URL=mysql://username:[email protected]/datenbankname
      - 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 nun 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.

Wir können Vaultwarden nun noch um einige sinnvolle Einstellungen erweitern.

  • Adminseite aktivieren
  • offene Account Registrierung deaktivieren
  • Nutzer können andere Nutzer einladen deaktivieren
  • SMTP Server für Benachrichtigungen von Vaultwarden bis Version 1.24
  • SMTP Server für Benachrichtigungen von Vaultwarden ab Version 1.25
  • Neue User zur Verifikation per Email zwingen
  • Passworthinweis dauerhaft deaktivieren (schütz Anwender vor eigener Dummheit)

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

Fangen wir mit der Adminseite an. Zuerst generieren wir uns einen sicheren Admintoken. Dieser sichert den Zugang zur Adminseite und verhindert das 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

- ADMIN_TOKEN=DenVorherErstelltenAdmintokenEinfügen

Die Adminseite könnt ihr ganz einfach mit https://subdomain.euredomain.tld/admin aufrufen. Wer nicht möchte das jeder der eure Domain kennt sich einen Account in eurem Passwort Manager erstellen kann deaktiviert die Registrierungsfunktion von Vaultwarden.

- SIGNUPS_ALLOWED=false

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

- INVITATIONS_ALLOWED=false

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

- 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 Email zu benachrichtigen müssen wir einen entsprechenden SMTP Server konfigurieren. Die benötigten Infos könnt ihr bei eurem Email 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.

- 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

Als nächstes kümmern wir uns um die Sicherheit unserer Nutzer indem wir sie dazu zwingen Ihre Email Adresse zu bestätigen.

- SIGNUPS_VERIFY=true

Als nächstes besteht noch die Möglichkeit den Passworthinweis zu unterbinden. Dies kann je nach Userpublikum durch aus sinnvoll sein.

- 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