ID.nl logo
Zo maak je je eigen Bitwarden-server
© Reshift Digital
Huis

Zo maak je je eigen Bitwarden-server

Wil je accountgegevens, notities en creditcardgegevens opslaan in een digitale kluis, dan is Bitwarden al jaren een van de beste opties. Wel moet je er genoegen mee nemen dat gegevens in de cloud worden bewaard. Vind je dat maar niks, dan kun je Bitwarden ook lokaal op je eigen server hosten. In dit artikel laten we zien hoe je dat veilig en relatief eenvoudig voor elkaar krijgt via Docker, een reverse proxy en de alternatieve Bitwarden-server Vaultwarden.

In dit artikel nemen we je mee in het maken van een server waarop je superveilig je wachtwoorden kunt bewaren.

  • Eerst installeren we Docker
  • Daarna stellen we Vaultwarden in
  • Vervolgens zetten we een reverse proxy op voor toegang op afstand
  • En tot slot stellen we alles in

Te lastig? Gebruik Bitwarden dan gewoon via de cloud: Alles over je wachtwoorden beheren met Bitwarden

Code downloaden In dit artikel worden wat voorbeelden van stukken code gegeven. Omdat overtikken van code erg foutgevoelig is, kun je die code beter downloaden en daarna bekijken of kopiëren. Zie het bestand code-bitwarden.txt.

Een wachtwoordbeheerder is een bijna onmisbare tool. In de digitale kluis kun je veilig al je accounts bewaren, maar ook notities en financiële gegevens van je creditcard. In principe brengt zo’n tool ook veiligheid. Je kunt bijvoorbeeld veel makkelijker heel sterke wachtwoorden gebruiken. Je hoeft maar één hoofdwachtwoord te onthouden en op individuele apparaten volstaat vaak een pincode.

Wachtwoordbeheerders bewaren al je gegevens normaliter in de cloud, met als voordeel dat je er vanaf elk apparaat bij kunt. Ook daar zijn ze natuurlijk versleuteld met het hoofdwachtwoord. Toch is het geen prettig gevoel als je leest over gestolen data, zeker als je financiële gegevens in je digitale kluis bewaart. Zo is LastPass al meerdere keren het slachtoffer van een datalek geweest. Het versleutelingsmechanisme zelf werd niet gekraakt, maar hackers hadden wel alle tijd om te proberen met brute kracht het hoofdwachtwoord te kraken – wat dan eigenlijk de laatste verdedigingslinie is.

We nemen daarom in dit artikel het heft in eigen hand. We gaan Bitwarden, een van de populairste en veiligste wachtwoordbeheerders, installeren op een lokale server achter een reverse proxy.

©Song_about_summer

De digitale kluis van je wachtwoordbeheerder staat meestal in de cloud.

Waarom zelf hosten

Het zelf hosten van Bitwarden brengt veel voordelen met zich mee, maar ook een paar nadelen. Om te beginnen zullen hackers zich eerder op de centrale servers richten van de wachtwoordbeheerders. Ze kennen niet eens de locatie van jouw Bitwarden-server, die ook nog eens verscholen gaat achter een reverse proxy. En je kunt ook nog extra maatregelen treffen om de toegang te beperken.

De alternatieve Bitwarden-server Vaultwarden (zie het gelijknamige kader) die we in dit artikel gebruiken, geeft je ook nog eens mogelijkheden waar je normaal voor moet betalen. Een nadeel is dat je uiteraard een server nodig hebt en ook verantwoordelijk bent voor de beveiliging daarvan. Je zult bijvoorbeeld het besturingssysteem en de software up-to-date moeten houden en ook voor back-ups van je digitale kluis moeten zorgen.

©tutye - stock.adobe.com

Zelfs een Raspberry Pi is voor de meeste toepassingen geschikt als server.

