Installer et configurer le gestionnaire de mots de passe Passbolt Team sur Ubuntu 20.04

Passbolt est un gestionnaire de mots de passe gratuit, open-source, auto-hébergé et extensible qui t’aide à partager et à stocker en toute sécurité les identifiants de connexion, comme le mot de passe du routeur, du site Web, du Wi-Fi, etc. Il est différent des autres gestionnaires de mots de passe. Il est axé sur l’utilisation en équipe plutôt que sur les individus. Il est disponible en édition communautaire et payante. Il offre de nombreuses fonctionnalités, dont certaines sont énumérées ci-dessous :

  • Fournit des extensions Firefox et Google Chrome.
  • Utilise OpenPGP pour crypter le mot de passe.
  • Interface web simple et conviviale.
  • Permet d’importer et d’exporter des mots de passe.
  • Permet d’ajouter les identifiants de connexion manuellement.

Dans ce tutoriel, nous allons expliquer comment installer le gestionnaire de mots de passe Passbolt avec Apache et Let’s Encrypt sur Ubuntu 20.04.

Conditions préalables

  • Un serveur exécutant Ubuntu 20.04.
  • Un nom de domaine valide pointé avec l’IP de ton serveur.
  • Un mot de passe root est configuré sur le serveur.

Installer le serveur LAMP

Tout d’abord, tu dois installer le serveur Apache et MariaDB dans ton système. Tu peux les installer avec la commande suivante :

apt-get install apache2 mariadb-server -y

Après avoir installé les paquets ci-dessus, tu devras aussi installer PHP et les autres paquets requis dans ton système.

Par défaut, Ubuntu 20.04 est livré avec PHP7.4 dans son référentiel par défaut. Cependant, Passbolt ne prend pas en charge PHP7.4. Tu devras donc ajouter le référentiel PHP dans ton système.

Tout d’abord, installe les paquets requis avec la commande suivante :

apt-get install software-properties-common gnupg -y

Ensuite, ajoute le référentiel PHP avec la commande suivante :

add-apt-repository ppa:ondrej/php --yes

Ensuite, installe la version 7.3 de PHP avec Composer et les autres extensions requises avec la commande suivante :

apt-get install php7.3 php7.3-mysql libapache2-mod-php7.3 php7.3-intl php7.3-mbstring php7.3-gd php7.3-imagick php7.3-xml php7.3-common php7.3-curl php7.3-json php7.3-ldap php7.3-gnupg zlib1g unzip git composer curl -y

Une fois que tous les paquets sont installés, tu peux passer à l’étape suivante.

Configurer la base de données MariaDB

Tout d’abord, tu dois sécuriser l’installation de MariaDB et définir le mot de passe de la racine MariaDB. Tu peux le faire avec la commande suivante :

mysql_secure_installation

Ce script définira le mot de passe root MariaDB, supprimera les utilisateurs anonymes, interdira la connexion root à distance et supprimera la base de données de test et son accès, comme indiqué ci-dessous :

Enter current password for root (enter for none): 
OK, successfully used password, moving on...
Set root password? [Y/n] Y
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Une fois que la base de données MariaDB est sécurisée, connecte-toi au shell MariaDB avec la commande suivante :

mysql -u root -p

Donne ton mot de passe root à l’invite puis crée une base de données et un utilisateur pour Passbolt avec la commande suivante :

MariaDB [(none)]> CREATE DATABASE passboltdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
MariaDB [(none)]> GRANT ALL on passboltdb.* to [email protected] identified by 'password';

Ensuite, vide les privilèges et quitte la MariaDB avec la commande suivante :

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Télécharger et configurer Passbolt

Dans cette section, nous allons apprendre à télécharger et à configurer Passbolt :

Télécharger Passbolt

Tout d’abord, télécharge la dernière version de Passbolt dans le répertoire racine du site Web d’Apache à l’aide de la commande suivante :

mkdir /var/www/passbolt
git clone https://github.com/passbolt/passbolt_api.git /var/www/passbolt

Une fois téléchargé, change la propriété de passbolt en www-data avec la commande suivante :

