Passbolt est un gestionnaire de mots de passe gratuit, open-source, auto-hébergé et extensible qui vous aide à partager et à stocker en toute sécurité les identifiants de connexion, tels que le mot de passe du routeur, du site Web, du Wi-Fi -Fi, et plus encore. 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 répertoriées ci-dessous :
- Fournit des extensions Firefox et Google Chrome.
- Utilisez OpenPGP pour chiffrer le mot de passe.
- Interface Web simple et conviviale.
- Permet d'importer et d'exporter des mots de passe.
- Permet d'ajouter manuellement les identifiants de connexion.
Dans ce tutoriel, nous expliquerons comment installer Passbolt Password Manager avec Apache et Let's Encrypt sur Ubuntu 20.04.
Prérequis
- Un serveur exécutant Ubuntu 20.04.
- Un nom de domaine valide pointé vers l'adresse IP de votre serveur.
- Un mot de passe root est configuré sur le serveur.
Installer le serveur LAMP
Tout d'abord, vous devrez installer le serveur Apache et MariaDB sur votre système. Vous pouvez les installer avec la commande suivante :
apt-get install apache2 mariadb-server -y
Après avoir installé les packages ci-dessus, vous devrez également installer PHP et les autres packages requis sur votre 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. Vous devrez donc ajouter le référentiel PHP dans votre système.
Tout d'abord, installez les packages requis avec la commande suivante :
apt-get install software-properties-common gnupg -y
Ensuite, ajoutez le dépôt PHP avec la commande suivante :
add-apt-repository ppa:ondrej/php --yes
Ensuite, installez 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 tous les packages installés, vous pouvez passer à l'étape suivante.
Configurer la base de données MariaDB
Tout d'abord, vous devrez sécuriser l'installation de MariaDB et définir le mot de passe root de MariaDB. Vous pouvez le faire avec la commande suivante :
mysql_secure_installation
Ce script définira le mot de passe root de MariaDB, supprimera les utilisateurs anonymes, désactivera la connexion root à distance et supprimera la base de données de test et l'accès à celle-ci, 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 MariaDB sécurisée, connectez-vous au shell MariaDB avec la commande suivante :
mysql -u root -p
Fournissez votre mot de passe root lorsque vous y êtes invité, puis créez 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, videz les privilèges et quittez MariaDB avec la commande suivante :
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;
Une fois que vous avez terminé, vous pouvez 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échargez la dernière version de Passbolt dans le répertoire racine Web d'Apache avec la commande suivante :
mkdir /var/www/passbolt
git clone https://github.com/passbolt/passbolt_api.git /var/www/passbolt
Une fois téléchargé, changez la propriété du passbolt en www-data avec la commande suivante :
chown -R www-data:www-data /var/www/
Ensuite, changez le répertoire en passbolt et installez les dépendances requises avec la commande suivante :
cd /var/www/passbolt
sudo -u www-data composer install --no-dev
Vous devriez 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
Tapez O et appuyez sur Entrée pour définir les autorisations de dossier.
Générer la clé OpenPGP
Ensuite, vous devrez générer une clé OpenPGP pour authentifier et signer les requêtes JSON sortantes. Vous pouvez le générer avec la commande suivante :
cd /var/www/passbolt
gpg --full-generate-key
Pendant le processus, il vous sera demandé la phrase secrète, appuyez simplement sur la touche Tab, sélectionnez OK et confirmez que vous ne voulez pas le définir, car le module php-gnupg ne prend pas en charge l'utilisation de la phrase secrète 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'oubliez pas l'empreinte de la clé publique ci-dessus car elle sera nécessaire plus tard dans la configuration.
Ensuite, exportez la clé 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, vous devrez initialiser le trousseau de clés gpg pour l'utilisateur Apache. Vous pouvez le faire avec la commande suivante :
sudo su -s /bin/bash -c "gpg --list-keys" www-data
Vous devriez obtenir le résultat suivant :
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, copiez l'exemple de fichier de configuration Passbolt avec la commande suivante :
cp /var/www/passbolt/config/passbolt{.default,}.php
Ensuite, modifiez le fichier de configuration Passbolt avec la commande suivante : :
nano /var/www/passbolt/config/passbolt.php
Définissez votre fullbaseurl, votre base de données et votre 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',
Enregistrez et fermez le fichier lorsque vous avez terminé.
Si vous ne vous souvenez pas de l'empreinte de votre clé publique, vous pouvez la récupérer avec la commande suivante :
gpg --list-keys --fingerprint | grep -i -B 2 [email protected]
Vous devriez obtenir le résultat suivant :
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, vous devrez créer un fichier de configuration d'hôte virtuel Apache pour Passbolt. Vous pouvez le créer avec la commande suivante :
nano /etc/apache2/sites-available/passbolt.conf
Ajoutez 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>
Enregistrez et fermez le fichier puis activez le fichier d'hôte virtuel et redémarrez le service Apache avec la commande suivante :
a2ensite passbolt
systemctl restart apache2
Lorsque vous avez terminé, vous pouvez passer à l'étape suivante.
Sécuriser Passbolt avec Let's Encrypt
Afin de sécuriser votre site Web avec Let's Encrypt SSL, vous devrez installer l'utilitaire client Certbot dans votre système pour gérer le certificat SSL.
Vous pouvez l'installer avec la commande suivante :
apt-get install python3-certbot-apache -y
Une fois installé, exécutez la commande suivante pour sécuriser votre site Web avec Let's Encrypt SSL :
certbot --apache -d passbolt.linuxbuz.com
Il vous sera demandé de fournir votre adresse e-mail et d'accepter les conditions d'utilisation 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, sélectionnez si vous souhaitez ou non rediriger 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
Tapez 2 et appuyez sur Entrée pour installer le Let's Encrypt SSL pour votre 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, votre site Web est sécurisé avec Let's Encrypt SSL.
Installer Passbolt
Ensuite, vous pouvez installer Passbolt en exécutant le script d'installation de Passbolt.
Tout d'abord, changez le répertoire en /var/www/passbolt :
cd /var/www/passbolt
Ensuite, exécutez 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 l'installation terminée avec succès, vous devriez obtenir le résultat suivant :
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, vous devrez finaliser la configuration de Passbolt à partir du navigateur. Ouvrez votre navigateur Web et visitez l'URL https://passbolt.linuxbuz.com. Vous devriez voir l'écran suivant :
Ici, vous devrez télécharger et installer un plugin pour votre navigateur. Cliquez sur Télécharger le plugin pour télécharger et installer le plugin Passbolt. Une fois installé, vous pouvez passer à l'étape suivante.
Accéder à l'interface Web Passbolt
Avant de commencer, vous devrez créer un utilisateur administrateur et définir un mot de passe pour Passbolt. Vous pouvez 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
Vous devriez obtenir le résultat suivant :
____ __ ____ / __ \____ _____ ____/ /_ ____ / / /_ / /_/ / __ `/ ___/ ___/ __ \/ __ \/ / __/ / ____/ /_/ (__ |__ ) /_/ / /_/ / / / /_/ \__,_/____/____/_.___/\____/_/\__/ 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, copiez le lien de la sortie ci-dessus et utilisez-le pour finaliser la configuration de Passbolt sur le navigateur. Vous devriez voir l'écran suivant :
Confirmez que l'URL et l'empreinte de la clé GPG sont correctes et cliquez sur Suivant bouton. Vous devriez voir l'écran suivant :
Indiquez le nom du propriétaire, son adresse e-mail et cliquez sur Suivant bouton. Vous devriez voir l'écran suivant :
Définissez votre mot de passe et cliquez sur Suivant bouton. Vous devriez voir l'écran suivant :
Téléchargez votre clé secrète et cliquez sur Suivant bouton. Vous devriez voir l'écran suivant :
Définissez un jeton de sécurité et cliquez sur Suivant bouton. Vous devriez voir l'écran suivant :
Indiquez votre nom d'utilisateur, votre mot de passe et cliquez sur login bouton. Vous devriez voir le tableau de bord Passbolt dans l'écran suivant :
Conclusion
Félicitations ! vous avez installé avec succès le gestionnaire de mots de passe Passbolt avec Let's Encrypt SSL sur le serveur Ubuntu 20.04. Vous pouvez désormais stocker et partager vos mots de passe avec vos équipes et vos utilisateurs individuels. N'hésitez pas à me demander si vous avez des questions.