Ricerca nel sito web

Come installare Passbolt Password Manager su Rocky Linux


Su questa pagina

  1. Prerequisiti
  2. Installa le dipendenze dei pacchetti
  3. Configurazione di MariaDB e PHP-FPM
  4. Crea nuovo database per Passbolt
  5. Scarica Passbolt e installa le dipendenze PHP
  6. Genera chiave GPG per il server
  7. Configurazione dei blocchi server Passbolt e Nginx
  8. Accesso a Passbolt dal browser web
  9. Conclusione

Passbolt è un gestore di password gratuito e open source basato su PHP, MySQL e OpenPGP. È un server delle applicazioni self-hosted, puoi installarlo sul tuo server. Passbolt è progettato principalmente per i team, ma puoi anche usarlo come gestore di password personale.

Passbolt è basato su OpenPGP e ha un'API estensibile. Sul lato client, puoi utilizzare l'estensione del browser Passbolt, che si basa su OpenPGP.js per la funzionalità di crittografia. Sul lato server, Passbolt utilizza l'estensione PHP GnuPG e openpgp-php per eseguire la convalida della chiave e l'autenticazione dell'utente. Passbolt utilizza il protocollo GPGAuth per l'autenticazione dell'utente.

Prerequisiti

In questo articolo imparerai come installare il gestore di password self-hosted Passbolt sul server Rocky Linux. Installerai Passbolt con PHP 7.4, server MariaDB e server web Nginx.

Per questo esempio, utilizzeremo i seguenti dettagli del server:

  • Sistema operativo: Rocky Linux 8.4 (ossidiana verde)
  • Indirizzo IP: 192.168.1.10
  • Nome di dominio, in questo esempio userò: https://pass.example.io

Ora iniziamo l'installazione di Passbolt.

Installa le dipendenze dei pacchetti

In primo luogo, aggiungerai nuovi repository e installerai alcune dipendenze dei pacchetti al sistema Rocky Linux.

1. Eseguire il seguente comando per abilitare il repository PowerTools e installare il repository EPEL (Extra Packages for Enterprise Linux).

sudo dnf config-manager --set-enabled powertools
sudo dnf install epel-release -y

2. Eseguire il seguente comando per abilitare il repository PHP 7.4.

sudo dnf module enable php:7.4 -y

3. Successivamente, installa PHP-FPM, MariaDB, Nginx e alcuni pacchetti aggiuntivi utilizzando il comando DNF di seguito.

sudo dnf install -y nginx mariadb-server mariadb php php-intl php-gd php-mysqlnd php-pear php-devel php-mbstring php-fpm php-json php-ldap gcc gpgme gpgme-devel git policycoreutils-python-utils unzip haveged make gcc

4. Al termine dell'installazione, eseguire il seguente comando per scaricare lo script di installazione del compositore PHP.

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '906a84df04cea2aa72f40b5f787e49f22d4c2f19492ac310e8cba5b96ac8b64115ac402c8cd292b8a03482574915d1a8') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

Ora esegui nuovamente il seguente comando per installare il compositore PHP nell'ambiente di sistema.

php composer-setup.php
sudo mv composer.phar /usr/bin/composer

Controlla il comando del compositore PHP come di seguito.

sudo -u nginx composer --version

Otterrai un output simile al seguente.

Composer version 2.1.12 2021-11-09 16:02:04

5. Successivamente, installa GnuPG PHP Extensions dal repository PECL (PHP Extension Community Library).

pecl install gnupg

Successivamente, abilita l'estensione PHP GnuPG usando il seguente comando.

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

6. Ora avvia e abilita alcuni servizi utilizzando il comando systemctl di seguito.

sudo systemctl enable --now nginx
sudo systemctl enable --now mariadb
sudo systemctl enable --now php-fpm
sudo systemctl enable --now haveged

Ora hai completato l'installazione delle dipendenze dei pacchetti per Passbolt.

Configurazione di MariaDB e PHP-FPM

In questo passaggio, configurerai la password root di MariaDB e il servizio PHP-FPM.

1. Eseguire il seguente comando per impostare la password root di MariaDB.

mysql_secure_installation

Digita una nuova password complessa per l'utente root di MariaDB e ripeti, quindi digita Y per accettare tutte le configurazioni di MariaDB.

2. Successivamente, modifica il file di configurazione /etc/php.ini utilizzando nano editor.

nano /etc/php.ini

Rimuovere il commento dall'opzione date.timezone e modificare il valore con il fuso orario del server.

date.timezone = Europe/Paris

