Dans ce tutoriel, je vais vous expliquer comment déployer Vaultwarden avec Docker et Docker Compose afin d’autohéberger un gestionnaire de mot de passe.
Avant de commencer, je vais vous présenter Vaultwarden. Vaultwarden est un fork de Bitwarden écrit en Rust qui est beaucoup plus léger que Bitwarden et qui peut être autohébergé. L’autre intérêt d’utiliser Vaultwarden en entreprise, c’est que celui-ci intégré toutes les fonctionnalité de la version payant de Bitwarden comme :
- La possibilité de limiter la création de compte à un domaine ou plusieurs domaines d’adresse de messagerie
- La gestion des organisations qui permet la partage de Mot de passe entre plusieurs utilisateurs
- La gestion des organisations permet également la réinitialisation du mot de passe maitre d’un compte
- …
Vaultwarden est compatible avec les extensions et client Bitwarden.
Il est aussi possible d’autohéberger Bitwarden
Prérequis
Pour héberger Vaultwarden en conteneur, vous aurez besoin
- d’un serveur Linux avec Docker et Docker Compose d’installé.
- pour l’accès Web, vous aurez besoin d’un reverse proxy (Nginx ou Apache) puis d’une URL avec un certificat SSL pour la liaison HTTPS.
- d’un serveur SMTP pour l’envoie des e-mails.
Déploiement de Vaultwarden
Sur mon serveur Linux où Docker est installé, je vais mettre les fichiers du conteneur dans le répertoire /containers/vault
.
Afin de vous facilitez le déploiement de Vaultwarden, j’ai mis à disposition les fichiers ici : https://git.rdr-it.com/docker/Vaultwarden
Commencer par clone de dépôt :
sudo git clone https://git.rdr-it.com/docker/Vaultwarden.git .
Editer le fichier .env pour configurer Vaultwarden :
sudo nano .env
- ADMIN_TOKEN : mot de passe pour accéder à l’administration
- SIGNUPS_ALLOWED : autoriser ou non l’inscription
- SMTP_HOST : adresse du serveur SMTP
- SMTP_FROM : adresse de l’expéditeur
- SMTP_FROM_NAME : nom de l’expéditeur
- SMTP_PORT : port du serveur SMTP
- SMTP_SSL : utilisation du SSL pour la communication avec le serveur SMTP
- SMTP_USERNAME : compte pour le serveur SMTP, si nécessaire décommenter dans le fichier docker-compose.yml la variable
- SMTP_PASSWORD : mot de passe pour le serveur SMTP, si nécessaire décommenter dans le fichier docker-compose.yml la variable
- DOMAIN : url d’accès à Vaultwarden
- EMERGENCY_ACCESS_ALLOWED : autorise la récupération d’urgence
- SIGNUPS_VERIFY : force la vérification de l’adresse email de l’utilisateur
- SIGNUPS_DOMAINS_WHITELIST : domaine de messagerie autorisé à créer des comptes
Maintenant que la configuration est effectuée, télécharger l’image :
sudo docker compose pull
Démarrer le conteneur :
sudo docker compose up -d
Pour tester que Vaultwarden fonctionne, depuis un navigateur aller à l’adresse suivante : http://ip-server:8080, on arrive sur la page de connexion :
Pour le moment, ça ne sert à rien d’aller plus loin, car Vaultwarden nécessite une connexion HTTPS pour maintenir le chiffrement de bout en bout.
Dans dépôt, vous trouverez deux exemples de configuration pour Nginx :
- nginx-vhost-ssl : près configurer si vous avez un certificat
- nginx-vhost-le : près configurer en HTTP pour ensuite générer un certificat avec let’s Encrypt
Si vous avez des problèmes avec cette partie, utiliser les commentaires en bas du tuto.
Créer un compte sur Vaultwarden
Cliquer sur Créez un compte 1.
Entrer vos adresse e-mail 1 puis votre nom 2, indiquer la clef maitre 3 qui permet de déverrouiller le coffre et si nécessaire un mémo 4 pour retrouver la clef et cliquer sur Créez un compte 5.
Si vous avez configurer la validation obligatoire par e-mail, il faut en premier vérifier l’adresse e-mail.
Une fois le compte créé, on est redirigé vers la page de connexion et l’adresse est rempli, cliquer sur le bouton Continuer 1.
Entrer le mot de passe 1 (clef maitre) et cliquer sur Se connecter avec le mot de passe principal 2.
Une fois connecté, on arrive sur le coffre qui est pour le moment vide.
Dans ce tutoriel, je ne vais pas traiter de l’utilisation courante de Vaultwarden, je vous laisse faire par vous même, c’est assez simple.
Gestion des organisations dans Vaultwarden
Dans cette partie, on va voir à quoi sert une organisation et comment en créer une.
Les organisations vont permettre plusieurs choses :
- Gestion des utilisateurs et configuration.
- Partage de mot de passe.
Créer une organisation
Pour créer une organisation, cliquer sur Nouvelle organisation 1.
Nommer l’organisation 1, entrer une adresse de messagerie 2 puis cliquer sur Soumettre 3.
A la création de l’organisation, on est redirigé dessus.
Paramétrage de l’organisation
Cliquer sur l’onglet Paramètres 1.
Cliquer sur Politiques de sécurités 1.
Vous trouverez ici différentes options de configuration pour l’organisation, un option intéressante en entreprise est l’Administration de récupération du compte, qui va permettre la récupération en cas d’oublie de Mot de passe principal, il est important que les utilisateurs n’aient pas créés leur compte avant l’activation de l’option.
Les collections
Les collections sont des conteneurs (dossiers) sur lesquels on va pouvoir attribuer des autorisations.
Depuis le coffre, cliquer sur Nouveau 1 puis Collection 2.
Nommer la collection 1 puis cliquer sur Enregistrer 2.
Il est possible de mettre une collection dans une autre (sous collection) et d’attribuer des accès à la création.
La collection est créée.
Inviter des utilisateurs depuis une collection
Maintenant, on va voir comment inviter des utilisateurs dans une collection.
Il est possible d’invité un utilisateur qui n’a pas de compte même si l’inscription est fermé.
Aller sur l’onglet Membres 1 et cliquer sur Inviter un membre 2.
Entrer l’adresse email 1 puis aller sur Collections 2.
Configurer des permissions sur les collections 1 et cliquer sur Enregistrer 2.
Les autorisations ne sont pas héritables.
L’utilisateur est invité.
L’utilisation reçoit un email pour rejoindre l’organisation.
Une fois que l’utilisateur à rejoint l’organisation, il faut confirmer l’accès; cliquer sur les points 1 puis Confirmer 2.
Confirmer ou non l’utilisation de pass-phrase, l’utilisateur a maintenant accès à l’organisation.
Administration de Vaultwarden
Pour finir ce tutoriel, je vais vous expliquer comment accéder à l’administration.
Aller à l’url suivante : https://vault.domain.tld/admin, entrer le token 1 configurer dans le fichier .env et cliquer sur Enter 2.
Une fois connecté, vous aurez accès la configuration gestion des utilisateurs et organisations.
Ce premier tutoriel sur Vaultwarden s’arrête ici, il y aurait encore beaucoup de chose à écrire sur les possibilités de cet outils, je vous laisse fouiller 😉
Par défaut Vaultwarden utilise une base SQLite, il est possible de passer sur MariaDB si vous le souhaitez : https://github.com/dani-garcia/vaultwarden/wiki/Using-the-MariaDB-(MySQL)-Backend
Bonjour, L’article est excellent mais pourquoi le /Data est en RW sur le fichier yaml?