GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment installer le gestionnaire de mots de passe auto-hébergé Passbolt sur CentOS 7

Passbolt est un gestionnaire de mots de passe gratuit et open source pour les équipes. Il permet aux membres de l'équipe de stocker et de partager des informations d'identification/mot de passe en toute sécurité. Passbolt est créé avec PHP et peut être exécuté sous la pile LEMP ou exécuté en tant que conteneur docker.

Dans ce didacticiel, nous allons vous montrer étape par étape l'installation et la configuration du gestionnaire de mots de passe open source 'Passbolt' sur le serveur CentOS 7. Passbolt est une application Web développée avec PHP, et nous l'exécuterons sous le LEMP (Linux, Nginx, MySQL/MariaDB et PHP-FPM).

Prérequis

  • CentOS 7
  • Privilèges root

Qu'allons-nous faire ?

  1. Installer les dépendances
  2. Installer et configurer la base de données MariaDB
  3. Installer Nginx et PHP-FPM
  4. Générer SSL Letsencrypt
  5. Configurer Nginx et PHP-FPM
  6. Télécharger Passbolt et générer la clé OpenPGP
  7. Installer Passbolt
  8. Post-installation de Passbolt
  9. Configuration supplémentaire du serveur de sécurité

Étape 1 - Installer les dépendances

La première chose que nous ferons pour ce guide est d'installer toutes les dépendances de packages nécessaires à l'installation de Passbolt, y compris l'installation des référentiels EPEL et Remi PHP, php composer, gcc etc.

Ajoutez le référentiel EPEL.

sudo yum -y install yum-utils epel-release

Ajoutez et activez le référentiel Remi PHP.

sudo yum -y install 'http://rpms.remirepo.net/enterprise/remi-release-7.rpm'
sudo yum-config-manager --enable 'remi-php72'

Installez maintenant les packages de dépendances composer, git gcc etc en utilisant la commande yum ci-dessous.

sudo yum -y install unzip wget composer policycoreutils-python git gcc

Attendez l'installation de tous les packages.

Étape 2 - Installer et configurer MySQL/MariaDB

Dans cette étape, nous allons installer la base de données MariaDB, puis créer une nouvelle base de données et un nouvel utilisateur pour l'installation de Passbolt.

Installez le serveur MariaDB à l'aide de la commande yum ci-dessous.

sudo yum -y install mariadb-server

Une fois l'installation terminée, démarrez le service MariaDB et activez-le pour qu'il se lance à chaque démarrage du système.

sudo systemctl start mariadb
sudo systemctl enable mariadb

Nous devons maintenant configurer le mot de passe 'root' pour MariaDB. Exécutez la commande 'mysql_secure_installation' ci-dessous.

mysql_secure_installation

Tapez votre nouveau mot de passe root.

Et le mot de passe root MariaDB a été configuré.

Ensuite, connectez-vous au shell MySQL en utilisant l'utilisateur 'root'.

mysql -u root -p

Créez une nouvelle base de données et un utilisateur nommé 'passbolt' avec le mot de passe 'hakase-labs', exécutez les requêtes MySQL ci-dessous.

create database passbolt;
grant all on passbolt.* to 'passbolt'@'localhost' identified by 'hakase-labs';
flush privileges;
quit;

Le serveur MariaDB a été installé sur le serveur CentOS 7 et la base de données pour l'installation de 'Passbolt' a été créée.

Étape 3 - Installer Nginx et PHP-FPM

Après avoir installé le serveur MariaDB, nous installerons Nginx à partir du référentiel EPEL et les packages PHP-FPM à l'aide du référentiel Remi.

Installez le serveur Web Nginx.

sudo yum -y install nginx

Une fois l'installation terminée, démarrez le service Nginx et activez-le pour qu'il se lance à chaque démarrage du système.

sudo systemctl start nginx
sudo systemctl enable nginx

Installez maintenant PHP-FPM avec toutes les extensions nécessaires à l'aide de la commande yum ci-dessous.

sudo yum -y install php-fpm php-intl php-gd php-mysql php-mcrypt php-pear php-devel php-mbstring php-fpm gpgme-devel

Et si l'installation est terminée, démarrez le service PHP-FPM et activez-le à chaque démarrage du système.

sudo systemctl start php-fpm
sudo systemctl enable php-fpm

Le serveur Web Nginx et PHP-FPM ont été installés.

Étape 4 - Générer SSL Letsencrypt

Installez l'outil certbot sur le système.

sudo yum -y install certbot

Maintenant, arrêtez le service nginx.

sudo systemctl stop nginx

Et générez SSL Letsencrypt pour le nom de domaine passbolt 'passbolt.hakase.io'.

Exécutez la commande certbot ci-dessous.

sudo certbot certonly --standalone --agree-tos --no-eff-email --email [email protected] -d passbolt.hakase.io

L'outil certbot exécutera un serveur Web temporaire pour la vérification.

Et lorsqu'il sera terminé, vous obtiendrez votre certificat dans le répertoire '/etc/letsencrypt/live/'.

Étape 5 - Configurer Nginx et PHP-FPM

