Aller au contenu

[TUTO] Installer Bitwarden


Balooforever

Messages recommandés

Bonjour à tous,

Après une installation réussi hier soir de Bitwarden, je viens vous proposer un petit tuto pour l'installer.

Tout d'abord, Bitwarden, qu'es ce que c'est ?

Bitwarden est une application Open Source développer en C# et MSSQL (j'y reviendrais) qui permet de gérer ses mots de passe à la manière de 1Password, Lastpast, Keepass.

Des extensions sont disponibles pour tout les navigateurs et iOS/Android.

Vous aller me dire tout ça c'est bien joli mais quel intérêt ? L’intérêt, c'est qu'il est possible de s'auto héberger et donc d'avoir son propre gestionnaire de mot de passe à la maison sans passer par des serveurs bien plus exposé sur internet.

Vous êtes toujours partant ? En premier lieu, quelque pré-requis :
- Disposer d'un NAS sous architecture x86 (Intel) tout simplement car l'installation est réalisé avec Docker
- Disposer de pas mal de RAM, l'application exécute une instance Microsoft SQL Server (très) gourmande en RAM (environ 700Mo, une version Ruby beaucoup plus légère existe mais c'est une adaptation et non une vrai branche)
- Ne pas avoir peur de faire un peu de ligne de commande ?

Vous êtes toujours là ? Allons y vous aller voir c'est très simple.

Merci @InfoYANN pour avoir refait toute le tuto avec les dernières version de Bitwarden !

*****************************************************

Créer un dossier "bitwarden" dans le dossier "docker" dans FileStation.
Créer un sous domaine pour votre instance bitwarden et faites en sorte que le certificat SSL de Let's Encrypt soit fonctionnel (rien à faire pour les certificats wildcard).
Aller sur le site de Bitwarden afin d'obtenir un ID :
https://bitwarden.com/host
Entrer une adresse mail valide et copier :

ID d'installation : xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Clé d'installation : xxxxxxxxxxxxxxx

Maintenant connecter vous en SSH (voir mon tuto si vous ne savez pas faire).
Rendez-vous ici : cd /volumeX/docker/bitwarden

Nous allons maintenant récupérer le script d'installation et le mettre dans le dossier bitwarden fraichement créé :

curl -s -o bitwarden.sh https://raw.githubusercontent.com/bitwarden/core/master/scripts/bitwarden.sh&& sudo chmod u+x bitwarden.sh

 

Puis on lance l'installation :

./bitwarden.sh install

 

Pendant l'installation, nous allons devoir répondre à quelques questions (moins qu'auparavant) :

*Les lignes en rouge  seront les messages du système au fur et à mesure de l'installation !

(!) Enter the domain name for your Bitwarden instance (ex. bitwarden.company.com): sousdomaine.domaine.tld

(!) Do you want to use Let's Encrypt to generate a free SSL certificate? (y/n): n