Vaultwarden: lichtgewicht Bitwarden-server Voor onze Bitwarden-server gebruiken we niet de officiële server maar het opensource-alternatief Vaultwarden, eerder bekend als bitwarden_rs. Je kunt het project vinden op GitHub. Het is een lichtgewicht Bitwarden-server die je eenvoudig zelf kunt hosten. De eisen zijn bescheiden in vergelijking met de officiële server. Veel mensen gebruiken zelfs een Raspberry Pi, inclusief de Zero W!

De software ondersteunt vrijwel alle mogelijkheden van Bitwarden. Je kunt uiteraard ook alle standaardtoepassingen van Bitwarden ermee gebruiken, zoals de browserextensies. Ook kun je zonder meerprijs enkele mogelijkheden gebruiken die normaal zijn voorbehouden aan betalende klanten, zoals het maken van een organisatie en bewaren van bijlagen.

Deze alternatieve en opensource Bitwarden-server kun je vinden op GitHub.

Wat heb je nodig?

Vaultwarden is geschreven in Rust, een programmeertaal die snel aan populariteit wint en wordt geroemd om zijn snelheid en veiligheid. We hebben er in dit artikel weinig mee te maken, omdat we alles gaan installeren via Docker. Maar het betekent wel dat een relatief licht systeem volstaat. Je kunt bijvoorbeeld een eenvoudige server met Ubuntu gebruiken, maar ook alle uitvoeringen van de Raspberry Pi zijn geschikt. Verder zou je een NAS van Synology of QNAP kunnen gebruiken die Docker ondersteunt.

We zorgen er ook direct voor dat Bitwarden toegankelijk is van buitenaf via een reverse proxy. We kiezen daarbij voor een installatie van Nginx Proxy Manager via Docker, maar er zijn ook alternatieven mogelijk, zoals Caddy of Traefik. En ook binnen het Toepassingsportaal op een Synology-NAS kun je een reverse proxy instellen.

We installeren alles binnen Docker, wat vaak ook werkt op een Synology-NAS.

Domein en portforwarding

Om onze Bitwarden-server op afstand te kunnen benaderen, gaan we een subdomein gebruiken en enkele regels voor portforwarding instellen in de router. Hiervoor verwijs je het A-record van een subdomein naar het ip-adres van je internetverbinding thuis. Als je geen vast ip-adres hebt, zou je met dynamische DNS kunnen werken, zoals Duck DNS of No-IP.

In je router moet je het verkeer naar de poorten 80 en 443 doorsturen naar de reverse proxy. Aan de kant van de reverse proxy gaan we ook voor veilige https-toegang zorgen met een echt ssl-certificaat van Let’s Encrypt. Hiervoor zijn nauwelijks extra configuratiestappen nodig.

We sturen verkeer voor het subdomein door naar ons thuisnetwerk.

Installatie Docker

In dit artikel gaan we zowel Vaultwarden als de reverse proxy opzetten via Docker. Instructies voor de installatie van Docker voor verschillende besturingssystemen zijn wijd verspreid op internet. Wij hebben Docker onder Ubuntu 22.04 geïnstalleerd aan de hand van deze instructies.

Tegenwoordig wordt ook Docker Compose standaard geïnstalleerd. Dat gaan we in dit artikel gebruiken. Het zorgt ervoor dat je containers via een script kunt configureren. Bij een NAS van Synology of QNAP kun je containers via de webinterface beheren. Een standaard Docker-installatie kun je overigens ook uitbreiden met een webinterface, door bijvoorbeeld Portainer (ook via een Docker-container) te installeren.

Heb je Home Assistant? Dan kun je Vaultwarden eventueel via een community-add-on installeren. De vereiste repository wordt tegenwoordig standaard toegevoegd en geactiveerd.

Binnen Home Assistant kun je de add-on voor Vaultwarden installeren.

Docker-container

Om Vaultwarden te installeren, heb je uiteraard het juiste Docker-image nodig. Wij kiezen het standaardimage (vaultwarden/server). Datzelfde image ondersteunt het gebruik van SQLite, MySQL of PostgreSQL als database. Voorheen waren er verschillende images voor elk type database. Het advies is doorgaans om de standaardoptie SQLite te gebruiken, omdat deze het meest gebruikt en getest is. Verder worden meerdere architecturen ondersteund, waardoor je de container zowel op een x86-systeem als een ARM-systeem (zoals een Raspberry Pi) kunt opzetten.

