Jeg satt opp Bitwarden på min egen server gratis, og passordene mine er nå helt under min kontroll


Bruddet på LastPass i 2022 var en vekker. Jeg innså at selv med en kryptert hvelv, kunne jeg fortsatt være i fare hvis hvelvet mitt ligger på servere utenfor min kontroll.

Det kan ha tatt noen år, men jeg bestemte meg endelig for å slutte å outsource passordbeskyttelse. Jeg vendte meg til Vaultwarden og satte opp passordbehandleren min på en Linux Mint-server. Denne satsingen, som tok mindre enn en time, har omdefinert hvordan jeg ser på digital sikkerhet, og interessant nok kostet det ikke en krone ekstra.

Vaultwarden vs. den offisielle Bitwarden-serveren

Hvorfor de fleste selvhostede oppsett velger det lette alternativet

Det finnes to mulige selvhostingsveier for Bitwarden, og selv om de begge er gratis og åpen kildekode, er de ideelle for forskjellige kontekster.

Det er mulig å hoste den offisielle Bitwarden-serveren hjemme, men det er ikke ideelt. Denne versjonen er av bedriftstandard og forventer ekte infrastruktur bak seg. Den bruker en .NET-stabel med flere samtidige tjenester. Men på beskjeden maskinvare vil den være treg og kompleks, langt utover behovene til en enkelt bruker.

Det andre alternativet er den fellesskapsbygde Rust-implementeringen kalt Vaultwarden. Det er en uoffisiell versjon, men den eksponerer fortsatt det samme API-et som de offisielle Bitwarden-appene kommuniserer med. Slik klarer den å tilby hele Bitwarden-opplevelsen på enhetene dine mens den kjører på din egen server.

Vaultwarden legger også til funksjoner som vanligvis er forbeholdt betalte Bitwarden-nivåer, slik som nødadgang, TOTP-basert tofaktorautentisering og krypterte filvedlegg.

Slik sammenligner de to seg, spesielt for en selvhostet individuell oppsett:

Funksjon

Bitwarden-server (egenhostet)

Vaultwarden

Kostnad

Gratis

Gratis

RAM-krav

2 GB+ anbefalt

~100MB i bruk

Oppsettkompleksitet

Høy (flere tjenester)

Moderat (enkelt beholder)

Premium-funksjoner

For det meste gratis (skytjenester krever abonnement)

Inkludert gratis

Best for

Team og organisasjoner

Individuell eller familiær bruk

Hva du faktisk trenger før du starter

Du har sannsynligvis allerede mesteparten av dette

Før jeg begynte å selv-verter Bitwarden, overestimerte jeg hva jeg ville trenge. Men til slutt fungerte det fint på en standard Linux Mint-komputer. Med så lite som 512MB RAM bør du kunne hoste det uten problemer. Selv en Raspberry Pi bør fungere.

Heldigvis gjør lokale selvhostede programvareverktøy som Docker og Docker Compose det mulig å kjøre en containerisert instans av Vaultwarden. Dette er det ideelle alternativet for å redusere avhengighetskonflikter.

Da må du finne ut hvordan du foretrekker å få tilgang til hvelvet ditt. Å bruke et lokalt nettverk er enkelt og sikkert, men hvelvet vil bare være tilgjengelig fra hjemmenettverket ditt. VPN-tilgang via Tailscale gjør det mulig med fjernforbindelser uten å eksponere serveren for det offentlige internettet. Til slutt kan du velge eksponering for det offentlige internettet. Dette siste alternativet er det mest praktiske, men også det som innebærer størst sikkerhetsrisiko.

Tilgangsalternativet du velger bestemmer om et domenenavn er nødvendig som en del av oppsettet. Lokal og VPN-tilgang krever ikke et domenenavn. Imidlertid er et domene nødvendig hvis du eksponerer tjenesten for det offentlige internettet for å få en gyldig HTTPS.

Uavhengig av tilgangsmetode, trenger du HTTPS. Jeg foretrekker Caddy som en omvendt proxy fordi det automatisk håndterer TLS-sertifikater.

Setter opp Vaultwarden

Den eksakte oppsettet jeg brukte—og sikkerhetstiltakene som betyr noe






