La tua cassaforte Vaultwarden deve essere accessibile solo via VPN? Tre condizioni
Una cassaforte privata è una decisione di routing e ripristino, non solo una regola del firewall. Verifica tre condizioni: accesso il primo giorno, una cache in sola lettura e una via di ritorno.
Il primo accesso su un telefono sostitutivo è il momento in cui una cassaforte raggiungibile solo via VPN mostra il suo costo: l’app non ha cache, il server sta dietro un tunnel e le credenziali del tunnel possono trovarsi nella cassaforte che non riesci ad aprire. È una questione di progetto e non un’interruzione, e costa meno rispondervi prima della distribuzione che dopo. Tre condizioni decidono se una cassaforte privata è praticabile per i tuoi utenti. Se una di esse fallisce, la risposta giusta è di solito un’esposizione più stretta e non un muro di VPN.
Condizione 1: i tuoi utenti raggiungono il server il primo giorno
Un nuovo dispositivo non ha cache, né sessione, né fiducia. Gli servono il nome host del server risolto, la rotta per raggiungerlo e un profilo VPN già installato prima che l’utente provi ad accedere. Se uno di questi tre arriva solo dopo il primo accesso, la distribuzione fallisce nel momento peggiore possibile. Conta quanti passaggi deve completare una nuova persona prima di poter aprire la sua cassaforte.
Un tunnel diviso spesso si adatta meglio qui: trasporta solo l’endpoint della cassaforte e il percorso DNS che gli serve, e lascia in pace il resto del traffico dell’utente. È una decisione di routing da prendere con il proprietario della VPN, non un presupposto che ogni client mobile rispetti la stessa politica. Entrambe le famiglie di indirizzi e il nome host del servizio devono essere coerenti con questa scelta.
Se gli utenti non riescono a raggiungere il server prima di avere credenziali funzionanti, questa condizione fallisce e il muro di VPN ha la forma sbagliata.
Condizione 2: l’accesso in cache è in sola lettura, e questo basta
I client Bitwarden possono mostrare una cassaforte già sbloccata senza raggiungere il server, e quella copia offline è in sola lettura. È utile per leggere una password durante un’interruzione; non è un nuovo accesso e non è modifica. Decidi se la sola lettura è accettabile per i tuoi utenti prima di progettare intorno ad essa.
curl -sI https://vault.example.com/alive
openssl s_client -connect vault.example.com:443 -servername vault.example.com </dev/nullBloccare e disconnettersi sono stati diversi, e la differenza qui conta. Un client bloccato mantiene la cassaforte locale cifrata e può sbloccarla di nuovo con la password principale o la biometria; la disconnessione rimuove quella copia locale e richiede il server. Se uno script di supporto dice agli utenti di disconnettersi e rientrare per risolvere un problema di sincronizzazione, rimuove anche il loro accesso offline. Controlla l’azione di timeout su ogni client invece di presumere il valore predefinito.
Una copia in cache non è un backup. Vive su un solo dispositivo, è legata a un solo account e scompare con una disconnessione o una cancellazione.
Condizione 3: il ripristino non passa attraverso la cassaforte stessa
Il caso circolare è facile da costruire per sbaglio: la credenziale VPN è salvata nella cassaforte, la cassaforte è dietro la VPN e l’unico dispositivo con una cache è quello andato perso. Il ripristino dipende allora da un documento o da una persona fuori dal sistema. Scrivi quel percorso di avvio e provalo con un account recuperabile prima che qualcuno ne abbia bisogno. Una procedura di emergenza che nessuno ha esercitato è solo una speranza.
Prova la sequenza in modo controllato: conferma quali elementi esistenti restano leggibili offline, poi ripristina il percorso di rete e verifica che un nuovo accesso e una sincronizzazione funzionino. Evita di disconnetterti dall’unica copia in cache come esperimento, a meno che esista un’altra via di ritorno. Annota ciò che hai osservato, compresa la versione del client.
Se il ripristino richiede la cassaforte, questa condizione fallisce. La correzione è un percorso fuori banda documentato, non un avviso più forte nel documento di onboarding.
Ciò che conservi in ogni caso: HTTPS, backup e aggiornamenti
HTTPS resta al suo posto anche dietro la VPN. Dà al servizio web un’identità che il browser può verificare e mantiene protetta la connessione dell’applicazione indipendentemente da dove termina il tunnel. Un endpoint privato non dovrebbe insegnare agli utenti a ignorare gli avvisi sui certificati, perché quell’abitudine li segue sui siti pubblici.
I backup sono una disciplina separata dalla disponibilità. Vaultwarden archivia i dati in un database, e una copia coerente presa a servizio fermo, o un backup a livello di database, vale più di un file copiato da un processo in esecuzione. Tieni la copia fuori dall’host della cassaforte e prova un ripristino. Il materiale esportato della cassaforte ha bisogno della stessa protezione dell’originale, perché un’esportazione non è cifrata come l’archiviazione del server.
sqlite3 /data/db.sqlite3 ".backup '/backup/vault-2026-11-03.sqlite3'"
docker compose psPoi tieni aggiornati il server e i client. L’accesso solo via VPN riduce l’esposizione; non rende innocua un’implementazione vulnerabile e non protegge un endpoint compromesso. Le tre condizioni decidono il modello di accesso, e la manutenzione decide se quel modello sopravvive all’anno.