Comment installer Bitwarden pour autohéberger son gestionnaire de mot de passe
Vous recherchez une autre solution pour gérer vos mots de passe ? Découvrez Bitwarden et installer vous-même votre propre gestionnaire de mots passe. Bitwarden peut être installé sur un NAS, un VPS et même sur un RASPBERRY PI. Dans ce tutoriel je vais utiliser un serveur OVH avec le panel Plesk. Nous utiliserons un container Docker pour déployer notre serveur en quelques minutes. L'image utiliser sera celle de VaultWarden (anciennement bitwarden/rs) car elle est plus légère et fonctionne sur de nombreux systèmes.
Sommaire
Qu'est-ce que BITWARDEN ?
Bitwarden est un gestionnaire de mot de passe gratuit qui vous permet de stocker vos mots de passe, vos identifiants, mais aussi vos cartes bancaires et notes de façon sécurisées. L'outil est gratuit et il est Open Source. Son code est donc public et peut être audité par tout le monde. À ce jour aucun incident de sécurité n’est connu.
Il s'agit d'un concurrent direct à Lastpass qui ne bénéficie plus d'une belle image sur le marché après ses différents piratages.
Un client Desktop est disponible ainsi qu'une application mobile pour iPhone et Android, les fonctionnalités sont identiques à ce que propose LastPass.
Bitwarden est également disponible gratuitement simplement en créant un compte sur la plateforme. Mais vous pouvez tout à fait créer votre propre serveur pour que les données soient hébergées chez vous ou sur un serveur dont vous avez la maîtrise.
Vous pouvez donc :
- Créer un compte sur Bitwarden pour gérer vos mots de passe
- Héberger vous-même un serveur pour gérer vos mots de passe
Dans le premier cas vous ne payez rien, mais les données sont hébergés sur des datacenter de la plateforme. Évidemment vos données sont chiffrées et Bitwarden n'y a pas accès.
La solution autohébergée permet de diminuer les risques de piratages, mais vous devez absolument gérer une sauvegarde de vos données. L'avantage ici c'est que les données sont hébergées par vous.
Découvrons maintenant comment installer et configurer un serveur BITWARDEN.
Les prérequis pour installer un serveur BITWARDEN
Avant de vous lancer dans l'installation, voici les prérequis :
- Avoir un nom de domaine / sous-domaine , par exemple bitwarden.monnomdedomaine.com
- Avoir un certificat HTTPS pour ce nom de domaine pour sécuriser les flux (Let's Encrypt fera le job)
- Avoir installé Docker et Docker Compose sur le serveur / NAS
- Autoriser les flux 80/443 vers votre serveur / NAS hébergeant Bitwarden
Dans mon cas j'utilise un serveur VPS chez OVH (Ubuntu 20.04) avec le panel d'admin PLESK (vous pouvez même installer Plesk gratuitement). C'est très pratique pour gérer les instances docker, les noms de domaine et les certificats. L'outil propose tout le package nécessaire.
Pour l'installation sur NAS, vous devrez installer des modules pour que votre NAS puisse utiliser Docker et Let's Encrypt.
Globalement si vous avez quelques connaissances en Docker et en hébergement Web ça devrait être très simple.
Installation de Bitwarden (Vaultwarden) avec PLESK
La première étape est de télécharger l'image docker de Vaultwarden , il s'agit d'un dérivé de Bitwarden qui a été codé en RUST , l'application est saine et permet de fonctionner sur de nombreux systèmes. Elle utilise aussi une petite base en Sqlite et beaucoup plus légère que l'image Bitwarden.
Téléchargement de l'image Docker
Sur mon panel Plesk j'ai installé l'extension Docker , puis je vais télécharger l'image de Bitwarden (VaultWarden/server) , vous trouverez toutes les informations de l'image docker ici : https://hub.docker.com/r/vaultwarden/server
Vous pouvez aussi saisir la commande suivant depuis une connexion SSH avec Putty :
docker pull vaultwarden/server
Télécharger la dernière image (latest) en cliquant sur Executer , puis modifier quelques paramètres
Pensez à configurer un mappage du volume pour que les données soient persistantes, le dossier à mapper est le /data , le dossier cible est libre.
Il faut décocher le mappage de port automatique, nous le configurons plus tard. Valider en cliquant sur le bouton OK , votre container devrait démarrer. Arrêter le container puis modifier le mappage des ports en cliquant sur Paramètres.
Paramétrage du mappage des ports
Puis nous devons configurer le mappage des ports.
Il faut définir un port libre par exemple 40312 et 40080 , l'accès à l'interface de Bitwarden se fait sur le port 80 externe.
Nous allons ensuite ajouter une variable d'environnement pour déclarer notre domaine.
Modifier les variables d'environnement
Valider la configuration puis démarrer le container.
Configurer le proxy Docker
Pour que les requêtes HTTPS vers le nom de domaine réservé pointent vers votre container docker, il faut configurer le proxy docker dans le paramétrage de votre domaine. Sur Plesk c'est super simple, il suffit de cliquer sur le bouton Docker Proxy.
Puis on configure le proxy pour le port 80 en cliquant sur ajouter une règle.
Valider, logiquement vous devez accéder à votre serveur par l'URL suivant https://bitwarden.votresite.com
Bonus : Protection Cloudflare avec le reverse proxy
Si votre domaine est protégé par cloudflare, vous pouvez créer un enregistrement DNS vers votre serveur BITWARDEN. Activer la fonction proxy (qui est gratuite) pour profiter d'une protection simple avec le reverse proxy de cloudflare.
Comment utiliser Bitwarden ?
Création d'un compte
Pour utiliser Bitwarden, vous devez dans un premier temps créer un compte sur la page de votre serveur (exemple : https://bitwarden.votresite.com)
Cliquez sur créer un compte puis saisir vos infos.
Le mot de passe maître doit être complexe (symboles, chiffres, majuscule et minuscule) , attention il ne peut pas être récupéré !.
Paramétrage du client
Il existe différents types de clients :
- l'extension pour navigateur
- l'application mobile pour Iphone et Android
- le client web (l'URL de votre serveur)
- le client desktop pour ordinateur
J'utilise l'extension + l'application mobile.
Une fois téléchargé, il faut modifier un paramétrage en cliquant sur la roue crantée.
Saisir ensuite l'URL de votre serveur.
Valider en cliquant sur le bouton Enregistrer. Votre client est prêt, vous pouvez donc créer vos mots de passe.
Importer des mots de passe
Si vous utilisiez un autre système il est possible d'importer les données , il d'abord les exporter (si vous utilisez Lastpass, voici un guide pour exporter les mots de passe Lastpass)
Depuis le dashboard de votre serveur, cliquer sur le menu Outils puis importer les données.
Quelques règles de sécurité
Bloquer les inscriptions
Une fois votre serveur en place, il est fortement recommandé de bloquer les inscriptions en ajoutant la variable d'environnement à votre container.
Il faut ajouter la variable SIGNUPS_ALLOWED False
Activer une double authentification
Il est possible de mettre en place une double authentification avec un Google Authenticator par exemple. Une fois connecté vous pouvez l'activer en cliquant dans les Paramètres du compte puis Identification Deux Étapes
Sauvegarder vos données
L'inconvénient de la solution autohébergé est que vous devez absolument sauvegarder vos données. Vous devez sauvegarder le dossier mappé lors de la configuration du container. Il contient tous les bases de données et fichiers nécessaires au bon fonctionnement.
Vous pouvez aussi télécharger l'image docker de votre serveur.
Lire le Wiki
Si vous avez besoin d'informations, je vous invite à lire le Wiki de Vaultwarden , la documentation est complète et vous permettra d'ajouter de nombreuses fonctionnalités.
Pour aller plus loin
À la fin de ce guide, vous devez normalement avoir réussi à installer votre serveur Bitwarden. Nous avons utilisé une version plus légère (Vaultwarden) et qui fonctionne très bien. Cependant pour les puristes vous pouvez installer la solution officielle, mais qui est beaucoup plus lourde en ressources.
La documentation est complète et elle est disponible ici : https://bitwarden.com/help/install-on-premise-linux/ .
Pour un usage personnel ou pour une petite entreprise, Vaultwarden est amplement suffisant. Le tutoriel s'appuie sur Plesk, mais c'est tout à fait possible de monter le serveur sur une petite machine chez soi à condition de bien connaître Docker.
Bitwarden est aussi disponible gratuitement sans avoir à installer et maintenir le serveur. Le compte premium qui vous offre toutes les fonctionnalités ne coûte que 10$ par an. Vous pouvez donc largement remplacer une solution comme Lastpass par Bitwarden.
Si vous avez des questions, n'hésitez pas à les poster en commentaires.
Commentaires
Le 11 janvier 2023 à 10 h 48 min, Cedric a dit :
Bonjour,
Le sujet avait l'air intéressant mais c'est plus de la configuration PLESK que l'installation docker/vaultwarden sans ce système.
Avez-vous la possibilité de détailler pour ceux qui n'utilisent pas Plesk ?
Je vous remercie
Le 12 janvier 2023 à 17 h 41 min, Tutos-Info a dit :
Vous souhaitez héberger la solution chez vous ? ou sur un serveur hébergé chez un fournisseur comme OVH ?
Le 12 janvier 2023 à 13 h 07 min, Tutos-Info a dit :
J'ai commencé à travailler sur le sujet , je rajouterais les étapes dans le tuto, dans l'esprit voici ce qui peut se faire :
On utilise NGINX MANAGER pour créer un reverse proxy (conteneur docker)
On utilise VAULTWARDEN pour héberger BITWARDEN (conteneur docker)
Voici le contenu d'un fichier docker compose :
version: '3'
services:
reverseproxy:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80'
- '81:81'
- '443:443'
volumes:
- ./data-reverseproxy:/data
- ./letsencrypt:/etc/letsencrypt
vaultwarden:
image: 'vaultwarden/server:latest'
restart: unless-stopped
ports:
- '8888:80' # Public HTTPS Port
volumes:
- ./data-vw:/data
Je détaillerais dans le tutoriel l'installation mais de mon coté ça fonctionne sans PLESK.
Le 11 janvier 2023 à 10 h 51 min, Tutos-Info a dit :
bonjour, oui c'est prévu , si vous maîtriser docker vous pouvez l'installer sur votre machine et télécharger l'image de Vaultwarden.
L'image seule n'est pas suffisante puisque vous devez avoir
Un serveur web
Cordialement,
Laisser un commentaire