Dans cette étape, nous allons configurer le serveur Web Nginx en créant une nouvelle configuration d'hôte virtuel pour le Passbolt, configurer le PHP-FPM et installer le support PHP GnuPG.

Configurer PHP-FPM

Accédez au répertoire '/etc/php-fpm.d' et modifiez la configuration de pool par défaut 'www.conf' à l'aide de l'éditeur vim.

cd /etc/php-fpm.d/
sudo vim www.conf

Remplacez l'utilisateur et le groupe par défaut par l'utilisateur "nginx".

user = nginx
group = nginx

Modifiez le port d'écoute de PHP-FPM vers le fichier chaussette comme ci-dessous.

listen = /var/run/php-fpm/php-fpm.sock

Décommentez ces lignes ci-dessous et remplacez listen.owner et listen.group pour le fichier sock par 'nginx'.

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

Enregistrez et quittez.

Nous devons maintenant changer le propriétaire du répertoire de session PHP et installer le support de l'extension PHP GnuPG.

Modifiez l'autorisation du répertoire de session php.

sudo chgrp nginx /var/lib/php/session

Installez l'extension PHP GnuPG à l'aide de la commande pecl et activez-la.

sudo pecl install gnupg
echo "extension=gnupg.so" > /etc/php.d/gnupg.ini

L'extension PHP GnuPG a été installée.

Configurer l'hôte virtuel Nginx

Allez dans le répertoire '/etc/nginx/conf.d' et créez un nouveau fichier d'hôte virtuel 'passbolt.conf'.

cd /etc/nginx/conf.d/
sudo vim passbolt.conf

Collez les configurations ci-dessous.

server {
  listen 443;
  server_name passbolt.hakase.io;
  ssl on;
  ssl_certificate     /etc/letsencrypt/live/passbolt.hakase.io/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/passbolt.hakase.io/privkey.pem;
  ssl_protocols TLSv1.2;
  ssl_prefer_server_ciphers on;
  ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS;
  ssl_session_tickets off;
  root /var/www/passbolt;
  
  location / {
    try_files $uri $uri/ /index.php?$args;
    index index.php;
  }
  
  location ~ \.php$ {
    fastcgi_index           index.php;
    fastcgi_pass            unix:/var/run/php-fpm/php-fpm.sock;
    fastcgi_split_path_info ^(.+\.php)(.+)$;
    include                 fastcgi_params;
    fastcgi_param           SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param           SERVER_NAME $http_host;
  }
       
  location ~* \.(jpe?g|woff|woff2|ttf|gif|png|bmp|ico|css|js|json|pdf|zip|htm|html|docx?|xlsx?|pptx?|txt|wav|swf|svg|avi|mp\d)$ {
    access_log off;
    log_not_found off;
    try_files $uri /webroot/$uri /index.php?$args;
  }
}

Enregistrez et quittez.

Testez la configuration nginx et assurez-vous qu'il n'y a pas d'erreur.

sudo nginx -t

Maintenant, redémarrez les services Nginx et PHP-FPM.

sudo systemctl restart nginx
sudo systemctl restart php-fpm

Les configurations du serveur Web Nginx et de PHP-FPM ont été effectuées avec succès.

Étape 6 - Télécharger Passbolt et générer la clé OpenPGP

Dans cette étape, nous allons télécharger l'application Web Passbolt et générer une nouvelle clé OpenPGP qui sera utilisée pour l'API Passbolt.

Allez dans le répertoire '/var/www' et clonez l'application web passbolt.

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

Installez maintenant le package "haveged" et démarrez le service.

sudo yum -y install haveged
sudo systemctl start haveged

Générez une nouvelle clé OpenPGP à l'aide de la commande gpg ci-dessous.

gpg --gen-key

Tapez vos coordonnées telles que l'e-mail, les jours d'expiration, etc.

Remarque :

  • Les extensions PHP GnuPG ne prennent pas en charge la phrase secrète de la clé OpenPGP, laissez donc la phrase secrète rester vide.

Une fois terminé, vérifiez toutes les clés disponibles et notez "l'empreinte digitale" de votre clé.

gpg --list-keys --fingerprint

Exportez maintenant la clé publique et privée dans le répertoire '/var/www/passbolt'.

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

Et modifiez l'autorisation de toutes ces clés et le propriétaire du répertoire '/var/www/passbolt'.

sudo chmod 640 /var/www/passbolt/config/gpg/serverkey*
sudo chown -R  nginx:nginx /var/www/passbolt

L'application Web Passbolt a été téléchargée et la clé OpenPGP a été créée.

Étape 7 - Installer Passbolt

Avant d'installer toutes les dépendances pour 'Passbolt', nous devons initialiser le trousseau de clés gpg pour l'utilisateur nginx.

Exécutez la commande ci-dessous.

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

Connectez-vous maintenant à l'utilisateur 'nginx' et accédez au répertoire '/var/www/passbolt'.

su -s /bin/bash nginx
cd /var/www/passbolt/

Installez toutes les dépendances de passbolt à l'aide de la commande composer ci-dessous.

