PROJET AUTOBLOG


IT-Connect

Site original : IT-Connect

⇐ retour index

Auto-hébergement : installer Vaultwarden (Bitwarden) sur son NAS Synology

dimanche 13 août 2023 à 16:45

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 :

Self-hosted Vaultwarden (Bitwarden) - Aperçu interface

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".

Synology - Installer Container Manager Docker

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.

Synology - Container Manager - Vaultwarden

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.

Synology - Container Manager - Vaultwarden Latest

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.

Synology - Container Manager - Vaultwarden - Paramètres généraux

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.

Synology - Container Manager - Vaultwarden - Ports

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.

Synology - Container Manager - Vaultwarden - Dossier des données

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.

Synology - Container Manager - Vaultwarden - Stockage

Il n'est pas nécessaire de configurer de fonctionnalités ou d'adapter la configuration réseau. Cliquez sur "Suivant".

Synology - Container Manager - Vaultwarden - Réseau

Cliquez sur "Effectué" pour créer le conteneur Vaultwarden !

Synology - Container Manager - Vaultwarden - Créer le container

La section "Conteneur" contient un petit nouveau nommé "vaultwarden" et qui est actif.

Synology - Container Manager - Vaultwarden - Container ON

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.

Synology - Container Manager - Vaultwarden - Firewall

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.

Synology - Vaultwarden - Accès local

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".

Synology - Reverse proxy - Vaultwarden Bitwarden

Nommez cette configuration, par exemple "vaultwarden" et définissez les paramètres suivants :

Synology - Vaultwarden - Reverse proxy HTTPS

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 !

Synology - Vaultwarden - Certificat SSL

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 !

Self-hosted Vaultwarden (Bitwarden)

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.

Self-hosted Vaultwarden (Bitwarden) - Aperçu interface

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".

Bitwarden Self-Hosted - 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.

Extension Bitwarden avec Vaultwarden et Edge - 1

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.

Extension Bitwarden avec Vaultwarden et Edge - 2

Ensuite, il suffira de se connecter avec son adresse e-mail et son mot de passe pour accéder à son coffre-fort ! 🙂

Extension Bitwarden avec Vaultwarden et Edge - 3

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 :

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 :

Container Vaultwarden (Bitwarden) - Les variables environnement

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).

Vaultwarden MFA

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).

The post Auto-hébergement : installer Vaultwarden (Bitwarden) sur son NAS Synology first appeared on IT-Connect.