Photo by regularguy.eth / Unsplash

Eigenen Passwortmanager hosten

tech Feb 15, 2023

In heutigen Zeiten benötigt man für alles und jeden Zugangsdaten - um nicht überall die gleichen Daten zu nutzen, benötigt man einen Passwortmanager, welcher immer dabei ist. Da wir die Daten selbst behalten wollen hosten wir das selbst.

Ein bekannter Dienst ist Bitwarden - hiervon existiert ein Fork welcher mit den Bitwarden-Apps kompatibel ist, jedoch selbst gehostet wird:

GitHub - dani-garcia/vaultwarden: Unofficial Bitwarden compatible server written in Rust, formerly known as bitwarden_rs
Unofficial Bitwarden compatible server written in Rust, formerly known as bitwarden_rs - GitHub - dani-garcia/vaultwarden: Unofficial Bitwarden compatible server written in Rust, formerly known as…

Realisiert wird die Installation mittels Docker, ein Beispielsetup wäre hier folgendes:

Wichtig!
Solltet ihr Vaultwarden öffentlich erreichbar betreiben wollen, müssen zusätzliche Maßnahmen getroffen werden (Firewall, SSL), die u.g. Konfiguration eignet sich zunächst nur für das Private Netzwerk.

  • Installiertes Ubuntu 22.04 Server
  • Zugang via SSH
  • Installation von docker & docker-compose:
apt update 
apt upgrade -y
apt install docker-compose -y

Nach der Installation muss nun ein Ordner angelegt werden und dort erstellen wir unsere Docker Compose Datei:

mkdir /srv/vaultwarden && cd $_
nano docker-compose.yaml

Hier fügen wir folgenden Inhalt ein:

version: '3'

services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: always
    ports:
      - 80:80
    environment:
      - WEBSOCKET_ENABLED=true  # Enable WebSocket notifications.
      - ADMIN_TOKEN=${ADMIN_TOKEN}
      - SENDS_ALLOWED=true
      - EMERGENCY_ACCESS_ALLOWED=true
      - SIGNUPS_ALLOWED=false
      - SIGNUPS_VERIFY=true
      - SHOW_PASSWORD_HINT=false
      - INVITATIONS_ALLOWED=false
      - INVITATION_ORG_NAME=${INVITATION_ORG_NAME}
      - DOMAIN=${DOMAIN}
      - SMTP_HOST=${SMTP_HOST}
      - SMTP_FROM=${SMTP_FROM}
      - SMTP_FROM_NAME=${SMTP_FROM_NAME}
      - SMTP_PORT=587
      - SMTP_SSL=true
      - SMTP_EXPLICIT_TLS=false
      - SMTP_USERNAME=${SMTP_USERNAME}
      - SMTP_PASSWORD=${SMTP_PASSWORD}
      - SMTP_AUTH_MECHANISM="Plain"
    volumes:
      - ./data:/data

  vaultwarden-backup:
    image: bruceforce/vaultwarden-backup
    container_name: vaultwarden_backup
    restart: on-failure
    init: true
    depends_on:
      - vaultwarden
    environment:
      - BACKUP_ADD_DATABASE=true
      - BACKUP_ADD_ATTACHMENTS=true
      - BACKUP_ADD_CONFIG_JSON=true
      - BACKUP_ADD_ICON_CACHE=true
      - BACKUP_ADD_RSA_KEY=true
      - BACKUP_ADD_SENDS=true
      - BACKUP_DIR=/backup
      - DELETE_AFTER=365
      - TIMESTAMP=true
    volumes:
      - ./data:/data
      - ./backup:/backup/

Im Anschluss speichern wir mittels [STRG]+[O] und beenden den Editor mittels [STRG]+[X]

Einige Daten werden aus der .env Datei bezogen, welche Ihr nun noch anlegen und ausfüllen müsst:

nano .env

Inhalt:

ADMIN_TOKEN=
SIGNUPS_DOMAINS_WHITELIST=
INVITATION_ORG_NAME=
DOMAIN=
SMTP_HOST=
SMTP_FROM=
SMTP_FROM_NAME=
SMTP_USERNAME=
SMTP_PASSWORD=

Die Daten die Ihr hier eintragt sind folgende:

  • ADMIN_TOKEN, kann bspw. mittels openssl rand -base64 48
  • SIGNUPS_DOMAINS_WHITELIST, erlaubte Domain welche Accounts registrieren darf
  • INVITATION_ORG_NAME, kann random bspw. private sein
  • DOMAIN, die Adresse auf welcher der Dienst hören soll (optional)
  • SMTP_, Einstellungen damit Vaultwarden Benachrichtigungsemails verschicken kann

Nachdem nun alle Daten eingerichtet sind, könnt ihr den Container als Dämon starten:

docker-compose up -d

Kontrollieren könnt ihr den Start bspw. mit:

docker stats

Tags