Avoir des mots de passe sécurisé, c'est cool. Avoir un logiciel qui s'occupe de s'en souvenir, c'est mieux. Et si ce logiciel est dans le cloud, c'est incroyable, mais faut que tout cela soit bien sécurisé.
Bitwarden
La solution la plus populaire de gestionnaire de mot de passe dans le cloud est Bitwarden.
Bitwarden est un service proposé par la société du même nom. Il existe une offre gratuite qui est largement suffisante, mais malheureusement Bitwarden n'est pas open-source. Enfin, les clients Bitwarden sont open-sources, mais pas le serveur. Nous sommes donc incapable de vérifier leur fiabilité.
Sinon, Bitwarden est une solution clef en main qui marche partout. Elle permet de garder les identifiants et mots de passe de n'importe quel site. Comme toutes les autres solutions modernes, Bitwarden peut aussi remplir automatiquement les champs pour se connecter. Mais elle ne s'arrête pas là ! Elle prend aussi charge le TOTP (aussi appelé authentification à deux facteurs, 2FA, A2F, etc.) et permet de créer des champs personnalisés pour stocker des informations sensibles comme les codes de sauvegarde d'un compte, le token pour se connecter à une API, et j'en passe. Et en plus, Bitwarden reste très simple d'utilisation !
Par contre, comme évoqué lors d'un précédent paragraphe, les serveurs de Bitwarden ne sont pas open-source et il faut payer une licence si on souhaite l'héberger autre part. Donc, nous avons besoin de payer un serveur ainsi qu'une licence si on souhaite réellement avoir le contrôle sur nos données sans oublier que le serveur n'est pas open-source...
Enfin, c'est la théorie, car faire du reverse-engineering sur des applications open-source est assez simple 🙂
Vaultwarden
Vaultwarden, anciennement Bitwarden_RS, est un serveur open-source non officiel compatible avec les clients Bitwarden. Autrement dit, c'est un serveur Bitwarden gratuit et open-source.
Dans ce post je vais vous expliquer comment installer Vaultwarden d'une manière sécurisée dans Docker !
Mais pourquoi Docker ? Docker est une solution de conteneurisation permettant d'isoler les applications. Ceci est très utile si on souhaite éviter d'avoir des conflits entre nos applications. De plus, cela permet d'avoir une adresse IP locale par conteneur, ce qui facilite grandement la création d'un reverse-proxy. Et cerise sur le gâteau, avoir une application isolée dans Docker, c'est évité de l'exposer à l'extérieur, et donc avoir un système plus sécurisé !
Installation
Pour installer Vaultwarden, nous allons d'abord créer le fichier docker-compose.yml
:
version: '3'
services:
vaultwarden:
image: vaultwarden/server:latest
restart: unless-stopped
volumes:
- "./data:/data/"
env_file:
- .env
Ce fichier est l'un des avantages de Vaultwarden : c'est très simple !
Créons maintenant le fichier .env
:
DOMAIN="https://subdomain.foo.bar"
ADMIN_TOKEN=""
SIGNUPS_ALLOWED=false
Ce fichier indique à Vaultwarden le domaine qu'il va utiliser ainsi que le token de l'admin. N'oubliez pas de remplacer DOMAIN
par le domaine que vous allez utiliser ainsi que de mettre un mot de passe admin sécurisé dans TOKEN
(nous vous recommandons d'utiliser la commande openssl rand -base64 48
pour générer un mot passe sécurisé).
Configuration
Nous pouvons maintenant lancer Vaultwarden et le configurer.
Rendez-vous à l'adresse que vous avez indiqué dans le fichier .env
et créez-vous votre compte.
Maintenant vous pouvez vous connecter à Vaultwarden depuis n'importe quelle client Bitwarden ! Pour ce faire, vous devez renseigner votre serveur dans un paramètre de connection. Sur ordinateur c'est ici (voir l'image).
Et voilà, vous avez votre propre serveur Bitwarden de configurer et vous allez pouvoir les utiliser partout sans s'embêter à synchroniser un fichier.
Si vous avez des questions, des remarques ou quoi que ce soit à me faire parvenir, n'hésitez pas à me contacter !