composer install --no-dev

Une fois terminé, copiez le fichier de configuration par défaut de l'application et modifiez-le avec vim.

cp config/passbolt.default.php config/passbolt.php
vim config/passbolt.php

Dans la section "Application", remplacez le nom de domaine par votre propre nom de domaine.

    'App' => [
        // A base URL to use for absolute links.
        // The url where the passbolt instance will be reachable to your end users.
        // This information is need to render images in emails for example
        'fullBaseUrl' => 'https://passbolt.hakase.io',
    ],

Dans la configuration "Sources de données", saisissez les informations de votre base de données de détails.

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

Sous la configuration de la base de données, ajoutez une nouvelle configuration 'ssl' pour forcer toutes les connexions à sécuriser https.

    'ssl' => [
        'force' => true,
    ],

Pour la configuration de la messagerie SMTP, changez tout avec vos coordonnées.

    // Email configuration.
    'EmailTransport' => [
        'default' => [
            'host' => 'localhost',
            'port' => 25,
            'username' => 'user',
            'password' => 'secret',
            // Is this a secure connection? true if yes, null if no.
            'tls' => null,
            //'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',
        ],
    ],

Et enfin, collez l'empreinte digitale de votre clé OpenPGP et décommentez ces lignes de configuration publiques et privées.

            'serverKey' => [
                // Server private key fingerprint.
                'fingerprint' => '63BA4EBB65126A6BE334075DD210E985E2ED02E5',
                'public' => CONFIG . 'gpg' . DS . 'serverkey.asc',
                'private' => CONFIG . 'gpg' . DS . 'serverkey_private.asc',
            ],

Enregistrez et quittez.

Installez maintenant 'Passbolt' en utilisant la commande ci-dessous.

./bin/cake passbolt install

Il vous sera demandé de créer un nouvel utilisateur administrateur et un mot de passe - saisissez vos informations.

Et à la fin, vous recevrez le lien "inscription", notez-le sur votre note.

Étape 8 - Après l'installation de Passbolt

Ouvrez votre navigateur Web et installez les extensions "Passbolt" de votre navigateur Web.

Voici le lien de l'extension passbolt pour le navigateur Chrome. Installez l'extension.

https://chrome.google.com/webstore/detail/passbolt-extension

Ouvrez maintenant un nouvel onglet et collez le lien "inscription" donné dans la barre d'adresse. Le mien était :

https://passbolt.hakase.io/setup/install/b830cc87-1aa5-4f6f-95f4-9be21accdefa/103001a4-39a1-4bb9-866c-822ac0f7c76f

Et vous obtiendrez une page similaire à celle illustrée ci-dessous.

Cochez la case en bas et cliquez sur le bouton "Suivant". Il vous sera alors demandé de créer une nouvelle clé pour l'utilisateur.

Cliquez sur le bouton "Suivant".

Configurez la "phrase de passe", saisissez votre phrase de passe forte.

Cliquez sur le bouton 'Suivant'. Sauvegardez votre clé en appuyant sur le bouton "Télécharger" et cliquez à nouveau sur "Suivant".

Pour le jeton de sécurité, laissez-le par défaut et cliquez sur "Suivant".

Et vous serez redirigé vers la page de connexion Passbolt.

Tapez votre 'Passphrase' et cliquez sur 'Connexion'. Et vous verrez le tableau de bord utilisateur Passbolt comme ci-dessous.

L'installation du gestionnaire de mots de passe open source Passbolt sur CentOS 7 s'est terminée avec succès.

Étape 9 - Configuration supplémentaire du serveur de sécurité

- Configurer le pare-feu

Ouvrez de nouveaux ports HTTP, HTTPS et SMTP sur le serveur.

sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-service=https --permanent
sudo firewall-cmd --add-service=smtp --permanent

Rechargez maintenant la configuration du pare-feu.

sudo firewall-cmd --reload

- Configurer l'autorisation Selinux

Autorisation pour le répertoire webroot 'Passbolt'.

sudo semanage fcontext -a -t httpd_sys_content_t '/var/www(/.*)?'
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/passbolt/tmp(/.*)?'
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/passbolt/logs(/.*)?'
sudo restorecon -Rv /var/www

Autorisation pour le répertoire de trousseau de clés Nginx gnupg.

sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/lib/nginx/.gnupg(/.*)?'
sudo restorecon -Rv /var/lib/nginx/.gnupg

Cent OS
  1. Comment installer Vagrant sur CentOS 7

  2. Comment installer Gitea sur CentOS 8

  3. Comment installer Memcached sur CentOS 8

  4. Comment installer Nginx sur CentOS 7

  5. Comment installer ownCloud sur CentOS 8

Comment installer le gestionnaire de mots de passe auto-hébergé Passbolt sur CentOS 8

Comment installer le gestionnaire de mots de passe auto-hébergé Passbolt sur Debian 11

Comment installer Zoom sur CentOS 8

Comment installer Nethogs sur CentOS

Comment installer Yourls dans CentOS 8

Comment installer Passbolt Password Manager sur Ubuntu 18.04