Come installare Vaultwarden: la soluzione open source per la gestione sicura delle password con docker compose

Vaultwarden è una versione non ufficiale del server Bitwarden. È compatibile con i client ufficiali di Bitwarden ed è meno esigente in termini di risorse rispetto a Bitwarden. Implementa quasi tutte le funzionalità di Bitwarden

Vaultwarden è una versione leggera e performante non ufficiale di Bitwarden, scritta in Rust, che permette di gestire le password in modo sicuro. Una delle sue caratteristiche di Vaultwarden è la piena compatibilità con il client ufficiale Bitwarden, il che significa che potrai utilizzare le app ufficiali su dispositivi mobili e desktop per accedere e sincronizzare le tue credenziali in sicurezza.

Vaultwarden è una versione non ufficiale di Bitwarden, sviluppata con l’obiettivo di offrire un’alternativa leggera e performante per la gestione delle password. Scritto in Rust, un linguaggio di programmazione noto per la sua efficienza e sicurezza, Vaultwarden si distingue per la sua capacità di garantire prestazioni elevate con un consumo minimo di risorse.

Una delle caratteristiche più apprezzate di Vaultwarden è la sua piena compatibilità con il client ufficiale di Bitwarden. Questo significa che puoi utilizzare le app ufficiali di Bitwarden su dispositivi mobili e desktop per accedere e sincronizzare le tue credenziali in modo sicuro e senza interruzioni. Grazie a questa compatibilità, non dovrai rinunciare alla comodità e alla familiarità delle interfacce ufficiali di Bitwarden, pur beneficiando delle ottimizzazioni offerte da Vaultwarden.

Oltre alla gestione delle password, Vaultwarden supporta una serie di funzionalità avanzate come la generazione di password sicure, il riempimento automatico dei moduli, la condivisione sicura delle credenziali, supporta l’autenticazione a due fattori (2FA), supporto per security keys e passkeys e altro. Queste funzionalità ti aiutano a migliorare la tua sicurezza online e a semplificare la gestione delle tue informazioni sensibili.

In questa guida ti spiego come installarlo utilizzando Docker Compose su una VPS.

Prerequisiti

Ovviamente è necessario avere Docker e Docker Compose installati per distribuire un container Vaultwarden. Se non hai già installato Docker, ti sarà utile la guida: Come installare Docker per il tuo homelab o VPS.

Per completare l’installazione, devi avere un nome di dominio. Ma perché è necessario un dominio ? Dalla documentazione ufficiale: “per il corretto funzionamento di Vaultwarden, l’abilitazione di HTTPS è praticamente obbligatoria al giorno d’oggi, poiché il vault web di Bitwarden utilizza API di crittografia web che la maggior parte dei browser rende disponibili solo in contesti HTTPS“.

Devi avere un certificato SSL valido per far funzionare correttamente la connessione HTTPS. Il nostro Docker Compose utilizzerà Nginx Proxy Manager come reverse proxy per inoltrare le richieste in entrata al contenitore Vaultwarden. Per questa guida, utilizzerò il dominio vault.emanuelegori.uno

È possibile utilizzare qualsiasi altro software che offra funzionalità simili come reverse proxy, come Nginx, Caddy, Traefik, HAProxy, ecc. Personalmente utilizzo Nginx Proxy Manager come alternativa collaudata e semplice da implementare.

Se non hai idea di cosa stò parlando, segui la guida: Come impostare il reverse proxy con Nginx Proxy Manager (NPM) per configurare il tuo nome di dominio con certificato SSL

Installare Vaultwarden Password Manager con Docker Compose

Il primo passo è creare la directory del progetto in cui verrà salvato il file di distribuzione Docker e posizionarsi all’interno. Nota: da qui in avanti, sarà necessario eseguire tutti i comandi riportati di seguito in questa guida da tale posizione.

mkdir vaultwarden && cd vaultwarden

Nel corso del tempo, ho trovato che per l’installazione di Vaultwarden sia più efficiente iniziare creando la password dell’amministratore. Questo approccio mi permette di avere il pieno controllo sul sistema fin dall’inizio e di gestire successivamente la creazione degli utenti in modo più organizzato. Proseguiamo!

