freedzhost.cloud

Homelab 3 : votre propre gestionnaire de mots de passe avec Vaultwarden

Niveau DébutantTemps estimé 45 minÀ lire avant Homelab 2 : une seule entrée HTTPS pour tous vos servicesUn mot inconnu ? Lexique

Vaultwarden est un serveur open source compatible avec les apps Bitwarden : vous gardez les apps officielles, soignées, sur votre téléphone et dans votre navigateur, et le serveur tourne chez vous. Il est léger (quelques dizaines de Mo de RAM) et c'est le service qui protège tous les autres : il reçoit donc le plus de soin dans cette série.

Mot de passe maîtresur papier, à la maisontapé, jamais envoyéVos appareilsapp, extension navigateurchiffre iciProxy HTTPSVaultwardenun conteneurdb.sqlite3du chiffré seulementfiches chiffrées2e disquesqlite3 .backupchaque nuit
Vos appareils chiffrent avant d'envoyer : le serveur ne stocke jamais que du chiffré. Le seul secret qui ouvre tout se tape sur l'appareil et vit sur papier, pas dans le coffre.

Un peu d'histoire

Bitwarden, un gestionnaire de mots de passe libre, est apparu en 2016. En 2018, Daniel García a réécrit un serveur compatible en Rust, assez léger pour un Raspberry Pi ; appelé d'abord bitwarden_rs, il a été renommé Vaultwarden en 2021. Il parle le même protocole, si bien que les applis officielles de Bitwarden et ses extensions de navigateur fonctionnent avec lui sans changement.

Pourquoi le serveur peut être à la maison

Les apps Bitwarden chiffrent votre coffre sur l'appareil, avec une clé dérivée de votre mot de passe maître, avant d'envoyer quoi que ce soit. Le serveur stocke du chiffré qu'il ne sait pas lire. Un serveur volé laisse fuir des blocs chiffrés ; un mot de passe maître oublié, en revanche, vous enferme dehors pour de bon. Préparez-vous d'abord au second cas.

1. Le lancer

services:
  vaultwarden:
    image: vaultwarden/server:1.37.4
    restart: unless-stopped
    ports:
      - "8200:80"
    volumes:
      - ./vw-data:/data
    environment:
      - DOMAIN=https://vault.votredomaine.tld
      - SIGNUPS_ALLOWED=true
docker compose up -d

Publiez-le par votre proxy HTTPS (Homelab 2) : le coffre web et les apps ont besoin de HTTPS pour fonctionner tout court.

2. Créer votre compte, puis fermer la porte

  1. Ouvrez https://vault.votredomaine.tld et créez votre compte.
  2. Écrivez le mot de passe maître sur papier et gardez-le chez vous. Pas dans une app de notes, pas dans le coffre lui-même : une clé enfermée dans la boîte qu'elle ouvre n'ouvre rien.
  3. Passez SIGNUPS_ALLOWED=false et relancez docker compose up -d. Désormais, personne d'autre ne peut s'inscrire sur votre serveur.
  4. Vérifiez-le : une nouvelle tentative d'inscription doit être refusée.

3. Connecter les apps

Dans l'app Bitwarden ou l'extension du navigateur, avant de vous connecter, choisissez un serveur auto-hébergé et entrez votre adresse. Tout le reste marche comme d'habitude : remplissage automatique, déverrouillage par empreinte sur le téléphone, générateur de mots de passe.

4. La sauvegarde qui se restaure

D'après la documentation officielle : copiez la base avec la commande de sauvegarde de SQLite elle-même, qui reste cohérente pendant que le serveur écrit.

sqlite3 vw-data/db.sqlite3 ".backup '/backups/db-$(date '+%Y%m%d-%H%M').sqlite3'"

Sauvegardez aussi vw-data/attachments/ et les fichiers rsa_key*. Chaque nuit, vers un autre disque.

Pour restaurer : arrêtez Vaultwarden, remettez les fichiers, et supprimez tout db.sqlite3-wal resté dans le dossier avant de relancer, sinon la base restaurée peut être corrompue.

Faites une restauration de test une fois, sur une autre machine ou dans un autre dossier, et connectez-vous avec les apps. Une sauvegarde jamais restaurée est un espoir.

Pièges

Le vrai risque à la maison n'est pas le vol du serveur, c'est la perte du mot de passe maître. Un appareil déjà déverrouillé continue de marcher un moment et cache le problème jusqu'à son redémarrage. Si vous changez votre mot de passe maître, écrivez le nouveau sur papier dans la minute.

Exportez aussi votre coffre, chiffré, de temps en temps, et gardez le fichier hors ligne : c'est votre porte de sortie si le serveur lui-même disparaît.

Sources

Utile ? Dites-nous ce qu'il faut mesurer ensuite.