Auto-hébergement : installer Vaultwarden (Bitwarden) sur son NAS Synology
Sommaire
I. Présentation
Dans ce tutoriel, nous allons apprendre à déployer un serveur Vaultwarden sur un NAS Synology afin d'héberger notre propre solution de gestion de mots de passe ! Vous connaissez déjà surement Vaultwarden, car il s'agit d'une version non officielle de Bitwarden destinée à l'auto-hébergement ! Avant, elle s'appelait "bitwarden_rs".
Le gestionnaire de mots de passe Bitwarden peut être utilisé en mode SaaS, c'est-à-dire hébergé sur les serveurs de l'éditeur dans le Cloud, mais il peut aussi être auto-hébergé sur son propre serveur (voir la documentation officielle). Par contre, il est considéré comme étant assez lourd, ce qui n'est pas très pratique si l'on veut utiliser un NAS ou pourquoi pas un Raspberry Pi.
La bonne nouvelle, c'est qu'il existe Vaultwarden, une solution libre codée en Rust, beaucoup plus légère et que l'on peut héberger soi-même. Avant, elle s'appelait "Bitwarden_RS" mais il y a eu un changement de nom pour une raison compréhensible : "Ce projet était connu sous le nom de Bitwarden_RS et a été renommé pour se séparer du serveur officiel de Bitwarden dans l'espoir d'éviter toute confusion et tout problème de marque." - Vaultwarden est totalement adapté pour un NAS, un serveur en ligne (par exemple : un VPS), un Raspberry Pi ou un serveur en local.
Vaultwarden est une solution fiable et sécurisée qui reprend les fonctionnalités clés de Bitwarden, à savoir :
- Solution de type coffre-fort numérique pour stocker vos identifiants et mots de passe, vos informations de carte de paiement, des notes, etc...
- Gestion de plusieurs utilisateurs sur un même serveur (via un système d'inscription) et gestion d'organisations pour partager les identifiants entre utilisateurs
- Accès à votre coffre-fort sur tous les appareils associés à votre compte.
- Sécurité des données grâce au chiffrement bout en bout (seul l'utilisateur peut accéder à ses données)
- Générateur de mots de passe et de passphrases pour vous faciliter la création de mots de passe robustes
- Authentification à deux facteurs pour renforcer l'accès aux comptes
- Partage de fichiers ou de texte à l'aide de la fonctionnalité Send
Plutôt sympa pour garder la maitrise de son coffre-fort de mots de passe, tout en ayant accès à une solution moderne accessible via un navigateur, des extensions pour navigateur et une application mobile. D'ailleurs, Vaultwarden est compatible avec les applications et extensions Bitwarden.
Pour installer Vaultwarden sur un NAS Synology, nous allons utiliser un container Docker via l'application Container Manager de DSM. Ce sera stable et facile à déployer, mais il conviendra de sauvegarder les données du container compte tenu de leur criticité. Il est à noter que l'application Docker s'appelle Container Manager depuis DSM 7.2.
II. DSM : installer Container Manager (Docker)
Connectez-vous à l'interface DSM de votre NAS afin d'installer l'application "Container Manager" ou "Docker", si ce n'est pas encore fait. Celle-ci s'installe en quelques clics à partir du "Centre de paquets".
III. Créer un container Docker "Vaultwarden"
Le NAS étant équipé de Container Manager, vous allez pouvoir créer un nouveau container Vaultwarden (en lieu et place de Bitwarden_rs).
Ouvrez Container Manager, cliquez à gauche sur "Registre" (1), recherchez "vaultwarden" en haut à droite (2), puis sélectionnez "vaultwarden/server" dans la liste (3) et cliquez sur "Télécharger" (4) pour que l'image de ce container soit téléchargée sur le NAS.
Au moment où vous cliquez sur "Télécharger", la fenêtre "Choisir une identification" apparaît. Choisissez la dernière version du container via "latest" et validez.
Quand le téléchargement est effectué, cliquez à gauche sur "Conteneur" dans l'interface de Container Manager. Créez un nouveau conteneur en cliquant sur "Créer".
Commencez par choisir l'image "vaultwarden/server:latest" que vous venez de télécharger. Même si ce n'est pas obligatoire, vous pouvez activer la limitation des ressources comme sur l'image ci-dessous. Ce conteneur n'est pas très gourmand. Au besoin, c'est ajustable par la suite. Activez aussi le redémarrage automatique pour que le NAS essaie de le relancer automatiquement en cas de crash.
Poursuivez.
L'étape "Paramètres des ports" s'affiche. Les ports "3012/TCP" et "80/TCP" correspondent aux deux ports utilisés par le conteneur. Celui qui correspond à l'accès à l'interface Web, c'est bien sûr le port 80 correspondant au HTTP. L'autre port correspond au Websocket. Tout à gauche, c'est le port à attribuer au niveau du NAS.
Dans l'exemple ci-dessous, l'accès au NAS sur le port 3012/TCP va renvoyer vers le port 3012/TCP du conteneur. Tandis que le port 3013/TCP va renvoyer vers le port 80/TCP du conteneur. Vous devez utiliser des ports qui ne sont pas encore utilisés sur votre NAS (il y a des chances pour que le port 80 soit utilisé par un autre service). Vous pouvez personnaliser ces valeurs.
Vous devez prévoir un espace de stockage sur votre NAS afin que le container Vaultwarden puisse écrire ses données. Dans le répertoire "docker" du NAS, créez un répertoire nommé "vaultwarden" et vous allez ensuite l'associer au container.
Dans la configuration du container, cliquez sur "ajouter un dossier", sélectionnez le répertoire "/docker/vaultwarden" et montez-le en "/data" afin que le container stocke ses données à cet endroit. Il est important de sauvegarder le répertoire "/docker/vaultwarden" pour protéger votre coffre-fort (vous pouvez utiliser Hyper Backup, par exemple).
Ne touchez pas à la section "Environnement", nous allons revenir dessus par la suite.
Il n'est pas nécessaire de configurer de fonctionnalités ou d'adapter la configuration réseau. Cliquez sur "Suivant".
Cliquez sur "Effectué" pour créer le conteneur Vaultwarden !
La section "Conteneur" contient un petit nouveau nommé "vaultwarden" et qui est actif.
Afin de pouvoir accéder à l'interface Web de Vaultwarden, vous devez autoriser le port 3013/TCP (ou autre, selon votre configuration) dans le pare-feu de DSM. Enfin, ceci est vrai uniquement si vous avez activé et configuré le pare-feu de DSM, ce qui est recommandé. Pour rappel, on accède au pare-feu de cette façon : Panneau de configuration > Sécurité > Pare-feu.
Une fois la règle de pare-feu créée, il est possible d'accéder à Vaultwarden via un navigateur en précisant l'adresse IP du NAS et le port 3013.
IV. Configurer le reverse proxy
Accéder à l'interface de Vaultwarden, c'est bien, mais ce n'est pas très propre : l'accès s'effectue en HTTP, donc les communications ne sont pas chiffrées. C'est gênant pour accéder à un gestionnaire de mots de passe... En plus, certaines fonctionnalités de Vaultwarden ne pourront pas fonctionner.
Notre objectif va être le suivant : utiliser un nom de domaine et un certificat SSL valide pour accéder à Vaultwarden en HTTPS. Pour le nom de domaine, il est envisageable d'utiliser votre propre nom de domaine ou d'utiliser le système "synology.me", totalement gratuit. Par exemple si vous accédez à votre NAS via l'adresse "https://mon-nas.synology.me", vous pouvez envisager d'accéder à Vaultwarden via l'adresse "https://vaultwarden.mon-nas.synology.me" (ou utiliser un autre sous-domaine).
Dans un précédent tutoriel, j'ai déjà abordé l'utilisation du système DDNS "synology.me" et l'obtention d'un certificat SSL gratuitement :
Pour publier l'application Bitwarden en HTTPS sur le port 443 (ou un autre port exotique), sans pour autant modifier la configuration effectuée jusqu'ici, vous devez utiliser la fonction de reverse proxy de DSM.
Ouvrez le "Panneau de configuration", cliquez sur "Portail de connexion" à gauche (2), puis sur l'onglet "Avancé" (2) et sur "Proxy inversé" (3). Enfin, cliquez sur "Créer".
Nommez cette configuration, par exemple "vaultwarden" et définissez les paramètres suivants :
- Protocole : HTTPS, pour un accès sécurisé
- Nom d'hôte : Quel est le nom de domaine à utiliser ? Par exemple, vaultwarden.mon-nas.synology.me
- Port : 443, soit le port HTTPS par défaut, mais vous pouvez utiliser autre chose
- Activer HSTS pour plus de sécurité
- Destination :
- Protocole : HTTP, car le conteneur écoute en HTTP
- Nom d'hôte : On redirige le flux en local, car le conteneur tourne sur le NAS
- Port : 3013, ce qui est le port du NAS qui renvoie vers le conteneur Vaultwarden
Cliquez sur "Sauvegarder" !
V. Accès à Vaultwarden (Bitwarden)
Grâce à cette configuration, l'accès à Vaultwarden peut être effectué avec une URL beaucoup plus propre et avec un certificat SSL valide !
Sur la page de connexion de Vaultwarden, vous ne pouvez pas vous authentifier : vous n'avez pas encore créé de compte sur votre instance. Pour vous inscrire sur votre propre serveur, cliquez sur "Créez un compte". Renseignez un e-mail, un nom et un mot de passe principal qui doit être robuste, car il s'agit du mot de passe qui sert à déverrouiller votre coffre-fort ! Validez quand c'est fait !
Voilà, vous êtes connecté à votre coffre-fort ! Vous pouvez créer vos premiers identifiants dans votre coffre ! Toutes les informations resteront en sécurité sur votre NAS Synology.
Remarque : si vous avez plusieurs utilisateurs à créer, chaque personne doit s'inscrire via le lien sur la page de connexion. Ensuite, pour partager des identifiants entre plusieurs utilisateurs, une nouvelle organisation doit être créée.
Si vous utilisez déjà un autre gestionnaire de mots de passe, peut-être même Bitwarden en mode SaaS, et bien sachez que vous pouvez importer vos données pour faciliter la migration. Tout d'abord, il conviendra d'exporter vos données depuis votre gestionnaire de mots de passe actuel pour effectuer un import dans Vaultwarden via la section "Outils" puis "Importer des données".
Lorsque vous allez installer l'extension Bitwarden dans votre navigateur préféré (par exemple celle-ci pour Edge), il conviendra de choisir "Auto-hébergé" comme région pour avoir la possibilité de spécifier l'adresse de votre serveur Vaultwarden.
Au sein du champ "URL du serveur", il conviendra de spécifier l'URL complète (nom de domaine + port) vers l'instance Vaultwarden hébergée sur le NAS.
Ensuite, il suffira de se connecter avec son adresse e-mail et son mot de passe pour accéder à son coffre-fort ! 🙂
VI. Sécuriser et configurer son container Vaultwarden
Pour finir, nous allons revenir sur la configuration de notre container pour ajouter deux variables d'environnement :
- SIGNUPS_ALLOWED : pour empêcher la création de nouveaux comptes, sinon n'importe quelle personne qui accède à l'interface de votre Vaultwarden pourrait s'inscrire dessus et l'utiliser. Autrement dit, on désactive les inscriptions.
- DOMAIN : pour déclarer le nom de domaine, ce qui permet à Vaultwarden d'avoir connaissance de son propre nom de domaine
Pour configurer ces deux options, retournez dans "Container Manager", arrêtez le conteneur "vaultwarden" et accédez à ses paramètres. Créez deux variables comme sur l'image ci-dessous :
Validez et relancez le conteneur. Désormais, si un utilisateur essaie de s'inscrire, il obtiendra une erreur : "Registration not allowed or user already exists." - En positionnant la variable d'environnement sur "true", vous pouvez autoriser les inscriptions à tout moment.
Par ailleurs, une fois connecté à votre coffre Vaultwarden, pensez à configurer l'authentification multifacteurs pour protéger votre compte. Pour cela, cliquez sur votre avatar en haut à droite, puis sur : Paramètres du compte > Sécurité > Authentification à deux facteurs. Pour utiliser une clé de sécurité physique Yubikey, il y a une configuration supplémentaire à prévoir (voir ici).
VII. Conclusion
En suivant ce tutoriel, vous êtes en mesure de déployer Vaultwarden sur votre NAS dans le but d'héberger votre propre gestionnaire de mots de passe multi-utilisateurs : très pratique pour une petite équipe, des salariés en entreprise ou encore pour les membres de sa famille !
Pour aller plus loin, vous êtes invité à consulter la documentation officielle sur le GitHub (en lien avec la documentation Bitwarden) ou à publier un commentaire sur cet article pour poser vos questions (sans oublier le serveur Discord).
Bonjour Florian,
Bonjour la Communauté,
Merci pour ce super tuto, complet et bien rédigé.
Cependant, en bon admin sys que je suis, je voudrais activer la biométrie sur l’addon de Chromium.
J’ai donc coché l’option sur l’addon.
Et là, il me répond que « l’intégration avec le navigateur n’est pas activée. »‘ et me demande de l’activer dans l’application de Bureau.
Dans tous les tutos que j’ai consulté, il est fait référence à cette application de Bureau.
Or, dans notre cas, nous sommes sur une appli Web auto-hébergée.
J’ai donc cherché dans la rubrique Sécurité sur la console d’administration de Vaultwarden, et je ne trouve pas où l’activer.
Donc, soit je ne suis pas fûté, soit cette fonctionnalité n’est pas disponible dans ce mode auto-hébergé.
Toi, ou quelqu’un de ta communauté pourrait me venir en aide ?
Merci par avance.
Nikovolk
Merci de supprimer mon commentaire (qui n’a pas encore été publié).
J’ai compris mon erreur de débutant !
Et donc je répond à ma propre question… Je ne suis pas fûté.
Enfin… Un peu quand même 😉