chown -R www-data:www-data /var/www/

Ensuite, change le répertoire en passbolt et installe les dépendances requises avec la commande suivante :

cd /var/www/passbolt
sudo -u www-data composer install --no-dev

Tu devrais obtenir le résultat suivant :

> Cake\Composer\Installer\PluginInstaller::postAutoloadDump
9 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
thadafinser/package-info:  Generating class...
thadafinser/package-info: ...generating class
> App\Console\Installer::postInstall
Created `config/app.php` file
Created `/var/www/passbolt/logs` directory
Created `/var/www/passbolt/tmp/cache/models` directory
Created `/var/www/passbolt/tmp/cache/persistent` directory
Created `/var/www/passbolt/tmp/cache/views` directory
Created `/var/www/passbolt/tmp/sessions` directory
Created `/var/www/passbolt/tmp/tests` directory
Set Folder Permissions ? (Default to Y) [Y,n]? Y

Tape Y et appuie sur Entrée pour définir les autorisations du dossier.

Générer la clé OpenPGP

Ensuite, tu devras générer la clé OpenPGP pour authentifier et signer les requêtes JSON sortantes. Tu peux la générer avec la commande suivante :

cd /var/www/passbolt
gpg --full-generate-key

Pendant le processus, on te demandera la phrase de passe, appuie simplement sur la touche Tab, sélectionne OK et confirme que tu ne veux pas la définir, car le module php-gnupg ne prend pas en charge l’utilisation de la phrase de passe pour le moment.

gpg (GnuPG) 2.2.19; Copyright (C) 2019 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

gpg: directory '/root/.gnupg' created
gpg: keybox '/root/.gnupg/pubring.kbx' created
Please select what kind of key you want:
   (1) RSA and RSA (default)
   (2) DSA and Elgamal
   (3) DSA (sign only)
   (4) RSA (sign only)
  (14) Existing key from card
Your selection? 1
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (3072) 4096
Requested keysize is 4096 bits
Please specify how long the key should be valid.
         0 = key does not expire
        = key expires in n days
      w = key expires in n weeks
      m = key expires in n months
      y = key expires in n years
Key is valid for? (0) 0
Key does not expire at all
Is this correct? (y/N) y

GnuPG needs to construct a user ID to identify your key.

Real name: Hitesh
Email address: [email protected]
Comment: Hi
You selected this USER-ID:
    "Hitesh (Hi) <[email protected]>"

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
gpg: /root/.gnupg/trustdb.gpg: trustdb created
gpg: key 2DA8E7FB8E23B2FD marked as ultimately trusted
gpg: directory '/root/.gnupg/openpgp-revocs.d' created
gpg: revocation certificate stored as '/root/.gnupg/openpgp-revocs.d/9622291A72D99A4EC78ABCB92DA8E7FB8E23B2FD.rev'
public and secret key created and signed.

pub   rsa4096 2020-07-25 [SC]
      D2394A45B7CBBAB7F00CC79B23D4750486780854
uid                      Hitesh (Hi) <[email protected]>
sub   rsa4096 2020-07-25 [E]

N’oublie pas l’empreinte de la clé publique ci-dessus car elle sera nécessaire plus tard dans la configuration.

Ensuite, exporte les clés publique et privée dans le répertoire ‘/var/www/passbolt’ avec les commandes suivantes :

gpg --armor --export-secret-keys [email protected] > /var/www/passbolt/config/gpg/serverkey_private.asc
gpg --armor --export [email protected] > /var/www/passbolt/config/gpg/serverkey.asc

Ensuite, tu devras initialiser le trousseau de clés de la clé gpg pour l’utilisateur Apache. Tu peux le faire avec la commande suivante :

sudo su -s /bin/bash -c "gpg --list-keys" www-data

Tu devrais obtenir la sortie suivante :

gpg: directory '/var/www/.gnupg' created
gpg: keybox '/var/www/.gnupg/pubring.kbx' created
gpg: /var/www/.gnupg/trustdb.gpg: trustdb created

Configurer Passbolt

