GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer Passbolt Password Manager sur le serveur Ubuntu 20.04

Passbolt est un gestionnaire de mots de passe open source auto-hébergé, qui vous permet de stocker et de partager en toute sécurité les identifiants de connexion du site Web, le mot de passe du routeur, le mot de passe Wi-Fi, etc. Ce didacticiel vous montrera comment installer Passbolt Community Edition (CE) sur Ubuntu 20.04 avec serveur web Apache ou Nginx.

Fonctionnalités du Passbolt

  • Gratuit et open source
  • Les mots de passe sont chiffrés avec OpenPGP, une norme cryptographique éprouvée.
  • Des extensions de navigateur sont disponibles pour Firefox et Google Chrome.
  • Partagez facilement les identifiants de connexion avec votre équipe sans compromettre la sécurité.
  • Interface claire et conviviale.
  • Importer et exporter des mots de passe. Vous pouvez exporter vos mots de passe vers .kdbx ou .csv format de fichier à utiliser avec KeepassX, LastPass ou 1password.
  • Vous pouvez ajouter manuellement des identifiants de connexion.

Prérequis pour installer Passbolt sur le serveur Ubuntu 20.04

Passbolt est écrit en PHP et s'appuie sur le serveur de base de données MySQL/MariaDB. Vous devez donc configurer une pile LAMP ou LEMP avant d'installer Passbolt. Si vous préférez le serveur Web Apache, configurez la pile LAMP.

  • Comment installer la pile LAMP sur Ubuntu 20.04

Si vous préférez le serveur Web Nginx, configurez la pile LEMP.

  • Comment installer la pile LEMP sur Ubuntu 20.04

Vous avez également besoin d'un nom de domaine pour pouvoir accéder en toute sécurité à Passbolt depuis n'importe où avec un navigateur Web. J'ai enregistré mon nom de domaine auprès de NameCheap car le prix est bas et ils offrent une protection de la confidentialité whois gratuite à vie.

Une fois les conditions ci-dessus remplies, suivez les instructions ci-dessous pour installer Passbolt.

Étape 1 :Téléchargez Passbolt sur votre serveur Ubuntu 20.04

Si vous allez sur le site officiel pour télécharger Passbolt, vous devez entrer votre nom et votre adresse e-mail. Si ce n'est pas ce que vous aimez, téléchargez la dernière version stable de Github en exécutant les commandes suivantes sur votre serveur.

sudo apt install git

cd /var/www/

sudo git clone https://github.com/passbolt/passbolt_api.git

Les fichiers seront enregistrés dans passbolt_api annuaire. Nous le renommons en passbolt .

sudo mv passbolt_api passbolt

Ensuite, faites en sorte que l'utilisateur du serveur Web (www-data ) en tant que propriétaire de ce répertoire.

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

Exécutez la commande suivante pour installer les modules PHP requis ou recommandés par Passbolt

sudo apt install php-imagick php-gnupg php7.4-common php7.4-mysql php7.4-fpm php7.4-ldap php7.4-gd php7.4-imap php7.4-json php7.4-curl php7.4-zip php7.4-xml php7.4-mbstring php7.4-bz2 php7.4-intl php7.4-gmp php7.4-xsl

