Das ist eine aktualisierte Anleitung des folgenden Beitrages.
Was ist Vaultwarden?
Vaultwarden nutzt die Server API von Bitwarden in einer eigenen Serverentwicklung geschrieben in Rust usw.
Alternative implementation of the Bitwarden server API written in Rust and compatible with upstream Bitwarden clients*, perfect for self-hosted deployment where running the official resource-heavy service might not be ideal.
Plan
- Cloud Server von Hetzner aufsetzen
- Vaultwarden aufsetzen
- Ein paar sinnvolle Tools nachinstallieren
1. Server aufsetzen
1.1 Installation
Ich setze ein wenig Wissen hier voraus, etwas ausführlicher findet ihr das Ganze in o.g. Beitrag.
1.1.1 Standort
Bei Hetzner hat man mittlerweile die Auswahl zwischen einigen Standorten.
Ob ihr Euch jetzt einen x86 oder einen Arm64 auswählt, das müsst Ihr selber entscheiden. @Nico hat ein Debian Paket gebaut, das man auf x86 installieren kann. Darin ist noch keine Arm64 Unterstützung enthalten. Dafür gibt es aber ein Testpaket und es wird sicherlich demnächst auch eine direkte Arm64 Unterstützung in seinem Paket geben.
Seit 02.05.2023 mit Arm64 Unterstützung incl. Debian Bookworm
Solltet Ihr Arm64 wählen wollen, dann müsst ihr momentan als Standort Falkenstein wählen.
1.1.2 Image
Wir benötigen als Image zwingend Debian Das Paket vom @Nico läßt sich auch auf Ubuntu installieren. Ich favorisiere für Server im Internet aber Debian.
1.1.3 Typ
Wir wählen die kleinste virtuelle Maschine, den CAX 11
1.1.4 Networking
Vorausgesetzt ihr habt eine vernünftige Ipv6 Anbindung, dann kann man die öffentliche Ipv4 Adresse weglassen und spart etwas Geld. Seit einiger Zeit muss man diese Ipv4 Adressen bei Hetzner extra bezahlen. Hier im Beispiel gehe ich von einer IPv6 only Umgebung aus.
Eine Ipv6 Einrichtung sollte man nur dann einrichten, wenn man auch eine vernünftige IPv6 Umgebung zu Hause usw. auch hat. Sonst wird die Kommunikation mit dem Server etwas schwierig
Die restlichen Punkte je nachdem was ihr braucht. Auf Kostenpflichtig erstellen klicken.
Der erste Login
IP kopieren und mittels SSH connecten
ssh root@<IPv6>
Die Abfrage
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
mit yes beantworten und man ist drin
1.2 Upgrade auf Debian Bookworm 12
Aktuell (Stand: 03.05.2023) kann man noch kein Debian 12 bei Hetzner auswählen.
Debian Bookworm ist noch nicht für den produktiven Einsatz gedacht, der Release ist am 10. Juni 2023!
Das ist aber auch kein Problem, ziehen wir die Debian 11 Installation mal eben auf Debian 12 hoch. Wir schauen nach ob alles aktuell ist.
apt update && apt upgrade
Danach die Paketliste auf Bookworm umbauen
deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware
# deb-src http://deb.debian.org/debian bookworm main contrib non-free
deb http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware
# deb-src http://deb.debian.org/debian bookworm-updates main contrib non-free
# deb http://deb.debian.org/debian bookworm-backports main contrib non-free
# deb-src http://deb.debian.org/debian bookworm-backports main contrib non-free
deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
# deb-src http://security.debian.org/debian-security bookworm-security main contrib non-free
Wir entfernen die zwei Hetzner Source Listen. Aktuell auch kein Bookworm vorhanden. Wenn Bookworm bei Hetzner verfügbar ist, könnt ihr die ja wieder einbauen.
mv hetzner-mirror.list /root
mv hetzner-security-updates.list /root
Jetzt nochmal
apt update && apt upgrade
Wenn ich mich recht erinnere kommen jetzt so ca. 330 Pakete. Alle installieren, danach die Kiste einmal neustarten.
Danach sind wir auf Debian Bookworm 12
root@:~# cat /etc/debian_version
12.0
2. Vaultwarden
Für dieses Projekt benutzen wir Vaultwarden. Vaultwarden ist eine Rust Implementation der Bitwarden Server API.
2.1 Installation Vaultwarden
@Nico's Anleitung für die Installation.
Vaultwarden repository for Debian 10, 11 and 12 and Ubuntu 20.04 and 22.04
-------------------------------------------
Public repository. Feel free to use!
# Installation
1. wget -O /etc/apt/trusted.gpg.d/bananian-keyring.gpg https://bitwarden-deb.tech-network.de/bananian-keyring.gpg
2. Important: Please make sure that you use the correct repository for your distribution:
Debian 10 (buster), 11 (bullseye) and Ubuntu 20.04:
echo "deb http://bitwarden-deb.tech-network.de buster main" > /etc/apt/sources.list.d/vaultwarden.list
Debian 12 (bookworm) and Ubuntu 22.04:
echo "deb http://bitwarden-deb.tech-network.de bookworm main" > /etc/apt/sources.list.d/vaultwarden.list
3. apt-get update
4. apt-get install vaultwarden
# Configuration
- Vaultwarden config file is located at /etc/vaultwarden (config.env)
- Sample Apache configuration can be found here: https://bitwarden-deb.tech-network.de/Apache-VirtualHost.example.conf
- Sample Nginx configuration can be found here: https://bitwarden-deb.tech-network.de/Nginx-VirtualHost.example.conf
# Systemd service
- Enable: systemctl enable vaultwarden.service
- Start: systemctl start vaultwarden.service
- Status: systemctl status vaultwarden.service
- ...
Sources and Credits:
https://github.com/dani-garcia/vaultwarden
Eine ausführliche deutschsprachige Installationsanleitung gibt es hier:
https://linux-nerds.org/topic/977/bitwarden_rs-auf-einem-debian-buster-10-server-installieren
Installation @nico's Debian Paket
Bitte @nico's Anleitung folgen
Installation Arm64 Testpaket
Da wir ja hier die Arm64 Version installieren wollen, benutzen wir folgendes Testpaket.
Seit heute (02.05.2023) ist das Arm64 Paket ganz normal zu installieren. Es wird kein Testpaket mehr gebraucht.
Wer das installiert hatte, bitte
apt remove vaultwarden
apt install vaultwarden
ausführen.
2.2 NGINX
Wenn wir was ausliefern wollen, brauchen wir NGINX oder Apache2. Ich nutze nur NGINX. @Nico hat hier diese Beispieldatei.
server {
listen 80;
server_name vaultwarden.example.com;
# Redirect to https
location / {
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name vaultwarden.example.com;
client_max_body_size 128M;
# TLS
# Please generate a secure TLS configuration with the Mozilla SSL Configuration Generator: https://ssl-config.mozilla.org/
ssl_certificate /etc/ssl/certs/vaultwarden-fullchain.crt;
ssl_certificate_key /etc/ssl/private/vaultwarden.key
# HSTS
add_header Strict-Transport-Security "max-age=63072000; preload";
# Reverse Proxy
resolver 127.0.0.1 valid=300s;
resolver_timeout 5s;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /notifications/hub {
proxy_pass http://127.0.0.1:3012;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location /notifications/hub/negotiate {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:8000;
}
}
Aber vorher müssen wir das mal installieren. Ich nutze eigentlich immer nur die Stable Pakete von NGINX direkt, die gibt es aber noch nicht für Bookworm, also aus dem Debian Repo.
apt install nginx
Danach die Datei /etc/nginx/sites-enabled/default mit der Beispieldatei füllen.
2.3 Letsencrypt
Für die Installation bitte diesen Beitrag lesen.
Wenn wir jetzt alles richtig gemacht haben, sollte der Vaultwarden laufen und erreichbar sein. Vorher nochmal die Dienste neustarten.
systemctl restart nginx
sytemctl restart vaultwarden
3. Anwendung Vaultwarden
Nach Eingabe der Domain in einen Browser sieht man folgendes
Bei einer Neuinstallation muss man sich jetzt Anmelden und ein Konto erstellen. Hat man vorher seine Daten exportiert, in einer alten Installation, kann man dann nach dem erfolgreichen Login diese Daten ganz einfach wiederherstellen.
Für weitere wichtige Konfigurationsmöglichkeiten bitte hier weiterlesen.
4. Zusatztools
Sicherheit auf Servern ist ein sehr weites Gebiet mit vielen verschiedenen Meinungen. Wichtig für mich ist, kein Rootlogim mit Passwörtern, nur mit SSH Keys.
Danach halte ich es noch mit
Damit sollte der Server recht gut abgesichert sein. Und wenn doch mal einer reinkommen sollte, kann er mit den Daten im Vaultwarden nichts anfangen, die sind alle verschlüsselt.
Achtet auf gute Passwörter!
Viel Spaß mit Eurem eigenen Passwort-Safe!