We gebruiken de officiële container voor Vaultwarden.

Docker Compose-script

Op ons Ubuntu-systeem beginnen we met het maken van een map voor Vaultwarden en de bijbehorende data. We maken deze onder onze thuisfolder met de opdracht:

mkdir -p ~/docker/vaultwarden/data

Ga met de volgende opdracht naar de map voor Vaultwarden:

cd ~/docker/vaultwarden

En maak daarin het onderstaande script aan met:

nano docker-compose.yml

Het script bevat:

De code kun je overnemen vanuit .

Vooral de opties onder environment zijn persoonlijk. Dit zijn de zogenoemde omgevingsvariabelen. Als je een reverse proxy gaat gebruiken, vul dan achter DOMAIN het https-adres in dat je voor Bitwarden gaat gebruiken. Op de host (het systeem waarop we Vaultwarden installeren) gebruiken we poort 8080, die we koppelen aan poort 80 binnen de container.

Voor websockets gebruiken we (aan beide kanten) poort 3012. Met deze opdracht (in dezelfde map als het bestand docker-compose.yml) kun je Vaultwarden starten:

docker compose up -d

Wil je Vaultwarden stoppen, bijvoorbeeld om aanpassingen te maken aan de configuratie, stop dan eerst de container met:

docker compose down

Na het aanpassen van de configuratie start je de toepassing weer.

Met deze configuratie starten we onze container via Docker Compose.

Toegang configureren

