VaultWarden

Vaultwarden (anciennement appelé bitwarden_rs) est une version légère, auto-hébergeable et compatible de Bitwarden, un gestionnaire de mots de passe open source. Il permet de stocker, organiser et partager des mots de passe en toute sécurité, via une interface web ou une application mobile.

Vaultwarden est conçu pour être simple à déployer, même sur des machines avec peu de ressources.

Présentation

image.png

Qu’est-ce que Vaultwarden ?

Vaultwarden (anciennement appelé bitwarden_rs) est une version légère, auto-hébergeable et compatible de Bitwarden, un gestionnaire de mots de passe open source. Il permet de stocker, organiser et partager des mots de passe en toute sécurité, via une interface web ou une application mobile.

Vaultwarden est conçu pour être simple à déployer, même sur des machines avec peu de ressources.

À quoi sert Vaultwarden ?

Vaultwarden permet de centraliser tous ses mots de passe et informations sensibles dans un coffre-fort chiffré. L’objectif est de ne plus avoir à mémoriser de nombreux mots de passe complexes, tout en améliorant la sécurité.

Il est utilisé autant par des particuliers que des équipes ou entreprises pour stocker, retrouver et partager des identifiants de manière sécurisée.

Comment fonctionne Vaultwarden ?

Vaultwarden fonctionne comme un serveur web accessible depuis un navigateur ou une application Bitwarden officielle. Il héberge un coffre-fort chiffré que seul l’utilisateur peut déchiffrer avec son mot de passe maître.

Toutes les données sont chiffrées côté client, ce qui signifie que même l’administrateur du serveur n’a pas accès aux mots de passe.

Pourquoi utiliser Vaultwarden ?

Vaultwarden est particulièrement apprécié pour sa légèreté, sa simplicité de mise en place, et sa compatibilité avec les clients Bitwarden. Il est idéal pour ceux qui souhaitent une solution privée et sécurisée, sans passer par le service cloud officiel.

C’est une alternative efficace et économique pour gérer ses mots de passe soi-même, tout en gardant la compatibilité avec les outils Bitwarden.

Cas d’usage courants

Vaultwarden est utilisé pour :

En résumé

Vaultwarden est une solution simple, sécurisée et auto-hébergeable pour gérer ses mots de passe. Compatible avec Bitwarden, léger à déployer, il permet de garder le contrôle total de ses données sensibles.

Installation

image.png

Fichier docker-compose

Dans cette procédure, nous allons utiliser Docker. Une documentation préalable à ce sujet est disponible ici.
Commençons par créer un fichier docker-compose.yaml, adapté à nos besoins :

services:
  vaultwarden:
    image: vaultwarden/server:latest  # Utilise l'image officielle Vaultwarden, en dernière version disponible
    container_name: vaultwarden       # Nomme explicitement le conteneur pour faciliter son identification
    restart: always                   # Redémarre automatiquement le conteneur en cas de crash ou redémarrage de l'hôte

    ports:
      - "82:80"                       # Expose l'interface HTTP sur le port 82 de la machine (interne 80)
      - "4443:443"                   # Expose l'interface HTTPS sur le port 4443 de la machine (interne 443)

    volumes:
      - /vw-data:/data               # Monte le dossier /data du conteneur (où sont stockées les données) dans /vw-data de l'hôte

    environment:
      - ROCKET_PROFILE=release       # Active le mode production pour de meilleures performances
      - ROCKET_ADDRESS=0.0.0.0       # Écoute sur toutes les interfaces réseau disponibles
      - ROCKET_PORT=80               # Définit le port HTTP interne à 80
      - DEBIAN_FRONTEND=noninteractive  # Supprime les interactions lors des mises à jour système (bonne pratique en conteneur)
      - ADMIN_TOKEN=<clé>            # Jeton d'administration haché permettant l'accès à l'interface d'administration Vaultwarden

    command: ["/start.sh"]            # Démarre le script de lancement officiel du conteneur

    healthcheck:
      test: ["CMD", "/healthcheck.sh"]  # Vérifie la santé du conteneur via un script toutes les 60 secondes
      interval: 60s
      timeout: 10s