Jeg kjørte først kommandoen nedenfor for å generere min sikre Argon2id-hash for ADMIN_TOKEN. Deretter kopierte jeg den; det er nøkkelen til administrasjonspanelet:

docker run --rm -it vaultwarden/server:latest /vaultwarden hash

Deretter, for enklere sikkerhetskopier, laget jeg en dedikert mappe i hjemmekatalogen min.

mkdir ~/vaultwarden && cd ~/vaultwarden
mkdir vw-data

Jeg opprettet en .env-fil hvor jeg lagret noen sensitive opplysninger. Du kan kopiere den med kodebiten nedenfor, og erstatte plassholderen med din hash:

# Change this to your actual domain
DOMAIN=https://vault.yourdomain.com
# Use the hash you generated in Step 1
ADMIN_TOKEN='$argon2id$v=19$m=65540,t=3,p=4$YourHashHere'
# Set SIGNUPS_ALLOWED=true for the initial setup. After you create your admin account, change it to SIGNUPS_ALLOWED=false
SIGNUPS_ALLOWED=true

Med dette gjort, opprettet jeg min docker-compose.yml og inkluderte elementene nedenfor i den:

services:
 vaultwarden:
 image: vaultwarden/server:latest
 container_name: vaultwarden
 restart: unless-stopped
 env_file: .env
 volumes:
 - ./vw-data:/data
 ports:
 - "127.0.0.1:8080:80" # Only accessible via the local machine/proxy

Etter disse første stegene er Docker Compose-containeren kun tilgjengelig på en lokal maskin på port 8080. Så jeg ordnet dette ved å installere Caddy, som er en revers proxy som står foran Docker-containeren og lar deg få tilgang til hvelvet ditt fra hvilken som helst nettleser på et HTTPS-aktivert domene.

Jeg installerte Caddy ved å bruke disse kommandoene:

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update && sudo apt install caddy

Caddy håndterer automatisk SSL-sertifikater ved bruk av Let's Encrypt, og fjerner behovet for manuell generering eller fornyelse av sertifikater.

Når installasjonen var fullført, åpnet jeg Caddys konfigurasjonsfil ved å bruke sudo nano /etc/caddy/Caddyfile, og deretter la jeg til disse linjene, og byttet ut med mitt faktiske domene.

vault.yourdomain.com {
 reverse_proxy localhost:8080
}

Med den ovennevnte konfigurasjonsfiloppføringen håndterer Caddy all innkommende trafikk, videresender den til Vaultwarden i tillegg til å be om et nytt SSL-sertifikat for domenet ditt og fornye det.

Last inn Caddy på nytt med denne kommandoen: sudo systemctl reload caddy, og nå er det på tide å få tilgang til Vaultwarden. Dette er de nøyaktige trinnene du må følge:

  1. Gå til domenet ditt og opprett en konto.
  2. Åpne .env-filen som ble opprettet først og endre SIGNUPS_ALLOWED=true til SIGNUPS_ALLOWED=false.
  3. Start beholderen på nytt ved å bruke kommandoen: docker compose up -d --force-recreate
  4. Naviger til vault.yourdomain.com/admin for å få tilgang til Super Admin, og logg deretter inn med Argon2id-hashen du opprettet som passord.

Du er klar til å begynne å bruke Vaultwarden på heltid.

Hvordan det egentlig er å bruke det daglig

Opplevelsen er lik Bitwarden skyversjonen. Siden du fortsatt får bruke de samme appene og utvidelsene, merker du ingen forskjell. Den virkelige fordelen er imidlertid at alle hvelvoperasjoner skjer på maskinen din og under din kontroll. Enda viktigere, hvis Bitwarden noen gang får et avbrudd, blir du ikke påvirket.

Men du er ansvarlig for oppetid og oppdateringer. For å oppdatere, trekker du vanligvis en ny Docker-bilde og starter containeren på nytt. Kontrollert jeg har over mine data gjør den ekstra oppsettet og vedlikeholdet verdt det. Vaultwarden har blitt en selvhostet tjeneste som jeg ikke kan klare meg uten.

Relaterte artikler