Salva la configurazione ed esci.

3. Modifica la configurazione di PHP-FPM /etc/php-fpm.d/www.conf utilizzando l'editor nano.

nano /etc/php-fpm.d/www.conf

Cambia l'utente e il gruppo predefiniti per PHP-FPM in nginx.

user = nginx
group = nginx

Rimuovere il commento da listen.owner e listen.group e modificare il valore in utente nginx.

listen.owner = nginx
listen.group = nginx

Salva la configurazione ed esci.

Ora applica la nuova configurazione PHP-FPM riavviando il servizio PHP-FPM utilizzando il comando systemctl di seguito.

sudo systemctl restart php-fpm

E hai completato la configurazione di base di PHP-FPM e hai creato una nuova password per l'utente root di MariaDB.

Crea nuovo database per Passbolt

Per creare un nuovo database per l'installazione di Passbolt, accedi alla shell MariaDB utilizzando il comando mysql di seguito.

mysql -u root -p

1. Creare un nuovo database passdb utilizzando la seguente query.

CREATE DATABASE passdb;

2. Concedere tutti i privilegi sul database passdb al nuovo utente. La seguente query creerà automaticamente un nuovo utente MariaDB passbolt.

GRANT ALL ON passdb.* to  IDENTIFIED BY 'PassboltdbPass';

3. Ricarica tutti i privilegi delle tabelle.

FLUSH PRIVILEGES;

Ora digita EXIT e premi Invio per uscire dalla shell MariaDB.

Passare al passaggio successivo per avviare l'installazione di Passbolt.

Scarica Passbolt e installa le dipendenze PHP

Per questo passaggio, scaricherai il codice sorgente di Passbolt sul tuo server e installerai le dipendenze PHP utilizzando il compositore PHP.

1. Modificare la directory di lavoro corrente in /var/www e clonare l'origine Passbolt utilizzando il comando come di seguito.

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

L'installazione di passbolt è /var/www/passbolt

2. Cambia la proprietà della directory di installazione di Passbolt in utente nginx.

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

3. Passare alla directory di installazione di Passbolt e installare le dipendenze PHP utilizzando il comando PHP composer. E assicurati di eseguire il comando PHP composer come utente nginx.

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

Se l'installazione di tutte le dipendenze PHP è stata completata, vai al passaggio successivo per generare la chiave GPG.

Genera chiave GPG per il server

In questo passaggio, genererai una nuova chiave GPG per il server Passbolt.

L'attuale estensione PHP openpgp-php e GnuPG PHP non supportano ancora le passphrase, quindi creerai una nuova chiave GPG senza passphrase.

1. Per generare la chiave GPG, eseguire il comando gpg di seguito.

gpg --gen-key

Digita il tuo nome e indirizzo e-mail e non utilizzare una passphrase.

gpg (GnuPG) 2.2.20; Copyright (C) 2020 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.

Note: Use "gpg --full-generate-key" for a full featured key generation dialog.

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

Real name: johndoe
Email address: >
sub   rsa2048 2021-11-16 [E] [expires: 2023-11-16]

Inoltre, prendi nota dell'impronta digitale della tua nuova chiave. Per questo esempio, l'impronta digitale della chiave è BCD52DF829FF8F9408A2F1B214F31ED1FBEBAD9A.

2. Successivamente, esporta la chiave GPG nella directory di installazione di passbolt /var/www/passbolt/config/gpg/.

gpg --armor --export-secret-keys  > /var/www/passbolt/config/gpg/serverkey.asc

A questo punto, è necessario prendere nota delle informazioni sulla chiave GPG come di seguito.

  • Impronta digitale: BCD52DF829FF8F9408A2F1B214F31ED1FBEBAD9A
  • Email: [email protetta]
  • Chiave pubblica:serverkey.asc
  • Chiave privata:serverkey_private.asc

3. Successivamente, è necessario generare la directory GNUPG per l'utente nginx utilizzando il seguente comando.

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

Vedrai un output simile a quello di seguito.

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

Ora hai completato la configurazione della chiave GPG per Passbolt. Vai al passaggio successivo per la configurazione di Passbolt.

Configurazione dei blocchi server Passbolt e Nginx

In questo passaggio, configurerai il nome di dominio, il database e la chiave GPG dell'installazione di Passbolt.

Prima di iniziare, cambia la tua directory di lavoro nella directory /var/www/passbolt.

export PASSBOLT=/var/www/passbolt/
cd $PASSBOLT

1. Copia la configurazione predefinita in passbolt.php, quindi modificala utilizzando l'editor nano.