Pour obtenir la clé "ADMIN_TOKEN", c'est très simple, on génère une clé SSL :

openssl rand -base64 48

cela renvoi un résultat similaire à cela :

mjLUlEhDYJr1kxJqGWkkc1qUCpqV3aektjfbGFSNbZwuE+2+GDhvyLZhnAfEdhW9

Démarrage

Une fois le fichier docker-compose.yaml créé, nous pouvons lancer VaultWarden avec la commande suivante :

docker compose up -d

Settings

image.png

Avant propos

Une fois Vaultwarden installé, on peut se rendre sur l'adresse, et comme nous avons enregistré une variable ADMIN_TOKEN, le panel d'administration est activé.
Pour s'y rendre il s'uffit d'ajouter /admin enfin d'URL : https://<domaine>/admin
Une fois sur le panel d'admin, il va falloir définir un mot de passe, et le hash avec argon2, installable sur Linux via :

apt update
apt install -y argon2

Puis ont hash le mot de passe voulu :

echo -n "Mot de Passe" | argon2 "$(openssl rand -base64 32)" -e -id -k 65540 -t 3 -p 4

Ce qui nous renvoit alors :

$argon2id$v=19$m=65540,t=3,p=4$YWdQV0pURXNQMnhhWXhFZTNMUUkyNXZKRXdmcGdqQnBnR1E0UFAzK2FPTT0$+GzhtE21VtpcR/NW3re4m6DgUDq/GX0pX2ssTg+4YY0

On entre le résultat dans le champs "Admin token/Argon2 PHC" de la section "General Settings" et on oublie pas de cliquer sur "Save" en bas de page.

Voila, l'accès au panel d'administration est sécurisé par un mot de passe !

Les sections de Settings

General settings

Cette section permet de définir le comportement global de Vaultwarden. Elle agit comme le cœur de la configuration de ton service.

Advanced settings

Cette section rassemble des réglages qui influencent le comportement plus technique ou précis de Vaultwarden. Ces options permettent d’ajuster la sécurité, la gestion des icônes, la gestion des sessions, et d’autres détails.

Yubikey settings

La section YubiKey Settings permet d’activer l’authentification à deux facteurs (2FA) avec une clé physique de sécurité YubiKey. Ce dispositif ajoute une couche de protection très fiable, en plus du mot de passe classique.

Global duo settings

La section Global Duo Settings permet d’activer l’authentification à deux facteurs via le service Duo Security (filiale de Cisco). Ce service propose une vérification d’identité forte, par notification mobile, appel ou code temporaire, pour sécuriser davantage les connexions.

Contrairement à une clé physique comme YubiKey, Duo repose sur une application mobile, ce qui le rend plus souple à déployer dans certains contextes (notamment en entreprise).

SMTP Email settings

La section SMTP Email Settings permet de configurer l’envoi des e-mails par Vaultwarden. Ces e-mails sont utilisés pour plusieurs fonctions importantes : vérification d’adresse lors de l’inscription, notifications de sécurité (nouvelle connexion, partage, demande d'accès), envoi de liens d’urgence ou de réinitialisation de mot de passe.

Vaultwarden n’héberge pas de serveur de messagerie. Il s’appuie donc sur un serveur SMTP externe (comme celui de Zimbra, Gmail, ProtonMail, etc.) pour envoyer les e-mails.

echo -n "Mot de Passe" | argon2 "$(openssl rand -base64 32)" -e -id -k 65540 -t 3 -p 4

Email 2FA settings

La section Email 2FA Settings permet d’activer un système d’authentification à deux facteurs (2FA) basé sur la réception d’un code par e-mail. C’est une méthode simple et accessible, mais moins sécurisée que les solutions classiques comme les applications d’authentification ou les clés physiques (comme YubiKey).

Voila la déscription des principaux paramètres de VaultWarden !