Tout d’abord, copie l’exemple de fichier de configuration de Passbolt avec la commande suivante :

cp /var/www/passbolt/config/passbolt{.default,}.php

Ensuite, modifie le fichier de configuration de Passbolt avec la commande suivante: :

nano /var/www/passbolt/config/passbolt.php

Définis ton fullbaseurl, ta base de données et ton empreinte de clé publique comme indiqué ci-dessous :

        'fullBaseUrl' => 'https://passbolt.linuxbuz.com',
    // Database configuration.

    'Datasources' => [
        'default' => [
            'host' => 'localhost',
            //'port' => 'non_standard_port_number',
            'username' => 'passbolt',
            'password' => 'password',
            'database' => 'passboltdb',
            'serverKey' => [
            // Server private key fingerprint.
            'fingerprint' => 'D2394A45B7CBBAB7F00CC79B23D4750486780854',
            'public' => CONFIG . 'gpg' . DS . 'serverkey.asc',
            'private' => CONFIG . 'gpg' . DS . 'serverkey_private.asc',

Enregistre et ferme le fichier lorsque tu as terminé.

Si tu ne te souviens pas de l’empreinte de ta clé publique, tu peux la récupérer avec la commande suivante :

gpg --list-keys --fingerprint | grep -i -B 2 [email protected]

Tu devrais obtenir la sortie suivante :

gpg: checking the trustdb
gpg: marginals needed: 3  completes needed: 1  trust model: pgp
gpg: depth: 0  valid:   1  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 1u
pub   rsa4096 2020-07-25 [SC]
      D239 4A45 B7CB BAB7 F00C  C79B 23D4 7504 8678 0854
uid           [ultimate] Hitesh (Hi) <[email protected]>

Configurer Apache pour Passbolt

Ensuite, tu devras créer un fichier de configuration d’hôte virtuel Apache pour Passbolt. Tu peux le créer avec la commande suivante :

nano /etc/apache2/sites-available/passbolt.conf

Ajoute les lignes suivantes :

<VirtualHost *:80>

        ServerName passbolt.linuxbuz.com
        DocumentRoot /var/www/passbolt

        ErrorLog ${APACHE_LOG_DIR}/passbolt_error.log
        CustomLog ${APACHE_LOG_DIR}/passbolt_access.log combined


      <Directory /var/www/passbolt/>
                Options FollowSymLinks MultiViews
                AllowOverride All
                Require all granted
        </Directory>

</VirtualHost>

Enregistre et ferme le fichier puis active le fichier d’hôte virtuel et redémarre le service Apache avec la commande suivante :

a2ensite passbolt
systemctl restart apache2

Lorsque tu as terminé, tu peux passer à l’étape suivante.

Sécurise Passbolt avec Let’s Encrypt

Afin de sécuriser ton site Web avec Let’s Encrypt SSL, tu dois installer l’utilitaire client Certbot dans ton système pour gérer le certificat SSL.

Tu peux l’installer à l’aide de la commande suivante :

apt-get install python3-certbot-apache -y

Une fois installé, exécute la commande suivante pour sécuriser ton site Web avec Let’s Encrypt SSL :

certbot --apache -d passbolt.linuxbuz.com

Il te sera demandé de fournir ton email et d’accepter les conditions de service comme indiqué ci-dessous :

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator standalone, Installer None
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Plugins selected: Authenticator apache, Installer apache
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for passbolt.linuxbuz.com
Enabled Apache rewrite module
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/apache2/sites-available/passbolt-le-ssl.conf
Enabled Apache socache_shmcb module
Enabled Apache ssl module
Deploying Certificate to VirtualHost /etc/apache2/sites-available/passbolt-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/passbolt-le-ssl.conf

Ensuite, choisis de rediriger ou non le trafic HTTP vers HTTPS comme indiqué ci-dessous :

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Tape 2 et appuie sur Entrée pour installer le SSL Let’s Encrypt pour ton site Web :

Enabled Apache rewrite module
Redirecting vhost in /etc/apache2/sites-enabled/passbolt.conf to ssl vhost in /etc/apache2/sites-available/passbolt-le-ssl.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://passbolt.linuxbuz.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=passbolt.linuxbuz.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/passbolt.linuxbuz.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/passbolt.linuxbuz.com/privkey.pem
   Your cert will expire on 2020-10-23. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

À ce stade, ton site Web est sécurisé avec Let’s Encrypt SSL.

Installe Passbolt

Ensuite, tu peux installer Passbolt en exécutant le script d’installation de Passbolt.

Tout d’abord, change le répertoire en /var/www/passbolt :

cd /var/www/passbolt

Ensuite, exécute le script d’installation de Passbolt avec la commande suivante :

sudo su -s /bin/bash -c "./bin/cake passbolt install --no-admin" www-data

Une fois que l’installation s’est terminée avec succès, tu devrais obtenir la sortie suivante :

All Done. Took 1.6533s

Import the server private key in the keyring
---------------------------------------------------------------
Importing /var/www/passbolt/config/gpg/serverkey_private.asc
Keyring init OK

Passbolt installation success! Enjoy! ?

Ensuite, tu devras finaliser l’installation de Passbolt depuis le navigateur. Ouvre ton navigateur Web et visite l’URL https://passbolt.linuxbuz.com. Tu devrais voir l’écran suivant :

Passbolt Télécharger

Ici, tu devras télécharger et installer un plugin pour ton navigateur. Clique sur Télécharger le plugin pour télécharger et installer le plugin Passbolt. Une fois installé, tu peux passer à l’étape suivante.

Accéder à l’interface Web de Passbolt

Avant de commencer, tu dois créer un utilisateur admin et définir un mot de passe pour Passbolt. Tu peux le faire avec la commande suivante :

cd /var/www/passbolt
sudo su -s /bin/bash -c "./bin/cake passbolt register_user -u [email protected] -f howtoforge -l Demo -r admin" www-data

Tu devrais obtenir la sortie suivante :

     ____                  __          ____  
    / __ \____  _____ ____/ /_  ____  / / /_ 
   / /_/ / __ `/ ___/ ___/ __ \/ __ \/ / __/ 
  / ____/ /_/ (__  |__  ) /_/ / /_/ / / /    
 /_/    \__,_/____/____/_.___/\____/_/\__/   

 Open source password manager for teams
---------------------------------------------------------------
User saved successfully.
To start registration follow the link provided in your mailbox or here: 
https://passbolt.linuxbuz.com/setup/install/5bcfb186-3d9f-448f-8388-f705abd855c8/a2ba80dc-5ef2-433a-9138-11282747b377

Maintenant, copie le lien de la sortie ci-dessus et utilise-le pour finaliser la configuration de Passbolt sur le navigateur. Tu devrais voir l’écran suivant :

Obtiens le plugin Passbolt

Confirme que l’URL et l’empreinte de la clé GPG sont correctes et clique sur le bouton Suivant. Tu devrais voir l’écran suivant :

Crée une nouvelle clé

Indique le nom du propriétaire, son adresse e-mail et clique sur le bouton Suivant. Tu devrais voir l’écran suivant :

Définir la phrase d'authentification

Définis ton mot de passe et clique sur le bouton Suivant. Tu devrais voir l’écran suivant :

Créer une sauvegarde

Télécharge ta clé secrète et clique sur le bouton Suivant. Tu devrais voir l’écran suivant :

Définir le jeton de sécurité

Définis un jeton de sécurité et clique sur le bouton Suivant. Tu devrais voir l’écran suivant :

Connexion Passbolt

Indique ton nom d’utilisateur et ton mot de passe et clique sur le bouton de connexion. Tu devrais voir le tableau de bord Passbolt dans l’écran suivant :

Gestionnaire de mots de passe de l'équipe Passbolt

Conclusion

Félicitations ! Tu as installé avec succès le gestionnaire de mots de passe Passbolt avec Let’s Encrypt SSL sur le serveur Ubuntu 20.04. Tu peux maintenant stocker et partager tes mots de passe avec tes équipes et ton utilisateur individuel. N’hésite pas à me demander si tu as des questions.

Vous aimerez aussi...