(!) Enter your installation id (get at https://bitwarden.com/host): xxxxxxxxxxxxxx

(!) Enter your installation key: xxxxxxxxxxxxx

(!) Do you have a SSL certificate to use? (y/n): y

!!!!!!!!!! NOTE !!!!!!!!!!
Make sure 'certificate.crt' and 'private.key' are provided in the
appropriate directory before running 'start' (see docs for info).

(!) Is this a trusted SSL certificate (requires ca.crt, see docs)? (y/n): y

Installation complete

If you need to make additional configuration changes, you can modify
the settings in `./bwdata/config.yml` and then run:
`./bitwarden.sh rebuild` or `./bitwarden.sh update`

Next steps, run:
`./bitwarden.sh start` and then `./bitwarden.sh updatedb`

 

Rendez-vous dans FileStation mais ne fermez pas votre fenêtre SSH.

Nous allons renommer et copier les fichiers du certificat SSL dans le bon dossier :

Renommer le fichier "privkey.pem" avec comme nom "private.key" puis le copier dans /volumeX/docker/bitwarden/bwdata/ssl/votredomaine/ ce qui donnera comme résultat : /volumeX/docker/bitwarden/bwdata/ssl/votredomaine/private.key
Renommer le fichier "cert.pem" avec comme nom "certificate.crt" puis le copier dans /volumeX/docker/bitwarden/bwdata/ssl/votredomaine/ ce qui donnera comme résultat : /volumeX/docker/bitwarden/bwdata/ssl/votredomaine/certificate.crt
Renommer le fichier "chain.pem" avec comme nom "ca.crt" puis le copier dans /volumeX/docker/bitwarden/bwdata/ssl/votredomaine/ ce qui donnera comme résultat : /volumeX/docker/bitwarden/bwdata/ssl/votredomaine/ca.crt

 

Nous allons maintenant créer les dossiers qui seront manquants pour la suite de l'installation :

/volumeX/docker/bitwarden/bwdata/logs

/volumeX/docker/bitwarden/bwdata/logs/admin

/volumeX/docker/bitwarden/bwdata/logs/api

/volumeX/docker/bitwarden/bwdata/logs/icons

/volumeX/docker/bitwarden/bwdata/logs/identity

/volumeX/docker/bitwarden/bwdata/logs/mssql

/volumeX/docker/bitwarden/bwdata/logs/nginx

/volumeX/docker/bitwarden/bwdata/logs/notifications

/volumeX/docker/bitwarden/bwdata/logs/events

 

/volumeX/docker/bitwarden/bwdata/core

/volumeX/docker/bitwarden/bwdata/core/attachments

 

/volumeX/docker/bitwarden/bwdata/mssql

/volumeX/docker/bitwarden/bwdata/mssql/data

/volumeX/docker/bitwarden/bwdata/mssql/backups

 

Nous allons éditer le fichier "global.override.env" qui se trouve dans "/volumex/docker/bitwarden/bwdata/env" afin de configurer le serveur SMTP pour que Bitwarden puisse envoyer les notifications. On va en profiter pour inscrire notre adresse mail pour la partie admin 😉

Qnwl3Pl.png

 

Il faut maintenant finir de configurer manuellement le fichier "config.yml" qui se trouve dans "/volumex/docker/bitwarden/bwdata" :

Par défaut, les ports sont 80 et 443 mais en général, ils sont déjà utilisés sur DSM alors on va en mettre d'autres. Pour ma part, j'ai choisi le port 81 et 444.

jssCl44.png

 

On retourne dans notre fenêtre SSH et on lance ensuite ces commandes une par une  :

./bitwarden.sh update
./bitwarden.sh updatedb
./bitwarden.sh start

Si ces commandes ne fonctionnent pas, faites d'abord :

./bitwarden.sh rebuild


Vous pouvez maintenant accéder à votre instance Bitwarden via votre domaine : le port.

Source : http://www.synology-forum.de/showthread.html?90435-Bitwarden-auf-der-Synology-(Docker)/page5

En complément, dans le dossier env (éditable via vi pour les plus aguerris) vous pouvez paramétrer le SMTP (pour l'envoi des mails) et bloquer les inscriptions supplémentaires sur votre serveur ci nécessaire.

 

Modifié par Balooforever
Lien vers le commentaire
Partager sur d’autres sites

  • 3 semaines après...

Bon, j'ai mit en place ton tuto.

 

Premier soucis ; ta ligne d'installation ne fonctionnait pas chez moi car il ne trouvait pas "-s".

J'ai donc tenté avec cette ligne de commande ci-dessous trouvé sur le site officiel et ça passait.

curl -Ls -o bitwarden.sh https://bit.ly/bw-sh \
  && sudo chmod u+x bitwarden.sh

Ensuite, j'ai continué ton tuto et tout avait l'air d'aller jusqu'au moment du test final ou là, je n'ai pas accès via mon navigateur à Bitwarden via mon ndd "bitwarden.ndd.fr".

J'ai mit les même ports que toi à savoir 81 et 444 (j'aurai d'ailleurs du réfléchir avant car je préfère rester sur du 80-443).

J'ai fait le redirections dans mon routeur et le pare feu du nas et j'ai bien réglé mon reverse proxy dans le nas.

 

Mais rien à faire, j'ai cette foutue erreur 502 Bad Gateway qui s'affiche dans le navigateur.

Modifié par InfoYANN
Lien vers le commentaire
Partager sur d’autres sites

Tout tes containers sont bien démarrés ? Dans journal de Docker tu as tout les détails, normalement il t'indique ce qui ne fonctionne pas.

Pour la ligne de commande, c'est étonnant c'est pourtant celle que j'ai utilisé (sans le > du début, je vais modifier).

Visiblement si tu mets juste le 80-443, il y a un souci de conflit avec Photostation et Webstation,.

Si tu fais https://tonip:444, tu as une 502 également ?

Modifié par Balooforever
Lien vers le commentaire
Partager sur d’autres sites

En faites, c'était bien le signe > qui posait soucis et maintenant, je peux utiliser ta ligne de commande.

J'ai essayé une réinstallation avec les ports 80 et 443 et en effet, il y a conflit nginx.

J'ai donc tenté une réinstallation avec exactement les même paramètres que toi mais là non plus ça ne passe pas.

L'installation se fait bien et dans ma fenêtre putty j'ai bien l'url de connexion avec le port 444 mais elle ne fonctionne pas.

J'ai testé :

bitwarden.ndd.fr:444

bitwarden.ndd.fr:81

Mais j'ai "Ce site est inaccessible. Pourtant mes sous domaines habituels fonctionnent sur le nas (drive, video, calendar, mail etc...).

Je précise aussi que les ports sont ouverts sur mon routeur et le pare feu du nas.

J'ai aussi créé une zone DNS CNAME dans mon compte OVH et dans mon serveur DNS sur le nas pour déclarer le sous domaine.

Mon certificat est aussi à jour avec le sous domaine.

 

Je comprend pas là ou ça pose soucis.

 

Modifié par InfoYANN
Lien vers le commentaire
Partager sur d’autres sites

J'ai bien 7 conteneurs en cours d'utilisation pour Bitwarden par contre, j'ai "bitwarden-nginx" qui est en "redémarrage en cours..." et même en forçant le redémarrage, il redémarre mais revient sur la position "redémarrage en cours...". Je ne sais pas si c'est normal.

Pour l'IP, non ça ne fonctionne pas plus !

 

Pour la version Desktop, je l'ai installé en effet mais elle ne fonctionne pas pour le moment puisqu'elle n'arrive pas à accéder à mon serveur.

Lien vers le commentaire
Partager sur d’autres sites

En effet, le soucis venait bien du container nginx et l'erreur était simple pour celui qui savait ou chercher.

J'ai un de mes fichiers de certificat qui n'avait pas ou avait été mal édité au niveau du nom. Et nginx ne trouvait donc pas ce fichier et donc refusait carrément la connexion sur le script web.

Après une vérification et une édition rapide dans File Station, le soucis a été résolu.

Merci à toi en tout cas car ne connaissant pas bien Docker, je ne savais pas ou chercher pour mon soucis. J'ai ensuite trouvé le journal de ce container et j'ai pu trouver la solution.

 

Maintenant je coince encore sur quelque chose. C'est sur l'envoi des mails.

J'ai testé "vi" rapidement mais il est plus rapide d'éditer le fichier avec wordpad par exemple.

Malgré que j'ai bien configuré mon serveur smtp dans le fichier et que ça me confirme l'envoi du mail, je ne le reçois pas du tout. Je suis pourtant certain de mon serveur smtp car c'est mon propre serveur mail et il tourne H24 sans soucis.

Il y a un truc qui m'échappe...

 

****************************************

 

Par contre, ATTENTION !

Ce fameux fichier contenant les informations contient en "clair" le mot de passe du compte smtp... Pas cool je trouve ça.

J'ai donc du créer un compte spécial juste pour cette fonction et cette application afin d'éviter d'exposer mon vrai compte mail et mes données du nas.

Modifié par InfoYANN
Lien vers le commentaire
Partager sur d’autres sites

Pour le SMTP, si tu es chez OVH, cherche pas c est incompatible.

Plusieurs forums parlent de l implémentations ovh incompatible avec asp.net, visiblement il n y a rien a faire :/

Pour le mots de passe, il faut effectivement utiliser un mot de passe « application » ou un compte dédié.

Apres normalement seul root a accès en lecture 😅

Apres pour être honnête, à par envoyer le mail d accueil, le smtp ne sert pas ..

Modifié par Balooforever
Lien vers le commentaire
Partager sur d’autres sites

Non, je n'ai que mon ndd chez ovh. Tout le reste concernant le mail est hebergé sur mon serveur chez moi avec Mail Plus Serveur.

J'ai aussi essayé Gmail mais ça ne passait pas. Peut-être en effet qu'il faudrait que je test juste avec un mot de passe d'application pour voir.

Ceux qui ont accès au dossier Docker sur File Station peuvent lire facilement le fichier avec un éditeur de texte.

 

Quant à l'envoi du mail, il y a aussi le faite de valider le compte avec un envoi par mail.

Lien vers le commentaire
Partager sur d’autres sites

Voici le résultat avec Gmail :

 

2018-02-24 13:16:13	stdout	   at System.Net.Mail.SmtpClient.SendMailCallback(IAsyncResult result)
2018-02-24 13:16:13	stdout	   at System.Net.Mail.SendMailAsyncResult.End(IAsyncResult result)
2018-02-24 13:16:13	stdout	   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
2018-02-24 13:16:13	stdout	--- End of stack trace from previous location where exception was thrown ---
2018-02-24 13:16:13	stdout	   at System.Net.Mail.SendMailAsyncResult.SendMailFromCompleted(IAsyncResult result)
2018-02-24 13:16:13	stdout	   at System.Net.Mail.MailCommand.EndSend(IAsyncResult result)
2018-02-24 13:16:13	stdout	   at System.Net.Mail.MailCommand.CheckResponse(SmtpStatusCode statusCode, String response)
2018-02-24 13:16:13	stdout	System.Net.Mail.SmtpException: The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.5.1 Authentication Required. Learn more at
2018-02-24 13:16:13	stdout	      Mail send failed.
2018-02-24 13:16:13	stdout	[41m[30mfail[39m[22m[49m: Bit.Core.Services.SmtpMailDeliveryService[0] 

 

Voici le résultat avec mon propre serveur mail :

Pour mon serveur mail, je suis sûr de moi. J'ai plusieurs clients configurés sur plusieurs machines avec la même configuration à chaque fois.

 

2018-02-24 13:25:00	stdout	   at System.Net.Mail.SmtpClient.SendMailCallback(IAsyncResult result)
2018-02-24 13:25:00	stdout	   at System.Net.Mail.SendMailAsyncResult.End(IAsyncResult result)
2018-02-24 13:25:00	stdout	   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
2018-02-24 13:25:00	stdout	--- End of stack trace from previous location where exception was thrown ---
2018-02-24 13:25:00	stdout	   at System.Net.Mail.SendMailAsyncResult.SendMailFromCompleted(IAsyncResult result)
2018-02-24 13:25:00	stdout	   at System.Net.Mail.MailCommand.EndSend(IAsyncResult result)
2018-02-24 13:25:00	stdout	   at System.Net.Mail.MailCommand.CheckResponse(SmtpStatusCode statusCode, String response)
2018-02-24 13:25:00	stdout	System.Net.Mail.SmtpException: The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.5.1 Authentication Required. Learn more at
2018-02-24 13:25:00	stdout	      Mail send failed.
2018-02-24 13:25:00	stdout	[41m[30mfail[39m[22m[49m: Bit.Core.Services.SmtpMailDeliveryService[0]
2018-02-24 13:24:59	stdout	      Request finished in 6.703ms 200 
2018-02-24 13:24:59	stdout	[40m[32minfo[39m[22m[49m: Microsoft.AspNetCore.Hosting.Internal.WebHost[2]
2018-02-24 13:24:59	stdout	      Executed action Bit.Api.Controllers.AccountsController.PostVerifyEmail (Api) in 3.952ms
2018-02-24 13:24:59	stdout	[40m[32minfo[39m[22m[49m: Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker[2]
2018-02-24 13:24:59	stdout	      Executing action method Bit.Api.Controllers.AccountsController.PostVerifyEmail (Api) with arguments ((null)) - ModelState is Valid
2018-02-24 13:24:59	stdout	[40m[32minfo[39m[22m[49m: Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker[1]
2018-02-24 13:24:59	stdout	      Authorization was successful for user: d70cbb68-3659-480e-8c5f-a8900149e1ec.
2018-02-24 13:24:59	stdout	[40m[32minfo[39m[22m[49m: Microsoft.AspNetCore.Authorization.DefaultAuthorizationService[1]
2018-02-24 13:24:59	stdout	      AuthenticationScheme: Bearer was successfully authenticated.
2018-02-24 13:24:59	stdout	[40m[32minfo[39m[22m[49m: IdentityServer4.AccessTokenValidation.IdentityServerAuthenticationHandler[8]
2018-02-24 13:24:59	stdout	      AuthenticationScheme: BearerIdentityServerAuthenticationJwt was successfully authenticated.
2018-02-24 13:24:59	stdout	[40m[32minfo[39m[22m[49m: Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerHandler[8]
2018-02-24 13:24:59	stdout	      Successfully validated the token.
2018-02-24 13:24:59	stdout	[40m[32minfo[39m[22m[49m: Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerHandler[2]
2018-02-24 13:24:59	stdout	      Policy execution successful.
2018-02-24 13:24:59	stdout	[40m[32minfo[39m[22m[49m: Microsoft.AspNetCore.Cors.Infrastructure.CorsService[4]
2018-02-24 13:24:59	stdout	      Request starting HTTP/1.0 POST http://bitwarden.ndd.fr/accounts/verify-email application/json;charset=utf-8 0
2018-02-24 13:24:59	stdout	[40m[32minfo[39m[22m[49m: Microsoft.AspNetCore.Hosting.Internal.WebHost[1] 

 

 

Lien vers le commentaire
Partager sur d’autres sites

Oui tout à fait, voici ma config :

 

globalSettings__mail__replyToEmail=noreply@***.fr
globalSettings__mail__smtp__host=mail.***.fr
globalSettings__mail__smtp__username=****
globalSettings__mail__smtp__password=****
globalSettings__mail__smtp__ssl=true
globalSettings__mail__smtp__port=587
globalSettings__mail__smtp__useDefaultCredentials=false

 

Modifié par InfoYANN
Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Petite question de débutant. L'appli se met à jour elle même ou il faut le faire nous même. Si il faut le faire, je suppose qu'il faut lancer de temps en temps les commandes :

 

./bitwarden.sh updateself
./bitwarden.sh update
./bitwarden.sh updatedb

C'est bien ça ?

Merci

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.