Per l’amministrazione, il server Vaultwarden offre un’interfaccia GUI basata sul web. Consente all’amministratore di visualizzare, disabilitare o eliminare (ma non aggiungere nuovi) tutti gli utenti registrati. Permette anche di invitare nuovi utenti anche se la registrazione è disabilitata (ma solo se la funzione SMTP è configurata correttamente) infatti per utilizzare questa funzionalità è necessario disporre di credenziali valide per un server SMTP.

Per impostazione predefinita, questa interfaccia amministrativa non è abilitata. È necessario impostare un token di autenticazione e aggiungerlo alla distribuzione di Vaultwarden per abilitarla. Ecco come generare un token.

Creazione della password dell’amministratore di Vaultwarden

Esegui il comando seguente per avviare un contenitore temporaneo di Vaultwarden che genererà un token. Inserisci una password di almeno otto caratteri alfanumerici, che diventerà la tua password amministrativa, e poi ripetila.

docker run --rm -it vaultwarden/server /vaultwarden hash
Crea il token di autenticazione amministrativa di Vaultwarden.

Una volta generato il token, prendi la sola parte racchiusa tra gli apici e passala al comando come mostrato di seguito.

echo 'your-authentication-token-here' | sed 's#\$#\$\$#g'
Crea il token di autenticazione amministrativa di Vaultwarden.

Copia e salva l’output del comando, in questo esempio $$argon2id$$v=19$$m=65540,t=3,p=4$$5YzigIiThJKUyoFVF7tkOcPikB4jnJhxvTQ+jnYR5mU$$5yH/SttWFq7Htz/MUAEJXtrs6ZVv4NKx2w9c3yqzYow poiché questa è la versione hash della tua password amministrativa di Vaultwarden.

Quindi, crea il file docker-compose.yml e incolla il seguente contenuto:

nano docker-compose.yml

Salva il file premendo CTRL + X dopo Y e quindi invio.