cp config/passbolt.default.php config/passbolt.php
nano config/passbolt.php

Modifica l'opzione fullBaseUrl con l'installazione del tuo nome di dominio Passbolt. Per questo esempio è https://pass.example.io

    'App' => [
        // comment

        'fullBaseUrl' => 'https://pass.example.io',
        
        // comment..
    ],

Modifica la configurazione del database con l'utente e la password MariaDB di seguito.

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

Copia e incolla la tua impronta digitale GPG e decommenta le opzioni pubbliche e private.

        'gpg' => [
            //
            // COMMENT REMOVED
            //
            'serverKey' => [
                // Server private key fingerprint.
                'fingerprint' => '38E3736DD02860F8CBA57BB99C8B82A2C3A6959F',
                'public' => CONFIG . 'gpg' . DS . 'serverkey.asc',
                'private' => CONFIG . 'gpg' . DS . 'serverkey_private.asc',
            ],

Salva la configurazione ed esci.

2. Successivamente, crea una nuova configurazione dei blocchi del server Nginx /etc/nginx/conf.d/passbolt.conf utilizzando l'editor nano.

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

Copia e incolla la seguente configurazione e assicurati di modificare il nome di dominio e il percorso dei certificati SSL.

server {
    listen 80;

    server_name pass.example.io;

    return 302 https://$server_name$request_uri;
}

server {
  listen 443 ssl http2;

  server_name pass.example.io;
  root /var/www/passbolt;

  ssl_certificate /etc/letsencrypt/live/pass.example.io/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/pass.example.io/privkey.pem;

  ssl_protocols TLSv1.2;
  ssl_prefer_server_ciphers on;
  ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384;
  ssl_ecdh_curve secp384r1; # Requires nginx >= 1.1.0
  ssl_session_timeout  10m;
  ssl_session_cache shared:SSL:10m;
  ssl_session_tickets off; # Requires nginx >= 1.5.9
  # ssl_stapling on; # Requires nginx >= 1.3.7
  # ssl_stapling_verify on; # Requires nginx => 1.3.7
  resolver 8.8.8.8 8.8.4.4 valid=300s;
  resolver_timeout 5s;
  add_header X-Frame-Options DENY;
  add_header X-Content-Type-Options nosniff;
  add_header X-XSS-Protection "1; mode=block";
 
  location / {
    try_files $uri $uri/ /index.php?$args;
    index index.php;
  }
 
  location ~ \.php$ {
    fastcgi_index           index.php;
    fastcgi_pass            unix:/var/run/php-fpm/www.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;
  }
}

Salva la configurazione ed esci.

Ora verifica la configurazione di Nginx e assicurati di non ricevere errori, quindi riavvia il servizio Nginx.

nginx -t
sudo systemctl restart nginx

3. Successivamente, modifica la directory di lavoro in /var/www/passbolt e avvia l'installazione di Passbolt utilizzando il comando come di seguito.

cd /var/www/passbolt
sudo su -s /bin/bash -c "./bin/cake passbolt install" nginx

Al termine del processo di installazione di Passbolt, creerai un nuovo utente amministratore per Passbolt.

Digita il tuo indirizzo email, nome e cognome. Quindi copia il link di installazione di Passbolt.

Accesso a Passbolt dal browser web

Apri il tuo browser web e incolla il link di installazione di Passbolt generato dal programma di installazione di Passbolt nella barra degli indirizzi.

1. Passbolt rileverà automaticamente il tuo browser web e mostrerà il link di installazione dell'estensione del browser Passbolt.

Fai clic sul pulsante Scarica estensione e installa l'estensione browser Passbolt.

2. Digita una nuova passphrase complessa e fai clic sul pulsante Avanti.

3. Scarica il kit di ripristino sul tuo computer locale e fai clic sul pulsante Avanti. Puoi utilizzare il kit di ripristino per reimpostare la passphrase Passbolt.

4. Scegli il colore del tuo token di sicurezza Passbolt e assicurati di ricordare quelle tre lettere. Fai di nuovo clic sul pulsante Avanti.

5. Ora verrai reindirizzato alla dashboard utente Passbolt come di seguito.

6. Passbolt elenca gli utenti.

E hai completato l'installazione del gestore password Passbolt.

Conclusione

Congratulazioni! Hai installato correttamente il gestore di password Passbolt con PHP-FPM, il server MariaDB e il server Web Nginx su Rocky Linux.

Per il passaggio successivo, puoi creare nuovi utenti passbolt per il tuo team.