Redémarrez ensuite Apache. (Si vous utilisez Nginx, vous n'avez pas besoin de redémarrer Nginx.)

sudo systemctl restart apache2

Changer de répertoire.

cd /var/www/passbolt/

Installez Composer - le gestionnaire de dépendances PHP.

sudo apt install composer

Créer un répertoire de cache pour Composer.

sudo mkdir /var/www/.composer

Créer www-data en tant que propriétaire.

sudo chown -R www-data:www-data /var/www/.composer

Utilisez Composer pour installer les dépendances.

sudo -u www-data composer install --no-dev

S'il vous demande de définir des autorisations de dossier, choisissez Y .

Étape 2 :Créer une base de données MariaDB et un utilisateur pour Passbolt

Connectez-vous à la console MariaDB.

sudo mysql -u root

Ensuite, créez une nouvelle base de données pour Passbolt à l'aide de la commande suivante. Ce tutoriel le nomme passbolt , vous pouvez utiliser le nom de votre choix pour la base de données. Nous spécifions également utf8mb4 comme jeu de caractères pour prendre en charge les caractères non latins et les emojis.

CREATE DATABASE passbolt DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

La commande suivante créera un utilisateur et un mot de passe de base de données, et accordera en même temps toutes les autorisations de la nouvelle base de données au nouvel utilisateur afin que plus tard Passbolt puisse écrire dans la base de données. Remplacez les textes en rouge par le nom, le nom d'utilisateur et le mot de passe de votre base de données préférée.

GRANT ALL ON passbolt.* TO 'passboltuser'@'localhost' IDENTIFIED BY 'password';

Videz la table des privilèges et quittez la console MariaDB.

FLUSH PRIVILEGES;

EXIT;

Étape 3 :Générer une clé OpenPGP

Si vous utilisez un VPS (Virtual Private Server), il est recommandé d'installer le haveged package pour générer suffisamment d'entropie.

sudo apt install haveged

Le haveged.service démarrera automatiquement après l'installation. Vous pouvez vérifier son statut avec :

sudo systemctl status haveged

Exécutez ensuite la commande suivante pour générer une nouvelle paire de clés.

gpg --gen-key

Il vous sera demandé d'entrer votre nom et votre adresse e-mail. Si vous êtes invité à définir une phrase secrète, ignorez-la en appuyant sur la touche Tab et en sélectionnant OK, car le module php-gnupg ne prend pas en charge l'utilisation de la phrase secrète pour le moment.

Copiez la clé privée à l'emplacement de configuration du boulon d'accès. Remplacez [email protected] avec l'adresse e-mail lors de la génération de la clé PGP.

gpg --armor --export-secret-keys [email protected] | sudo tee /var/www/passbolt/config/gpg/serverkey_private.asc > /dev/null

Et copiez également la clé publique.

gpg --armor --export [email protected] | sudo tee /var/www/passbolt/config/gpg/serverkey.asc > /dev/null

Initialiser le www-data trousseau de clés de l'utilisateur.

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

Étape 4 :Configurer Passbolt

Assurez-vous que vous êtes dans /var/www/passbolt/ répertoire.

cd /var/www/passbolt/

Copiez l'exemple de fichier de configuration dans un fichier de configuration de production.

sudo cp config/passbolt.default.php config/passbolt.php

Modifiez le fichier de configuration avec un éditeur de texte en ligne de commande, tel que Nano.

sudo nano config/passbolt.php

Tout d'abord, recherchez la ligne suivante.

'fullBaseUrl' => 'https://www.passbolt.test',

Remplacez l'URL par votre propre URL, comme https://passbolt.yourdomain.com . N'oubliez pas de créer un enregistrement DNS A pour ce sous-domaine dans votre gestionnaire d'enregistrements DNS.

Dans la database configuration , entrez le nom de la base de données, le nom d'utilisateur et le mot de passe de la base de données que vous avez créés à l'étape 2.

    // Database configuration.
    'Datasources' => [
        'default' => [
            'host' => 'localhost',
            //'port' => 'non_standard_port_number',
            'username' => 'user',
            'password' => 'secret',
            'database' => 'passbolt',
        ],
    ],

Dans la email configuration section,

  • Spécifiez le nom d'hôte SMTP, le numéro de port, les identifiants de connexion, afin que votre mot de passe puisse envoyer des e-mails. Habituellement, vous devez utiliser le port 587 pour envoyer des e-mails au serveur SMTP distant. Assurez-vous d'avoir défini tls à true , de sorte que la transaction SMTP sera cryptée.
  • Définissez également le From: adresse e-mail et nom de l'expéditeur.
    // Email configuration.
    'EmailTransport' => [
        'default' => [
            'host' => 'mail.yourdomain.com',
            'port' => 587,
            'username' => '[email protected]',
            'password' => 'secret',
            // Is this a secure connection? true if yes, null if no.
            'tls' => true,
            //'timeout' => 30,
            //'client' => null,
            //'url' => null,
        ],
    ],
    'Email' => [
        'default' => [
            // Defines the default name and email of the sender of the emails.
            'from' => ['[email protected]_organization.com' => 'Passbolt'],
            //'charset' => 'utf-8',
            //'headerCharset' => 'utf-8',
        ],
    ],

Pour configurer facilement votre propre serveur de messagerie, veuillez consulter le didacticiel suivant.

  • Comment configurer facilement votre propre serveur de messagerie sur Ubuntu 20.04 avec iRedMail

Remarque  :Si passbolt est installé sur la même boîte que votre serveur de messagerie, vous n'avez pas besoin de spécifier le nom d'utilisateur et le mot de passe dans le EmailTransport . Utilisez simplement // pour commenter ces deux lignes. La capture d'écran suivante montre un exemple de configuration pour ce scénario.


Dans la section gpg, saisissez l'empreinte de la clé GPG comme ci-dessous. Vous devez supprimer tous les espaces blancs dans l'empreinte digitale.

'fingerprint' => '2FC8945833C51946E937F9FED47B0811573EE67E',

Vous pouvez obtenir l'empreinte de votre clé avec la commande suivante. Remplacez [email protected] avec votre adresse e-mail lors de la génération de la paire de clés PGP.

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

Après avoir entré l'empreinte digitale, décommentez les deux lignes suivantes.

'public' => CONFIG . 'gpg' . DS . 'serverkey.asc',
'private' => CONFIG . 'gpg' . DS . 'serverkey_private.asc',

Enregistrez et fermez le fichier.

Étape 5 :Exécutez le script d'installation

Exécutez le script d'installation en tant que www-data utilisateur.

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

Lors de l'installation, il vous sera demandé de créer un compte administrateur.

Une fois que vous avez créé un compte, vous recevrez une URL pour terminer l'installation dans le navigateur Web . Avant de faire cela, nous devons configurer le serveur Web à l'aide d'Apache ou de Nginx.

Étape 6 :Créer un hôte virtuel Apache ou un fichier de configuration Nginx pour Passbolt

Apache

Si vous utilisez le serveur Web Apache, créez un hôte virtuel pour Passbolt.

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

Mettez le texte suivant dans le fichier. Remplacez passbolt.example.com avec votre vrai nom de domaine et n'oubliez pas de définir un enregistrement DNS A pour celui-ci. Notez également que la racine Web de Passbolt est /var/www/passbolt/webroot/ , pas /var/www/passbolt/ .

<VirtualHost *:80>
  ServerName passbolt.exmaple.com
  DocumentRoot /var/www/passbolt/webroot/

  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined

  <Directory />
    Options FollowSymLinks
    AllowOverride All
  </Directory>

  <Directory /var/www/passbolt/>
    Options FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
  </Directory>

</VirtualHost>

Enregistrez et fermez le fichier. Activez ensuite cet hôte virtuel avec :

sudo a2ensite passbolt.conf

Rechargez Apache pour que les modifications prennent effet.

sudo systemctl reload apache2

Nginx

Si vous utilisez le serveur Web Nginx, créez un hôte virtuel pour Passbolt.

sudo nano /etc/nginx/conf.d/passbolt.conf

Mettez le texte suivant dans le fichier. Remplacez passbolt.example.com avec votre vrai nom de domaine et n'oubliez pas de définir un enregistrement DNS A pour celui-ci. Notez également que la racine Web de Passbolt est /var/www/passbolt/webroot/ , pas /var/www/passbolt/ .

server {
   listen 80;
   listen [::]:80;
   server_name passbolt.example.com;

   root /var/www/passbolt/webroot/;
   error_log /var/log/nginx/passbolt.error;
   access_log /var/log/nginx/passbolt.access;

   index index.php index.html index.htm index.nginx-debian.html;

   location / {
     try_files $uri $uri/ /index.php?$query_string;
   }

   location ~ \.php$ {
     # try_files $uri =404;
     fastcgi_split_path_info ^(.+\.php)(/.+)$;
     # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini

     fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
     fastcgi_index index.php;
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
     include fastcgi_params;

     fastcgi_buffer_size 128k;
     fastcgi_buffers 256 16k;
     fastcgi_busy_buffers_size 256k;
     fastcgi_temp_file_write_size 256k;
   }

    # Don't log favicon
    location = /favicon.ico {
        log_not_found off;
        access_log off;
    }

    # Don't log robots
    location = /robots.txt  {
        access_log off;
        log_not_found off;
    }

    # Deny all attempts to access hidden files/folders such as .htaccess, .htpasswd, .DS_Store (Mac), etc...
    location ~ /\. {
        deny all;
        access_log off;
        log_not_found off;
    }

    # Deny all grunt, composer files
    location ~* (Gruntfile|package|composer)\.(js|json)$ {
        deny all;
        access_log off;
        log_not_found off;
    }

     # A long browser cache lifetime can speed up repeat visits to your page
  location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ {
       access_log        off;
       log_not_found     off;
       expires           360d;
  }
}

Enregistrez et fermez le fichier. Testez ensuite la configuration de Nginx.

sudo nginx -t

Si le test réussit, rechargez Nginx pour que les modifications prennent effet.

sudo systemctl reload nginx

Étape 7 :Activer HTTPS

Pour chiffrer le trafic HTTP, nous pouvons activer HTTPS en installant un certificat TLS gratuit émis par Let's Encrypt. Exécutez la commande suivante pour installer le client Let's Encrypt (certbot) sur le serveur Ubuntu 20.04.

sudo apt install certbot

Si vous utilisez Nginx, vous devez également installer le plugin Certbot Nginx.

sudo apt install python3-certbot-nginx

Ensuite, exécutez la commande suivante pour obtenir et installer le certificat TLS.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d passbolt.example.com

Si vous utilisez Apache, installez le plugin Certbot Apache.

sudo apt install python3-certbot-apache

Et exécutez cette commande pour obtenir et installer le certificat TLS.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d passbolt.example.com

  • --nginx  :Utilisez le plug-in nginx.
  • --apache :Utilisez le plug-in Apache.
  • --agree-tos  :acceptez les conditions d'utilisation.
  • --redirect  :Forcer HTTPS par redirection 301.
  • --hsts :Ajoutez l'en-tête Strict-Transport-Security à chaque réponse HTTP. Forcer le navigateur à toujours utiliser TLS pour le domaine. Protège contre le SSL/TLS Stripping.
  • --staple-ocsp :active l'agrafage OCSP. Une réponse OCSP valide est agrafée au certificat que le serveur propose pendant TLS.

Le certificat devrait maintenant être obtenu et installé automatiquement.

Étape 8 :terminer l'installation de Passbolt dans le navigateur Web

Tout d'abord, vous devez installer l'extension Passbolt sur votre navigateur Firefox ou Google Chrome.

  • Extension Passbolt pour Firefox
  • Extension Passbot pour Google Chrome

Copiez maintenant l'URL que vous avez obtenue après avoir exécuté le script d'installation et collez-la dans la barre d'adresse de votre navigateur. Vous verrez l'assistant de configuration basé sur le Web. La première étape consiste à vous assurer que l'empreinte digitale de votre domaine et de votre clé de serveur est correcte.

Dans la deuxième étape, cliquez simplement sur le bouton Suivant pour créer une nouvelle clé.

Dans la troisième étape, créez une phrase secrète.

Téléchargez ensuite la clé secrète cryptée et stockez-la dans un endroit sûr. Cette clé ne peut être déchiffrée qu'en utilisant votre phrase de passe.

Dans la 4ème étape, définissez un jeton de sécurité.

Enfin, vous pouvez vous connecter avec votre mot de passe.

Vous pouvez maintenant créer un mot de passe, importer un mot de passe à partir d'un fichier csv ou kdbx.

Étape 8 :Configurer la tâche Cron pour envoyer automatiquement des e-mails

Pour envoyer des e-mails système, exécutez la commande suivante.

sudo -u www-data /var/www/passbolt/bin/cake EmailQueue.sender

Vous pouvez ajouter la commande dans le fichier Crontab de l'utilisateur www-data pour traiter automatiquement les e-mails.

sudo crontab -u www-data -e

Ajoutez la ligne suivante dans le fichier pour traiter les e-mails toutes les minutes.

* * * * * /var/www/passbolt/bin/cake EmailQueue.sender

Enregistrez et fermez le fichier.

(Facultatif) Configuration de ModSecurity

Vous pouvez également configurer le ModSecurity pare-feu d'application Web pour protéger vos applications Web PHP contre le piratage. Si vous utilisez le serveur Web Apache sur Debian/Ubuntu, lisez le tutoriel suivant.

  • Comment configurer ModSecurity avec Apache sur Debian/Ubuntu

Si vous utilisez le serveur Web Nginx sur Debian/Ubuntu, lisez le tutoriel suivant :

  • Comment configurer ModSecurity avec Nginx sur Debian/Ubuntu

Dépannage

Si vous essayez de créer un mot de passe, mais que vous êtes bloqué au « prenez une profonde respiration et profitez du moment présent… ", c'est probablement parce qu'il y a quelque chose qui ne va pas dans votre fichier de configuration Apache ou Nginx. Si vous copiez la configuration Apache/Nginx de l'article, vous ne devriez avoir aucun problème lors de la création du mot de passe.

Si vous avez activé le pare-feu d'application Web ModSecurity et que vous voyez le message Impossible de vérifier la clé du serveur erreur.

alors vous devez ajouter l'exclusion de règle personnalisée suivante dans ModSecurity.

SecRule REQUEST_URI "@streq /auth/verify.json?api-version=v2" "id:1060,phase:2,ctl:ruleRemoveById=942100"

Et redémarrez votre serveur Web.

sudo systemctl restart apache2

ou

sudo systemctl restart nginx

Ubuntu
  1. Comment installer un bureau (GUI) sur un serveur Ubuntu

  2. Comment installer MySQL sur Ubuntu 20.04

  3. Comment installer MySQL sur Ubuntu 18.04

  4. Comment installer TeamPass Password Manager sur Ubuntu 20.04

  5. Comment installer CS-Cart sur Ubuntu 18.04

Comment installer KeePass Password Manager sur Ubuntu 16.04 LTS

Comment installer KeeWeb Password Manager sur Ubuntu 20.04 LTS

Comment installer MYKI Password Manager sur Ubuntu 20.04 LTS

Comment installer Teampass Password Manager sur Ubuntu 20.04 LTS

Comment installer Passbolt Password Manager sur Ubuntu 18.04

Comment installer Bitwarden Password Manager sur Ubuntu 20.04