Met bovenstaande configuratie kan iedereen via de web vault (de pagina die je ziet als je naar http://ipadres:8080 gaat) inloggen met een account, maar ook gewoon een nieuw account registreren. Wil je niet dat iedereen zomaar een nieuw account kan maken? Verander dan (eventueel op een later moment) de optie SIGNUPS_ALLOWED van true naar false.

Overigens kun je dat ook prima vanaf het begin doen als je nog geen account hebt. Er is namelijk een speciale beheerdersomgeving waar je gebruikers kunt bekijken of verwijderen, maar ook kunt uitnodigen om te registreren, zelfs als je die optie hebt uitgezet.

Je komt in deze omgeving als je /admin achter het adres zet. Om de omgeving te activeren, moet je een tekststring achter ADMIN_TOKEN invullen. Diezelfde tekststring moet je invullen om daadwerkelijk toegang te krijgen. Je kunt zelf een tekststring bedenken of je genereert een willekeurige met de opdracht:

openssl rand -base64 48
Via een speciale admin-omgeving wijzig je de opties.

SMTP-configuratie

Bij sommige acties zal Vaultwarden een e-mail willen versturen. Denk aan bepaalde meldingen, maar ook verzoeken zoals het bevestigen van een e-mailadres. Daarom is het handig om via omgevingsvariabelen de correcte instellingen voor SMTP op te geven. Je kunt bijvoorbeeld die van je internetprovider gebruiken. Voor bijvoorbeeld KPN kun je de omgevingsvariabelen in het bestand docker-compose.yml aanvullen met onderstaande regels. Daarbij kun je bij SMTP_FROM overigens zelf een afzender invullen. Op de admin-pagina vind je op het tabblad Settings een handige optie om je SMTP-instellingen te testen. Het is overigens niet handig om de configuratie daar aan te passen (zie kader ‘Configuratie Vaultwarden’).

De code kun je overnemen vanuit .
Via de beheeromgeving verstuur je een testmail.

Configuratie Vaultwarden In deze masterclass gebruiken we omgevingsvariabelen voor de configuratie van Vaultwarden. Eventueel kun je de configuratie ook veranderen en opslaan via de admin-pagina (/admin) van Vaultwarden. Dat raden we in principe af om praktische redenen: de veranderingen op de admin-pagina worden namelijk in een bestand (config.json) vastgelegd en ze hebben daarna voorrang boven de omgevingsvariabelen. Dat is in sommige situaties verwarrend.

Server te lastig, cloud onveilig?

Schrijf ze dan zelf op!

Verbinden op afstand

Je kunt Bitwarden ook onderweg gebruiken, bijvoorbeeld op een smartphone of tablet. Dit vereist wel dat je het account thuis via je lokale netwerk aanmaakt en ook steeds thuis gegevens synchroniseert. Wil je onderweg ook een nieuw apparaat toegang kunnen geven tot Bitwarden of gegevens synchroniseren, dan zul je voor toegang op afstand moeten zorgen. Daar zijn verschillende mogelijkheden voor.

Een populaire optie is het opzetten van een VPN-verbinding naar je thuisnetwerk met bijvoorbeeld Wireguard of OpenVPN. Maar in dit artikel gaan we een reverse proxy gebruiken. We kiezen daarbij voor Nginx Proxy Manager. Ook dit geeft een goede bescherming en de drempel voor toegang is lager. Je kunt de reverse proxy natuurlijk ook heel handig voor andere toepassingen op je netwerk gebruiken!

Voor toegang op afstand gaan we Nginx Proxy Manager gebruiken.

Installatie reverse proxy

Nginx Proxy Manager installeer je net als Vaultwarden eenvoudig via Docker, eventueel op hetzelfde systeem. Het maakt (uiteraard) op de achtergrond gebruik van de webserver Nginx als reverse proxy en maakt desgevraagd gratis ssl-certificaten van Let’s Encrypt aan, zodat directe toegang via https mogelijk is.

Via een handige webinterface voeg je vervolgens verbindingen voor de proxyserver toe, waaronder die van Vaultwarden. Zorg dat je (zoals eerder aangegeven) in je router de poorten 80 en 443 doorstuurt naar de server waarop je Nginx Proxy Manager hebt geïnstalleerd. We maken op dat systeem een nieuwe map met een eigen bestand docker-compose.yml, met daarin de volgende inhoud:

De code kun je overnemen vanuit .

Ook deze Docker-container start je weer met deze opdracht (in dezelfde map als het bestand docker-compose.yml):

docker compose up -d
Voor de reverse proxy volstaat deze bescheiden configuratie.

Bitwarden toevoegen

Heb je Nginx Proxy Manager gestart, dan zie je op het adres http://ipadres:81 de webinterface. De eerste keer moet je inloggen met admin@example.com en het wachtwoord changeme. Direct wordt gevraagd om je gegevens en het wachtwoord aan te passen. Hierna kun je de Vaultwarden-server toevoegen. Ga daarvoor naar Hosts / Proxy Hosts en kies Add Proxy Host. Vul bij Domain Names de domeinnaam in (bijvoorbeeld bitwarden.domein.nl) en druk op Enter.

Daaronder geef je aan hoe de toepassing op je netwerk wordt benaderd. Bij Scheme kies je http, bij Forward Hostname / IP vul je het ip-adres van de Vaultwarden-server in en bij Forward Port het poortnummer (8080). Zet een vinkje bij Websockets Support, Vaultwarden maakt hier gebruik van. Vink optioneel ook Block Common Exploits aan voor wat extra bescherming.

Op het tabblad Custom locations voeg je twee locaties toe voor websocket-ondersteuning: /notifications/hub met bij Scheme de waarde http, bij Forward Hostname / IP het ip-adres van de Vaultwarden-server en bij Forward Port het poortnummer 3012. Voeg via Add location de tweede locatie /notifications/hub/negotiate toe met dezelfde gegevens, maar nu poortnummer 8080.

Op het tabblad SSL kies je onder SSL Certificate de optie Request a new SSL Certificate. Zet een vinkje bij Force SSL en bij HTTP/2 Support. Vink ook aan dat je akkoord gaat met de gebruiksvoorwaarden van Let’s Encrypt. Klik dan op Save. Hiermee is je reverse proxy actief!

We voegen onze Bitwarden-server toe aan Nginx Proxy Manager.

Werking websockets controleren Vaultwarden gebruikt websockets om gegevens te synchroniseren tussen clients. Het activeren kan soms een uitdaging zijn. Je kunt de werking eenvoudig controleren als je de web vault opent in Chrome en dan de console in de gaten houdt. Dat is een onderdeel van de tools voor ontwikkelaars; je komt daar met de toetscombinatie Ctrl+Shift+I.

Je ziet hier na het inloggen direct een bevestiging dat de websocket is verbonden en als het goed is gegaan zie je geen foutmeldingen. Op mobiele apparaten zijn websockets overigens niet genoeg en zul je gegevens zelf (eventueel handmatig) moeten synchroniseren, omdat Vaultwarden geen pushnotificaties ondersteunt, in tegenstelling tot de officiële Bitwarden.

Digitale kluis maken

Je kunt in het vervolg de web vault via je domein benaderen, zoals https://bitwarden.domein.nl. Maak hier als eerste een nieuw account aan met uiteraard een sterk hoofdwachtwoord. Daarna kun je direct inloggen met deze gegevens. Via een knop stuur je een bericht waarmee je jouw e-mailadres bevestigt.

Gebruik je reeds de officiële Bitwarden en wil je overstappen naar Vaultwarden? Dan exporteer je de gegevens vanuit Bitwarden als JSON-bestand. Binnen Vaultwarden importeer je het bestand daarna op het tabblad Hulpmiddelen. Via het icoontje rechtsboven kun je onder Accountinstellingen de optie voor tweestapsverificatie aanzetten en ook andere beveiligingsopties configureren.

Via de browser hebben we toegang tot de digitale kluis met onze gegevens.

Tweestapsverificatie Zoals veel wachtwoordbeheerders kunnen Bitwarden en Vaultwarden niet alleen inloggegevens bewaren, maar ook inlogcodes genereren voor tweestapsverificatie. Daartoe moet wel de sleutel die wordt gedeeld bij het inschakelen van tweestapsverificatie worden opgeslagen in je digitale kluis. Dat is de kluis waar óók je wachtwoorden in staan. We raden je daarom altijd aan om tweestapsverificatie niet met je wachtwoordbeheerder af te handelen. Beter kun je een andere app gebruiken, zoals Google Authenticator of Aegis Authenticator. Als je digitale kluis wordt gekraakt, zorg je er in ieder geval voor dat hackers alsnog aan de poort worden tegengehouden, omdat ze niet de gegevens hebben om voorbij de tweede verificatiestap te komen.

▼ Volgende artikel
HBO’s Harry Potter-serie verschijnt begin 2027
Huis

HBO’s Harry Potter-serie verschijnt begin 2027

De langverwachte HBO Max-serie gebaseerd op de Harry Potter-boeken zal ergens in het begin van 2027 uitkomen.

De langverwachte HBO Max-serie gebaseerd op de Harry Potter-boeken zal ergens in het begin Dat heeft HBO-baas Casey Bloys laten weten aan Deadline. Het was al bekend dat de serie ergens in 2027 uit zou komen op de streamingdienst, maar nu is dus duidelijk dat dit ergens begin volgend jaar wordt. Een specifiekere datum is er vooralsnog niet.

Over de Harry Potter-serie

Net zoals dat de filmreeks de Harry Potter-boeken verfilmde, zal de nieuwe HBO-serie dat ook doen. Elk seizoen moet daarbij de gebeurtenissen uit een boek behandelen. Er zouden bij succes dus zeven seizoenen kunnen verschijnen.

De opnames zijn al een aantal maanden bezig in het Verenigd Koninkrijk. Vorig jaar werden al diverse acteurs die de rollen op zich nemen onthuld. Zo zullen Dominic McLaughlin en Nick Frost (Hot Fuzz) te zien zijn als respectievelijk Harry Potter en Hagrid. Daarnaast zullen Arabella Stanton de rol van Hermione Granger (Hermelien Griffel) en Alastair Stout de rol van Ron Weasley (Ron Wemel) vertolken.

De showrunner van de serie is Francesca Gardiner, die eerder al aan The Man in the High Castle en His Dark Materials werkte. Eerder liet Gardiner weten dat het de bedoeling is dat ze haar eigen draai aan het verhaal geeft. Ook de geprezen regisseur Mark Mylod – bekend van Succession en The Last of Us – werkt aan de serie.

Nieuw op ID: het complete plaatje

Misschien valt het je op dat er vanaf nu ook berichten over games, films en series op onze site verschijnen. Dat is een bewuste stap. Wij geloven dat technologie niet stopt bij hardware; het gaat uiteindelijk om wat je ermee beleeft. Daarom combineren we onze expertise in tech nu met het laatste nieuws over entertainment. Dat doen we met de gezichten die mensen kennen van Power Unlimited, dé experts op het gebied van gaming en streaming. Zo helpen we je niet alleen aan de beste tv, smartphone of laptop, maar vertellen we je ook direct wat je erop moet kijken of spelen. Je vindt hier dus voortaan de ideale mix van hardware én content.

▼ Volgende artikel
Nieuwe Firefox-versie laat je alle AI-functies met één knop blokkeren
© Mozilla
Huis

Nieuwe Firefox-versie laat je alle AI-functies met één knop blokkeren

Mozilla brengt eind februari een update uit voor Firefox waarmee gebruikers meer grip krijgen op kunstmatige intelligentie in de browser. In de nieuwe versie van de desktopbrowser komt een speciaal menu waarin alle AI-functies centraal kunnen worden beheerd of volledig kunnen worden geblokkeerd.

Vanaf versie 148, die op 24 februari verschijnt, is het gedeelte 'AI-instellingen' terug te vinden in de browseropties. De belangrijkste toevoeging is een hoofdschakelaar waarmee alle huidige en toekomstige AI-toepassingen in één keer worden stopgezet. Wanneer deze functie is geactiveerd, krijgt de gebruiker geen meldingen of suggesties meer om AI-hulpjes te gebruiken. Mozilla geeft aan dat deze voorkeuren ook na updates bewaard blijven, zodat instellingen niet ongevraagd worden teruggezet naar de standaardwaarden.

Voor wie AI niet volledig wil bannen, biedt het menu ook de mogelijkheid om specifieke functies los van elkaar aan of uit te zetten. Het gaat hierbij onder meer om de automatische vertaalfunctie en een hulpmiddel dat beschrijvingen toevoegt aan afbeeldingen in pdf-bestanden voor een betere toegankelijkheid. Ook functies die tabbladen automatisch groeperen op basis van onderwerp of een samenvatting tonen voordat een link wordt aangeklikt, vallen onder deze nieuwe knoppen.

©Mozilla

Daarnaast biedt Firefox ruimte voor externe chatbots in de zijbalk van de desktopbrowser. Gebruikers kunnen daar zelf kiezen welke assistent zij willen gebruiken, waarbij diensten als ChatGPT, Google Gemini, Microsoft Copilot en Anthropic Claude worden ondersteund. Met deze centrale instellingen bepaal je zelf wanneer je een chatbot ziet, zodat deze niet ongevraagd je scherm vult.

De nieuwe AI-controles worden op 24 februari uitgerold naar alle Firefox-gebruikers op de desktop. Wie niet zo lang wil wachten, kan de functies al uitproberen in Firefox Nightly.

Wat is Firefox Nightly?

Firefox Nightly is een testversie van de browser die dagelijks wordt bijgewerkt met de allernieuwste programmeercode. Ontwikkelaars gebruiken deze versie om nieuwe functies uit te proberen en fouten op te sporen voordat een stabiele update naar de gewone gebruiker gaat. Omdat de software nog volop in ontwikkeling is, kan Nightly minder stabiel zijn dan de standaardversie van Firefox.