Nel codice sopra, personalizza le strighe con quelle che ti interessano:

  • ADMIN_TOKEN: Sostituiscilo con il token amministrativo generato in precedenza, in modo che la versione finale appaia come ADMIN_TOKEN: $$argon2id$$v=19$$m=65540,t=3,p=4$$…. Importante! Nota che la stringa non è racchiusa tra apici.
  • DOMAIN: Il nome di dominio preceduto da https:// che servirà il servizio. Ad esempio vault.emanuelegori.com.
  • SIGNUPS_ALLOWED: Se impostiamo su true possiamo registrare l’utente che utilizzerà il servizio subito dopo aver avviato Vaultwarden senza necessariamente accedere all’interfaccia di amministrazione. Comunque è sempre possibile cambiare dall’interfaccia di amministrazione il suo valore in false, rendendo impossibile l’auto-registrazione degli utenti.
  • SMTP Imposta credenziali valide per registrare uno o più utenti. Esempio di utilizzo con Gmail:
    • SMTP_HOST: smtp.gmail.com
    • SMTP_FROM: il tuo indirizzo email
    • SMTP_PORT: 587
    • SMTP_SECURITY: starttls
    • SMTP_USERNAME: il tuo indirizzo email
    • SMTP_PASSWORD: la tua password per app (https://myaccount.google.com/apppasswords)

Finalmente possiamo eseguire il nostro stack Vaultwarden.

Avvia ed esegui il container Vaultwarden col seguente comando:

docker-compose up -d

L’intera procedura può richiedere da pochi secondi a un minuto, a seconda della velocità della tua connessione internet.

Accesso all’interfaccia di amministrazione di Vaultwarden

L’interfaccia di amministrazione di Vaultwarden è una GUI basata sul web che ti consente di gestire completamente il server Vaultwarden. Se tutto è andato a buon fine, per accedervi, inserisci https://il-tuo-dominio/admin. Nel mio caso https://vault.emanuelegori.uno/admin

Inserisci la password che hai utilizzato per generare l’hash nel paragrafo sopra Creazione della password dell’amministratore di Vaultwarden di questa guida. Per essere chiari, devi inserire la password, non l’hash stesso.

Dopo aver effettuato l’autenticazione con successo, ti verrà concesso l’accesso all’interfaccia di amministrazione di Vaultwarden per eseguire l’amministrazione completa del server.

Qualcosa di importante da ricordare: qualsiasi modifica effettuata qui ha la precedenza sulle direttive nel file docker-compose.yml. In altre parole, indipendentemente da ciò che è specificato nel docker-compose.yml, se cambi qualcosa tramite l’interfaccia di amministrazione, avrà sempre la precedenza.

Gestione degli utenti

Per aggiungere un utente o in previsione di aggiungere altri utenti, la domanda principale è: Come faccio ad aggiungere un nuovo utente?. Come avrai notato, puoi rimuovere utenti dalla sezione di amministrazione, ma non puoi aggiungerne di nuovi. In altre parole, NON c’è un pulsante come Aggiungi utente.

Come premesso in precedenza, il mio approccio preferito per registrare un utente è inviare un invito via email.

Vaultwarden Invite users

Nel campo Invite User inserisci l’indirizzo email dell’utente che vuoi creare e invia l’invito. L’utente riceverà un’email simile a quella riportata di seguito.

Vaultwarden email invito

Dopo aver fatto clic sul pulsante Join Organization Now l’utente è ridiretto nella pagina di creazione nuovo account di Vaultwarden, dove può creare e attivare l’account da solo.

Vaultwarden crea account
Installa l’estensione di Bitwarden per il browser e connettiti al server Vaultwarden

Vaultwarden utilizza la medesima estensione del browser di Bitwarden per generare e memorizzare password e non solo per i numerosi servizi che utilizziamo su Internet.

Quindi, installiamo l’estensione ufficiale di Bitwarden e connettiamola al nostro server Vaultwarden self-hosted. Download Bitwarden Password Manager App

Dopo aver installato l’estensione, clicca sull’icona configurazione in alto a sinistra e seleziona l’opzione Self-hosted.


Fare clic sul pulsante Save per applicare l’impostazione. Accedi con le credenziali Vaultwarden per accedere all’app.

Conclusione

Congratulazioni se sei arrivato fin qui e hai installato il gestore di password Vaultwarden. Ma probabilmente ti starai chiedendo: Come posso aggiornare il contenitore Docker quando esce una nuova versione? Non preoccuparti !

Con l’aiuto di Watchtower avrai sempre la versione più aggiornata di Vaultwarden sul tuo server. Segui la mia guida Come installare Watchtower con Docker Compose per aggiornare automaticamente le immagini dei contenitori Docker.

Inoltre, se lavorare con il terminale non fa per te, Portainer può aiutarti, fornendo un’interfaccia web comoda per interagire con i contenitori Docker. Segui la mia guida Come installare Portainer CE (Community Edition) con Docker Compose per gestire container, immagini e molto altro attraverso un’interfaccia web intuitiva.

Vaultwarden è un applicazione open-source che offre una soluzione robusta per la gestione di password e altre informazioni sensibili.

Questa guida all’installazione di Vaultwarden con Docker Compose offre un approccio completo e user-friendly per iniziare, assicurandoti che i tuoi dati rimangano sotto il tuo controllo e lontani dagli occhi indiscreti dei provider cloud di terze parti.

Se hai domande, lasciale nella sezione commenti qui sotto. Per saperne di più su Vaultwarden, visita la pagina GitHub del progetto.

emanuelegori
emanuelegori

Sono Emanuele, un appassionato di informatica da quando, negli anni 90, ho scoperto il mondo digitale con il mio primo personal computer Intel 486.
Da allora, non ho mai smesso di esplorare, imparare e condividere.
Oggi mi dedico al self-hosting, all'open source e alla privacy, per costruire un futuro digitale più autonomo e sicuro.

Lascia una risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Leave the field below empty!

Importante !