Passbolt è un gestore di password gratuito e open source per i team. Consente ai membri del team di archiviare e condividere credenziali/password in modo sicuro. Passbolt viene creato con PHP e può essere eseguito sotto lo stack LEMP o eseguito come contenitore docker.
In questo tutorial, ti mostreremo passo dopo passo l'installazione e la configurazione del gestore di password open source "Passbolt" sul server CentOS 7. Passbolt è un'applicazione web sviluppata con PHP e la eseguiremo sotto LEMP (Linux, Nginx, MySQL/MariaDB e PHP-FPM).
Prerequisiti
- CentOS 7
- Privilegi di root
Cosa faremo?
- Installa dipendenze
- Installa e configura il database MariaDB
- Installa Nginx e PHP-FPM
- Genera SSL Letsencrypt
- Configura Nginx e PHP-FPM
- Scarica Passbolt e genera la chiave OpenPGP
- Installa Passbolt
- Post-installazione Passbolt
- Configurazione aggiuntiva del server di sicurezza
Passaggio 1:installazione delle dipendenze
La prima cosa che faremo per questa guida è installare tutte le dipendenze dei pacchetti necessarie per l'installazione di Passbolt, inclusa l'installazione di repository PHP EPEL e Remi, compositore php, gcc ecc.
Aggiungi il repository EPEL.
sudo yum -y install yum-utils epel-release
Aggiungi e abilita il repository Remi PHP.
sudo yum -y install 'http://rpms.remirepo.net/enterprise/remi-release-7.rpm'
sudo yum-config-manager --enable 'remi-php72'
Ora installa le dipendenze dei pacchetti composer, git gcc ecc. usando il comando yum di seguito.
sudo yum -y install unzip wget composer policycoreutils-python git gcc
Attendi l'installazione di tutti i pacchetti.
Passaggio 2:installazione e configurazione di MySQL/MariaDB
In questo passaggio, installeremo il database MariaDB e quindi creeremo un nuovo database e un nuovo utente per l'installazione di Passbolt.
Installa il server MariaDB usando il comando yum di seguito.
sudo yum -y install mariadb-server
Al termine dell'installazione, avvia il servizio MariaDB e abilitalo all'avvio ogni volta all'avvio del sistema.
sudo systemctl start mariadb
sudo systemctl enable mariadb
Ora dobbiamo configurare la password 'root' per MariaDB. Esegui il comando 'mysql_secure_installation' di seguito.
mysql_secure_installation
Digita la tua nuova password di root.
E la password di root di MariaDB è stata configurata.
Quindi, accedi alla shell MySQL usando l'utente 'root'.
mysql -u root -p
Crea un nuovo database e un utente chiamato "passbolt" con password "hakase-labs", esegui query MySQL di seguito.
create database passbolt;
grant all on passbolt.* to 'passbolt'@'localhost' identified by 'hakase-labs';
flush privileges;
quit;
Il server MariaDB è stato installato sul server CentOS 7 ed è stato creato il database per l'installazione "Passbolt".
Fase 3 - Installa Nginx e PHP-FPM
Dopo aver installato il server MariaDB, installeremo Nginx dal repository EPEL e i pacchetti PHP-FPM utilizzando il repository Remi.
Installa il server web Nginx.
sudo yum -y install nginx
Al termine dell'installazione, avvia il servizio Nginx e abilitalo all'avvio ogni volta all'avvio del sistema.
sudo systemctl start nginx
sudo systemctl enable nginx
Ora installa PHP-FPM con tutte le estensioni necessarie usando il comando yum qui sotto.
sudo yum -y install php-fpm php-intl php-gd php-mysql php-mcrypt php-pear php-devel php-mbstring php-fpm gpgme-devel
E se l'installazione è completa, avvia il servizio PHP-FPM e abilitalo all'avvio ogni volta all'avvio del sistema.
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
Il server web Nginx e PHP-FPM sono stati installati.
Fase 4:genera SSL Letsencrypt
Installa lo strumento certbot sul sistema.
sudo yum -y install certbot
Ora interrompi il servizio nginx.
sudo systemctl stop nginx
E genera SSL Letsencrypt per il nome di dominio passbolt 'passbolt.hakase.io'.
Esegui il comando certbot di seguito.
sudo certbot certonly --standalone --agree-tos --no-eff-email --email [email protected] -d passbolt.hakase.io
Lo strumento certbot eseguirà un server Web temporaneo per la verifica.
E quando sarà completo, otterrai il tuo certificato nella directory '/etc/letsencrypt/live/'.
Passaggio 5 - Configura Nginx e PHP-FPM
In questo passaggio, configureremo il server web Nginx creando una nuova configurazione di host virtuale per Passbolt, configureremo PHP-FPM e installeremo il supporto PHP GnuPG.
Configura PHP-FPM
Vai alla directory '/etc/php-fpm.d' e modifica la configurazione predefinita del pool 'www.conf' utilizzando l'editor vim.
cd /etc/php-fpm.d/
sudo vim www.conf
Cambia l'utente e il gruppo predefiniti con l'utente 'nginx'.
user = nginx group = nginx
Cambia la porta in ascolto per PHP-FPM nel file sock come di seguito.
listen = /var/run/php-fpm/php-fpm.sock
Decommenta quelle righe sottostanti e cambia listen.owner e listen.group per il file sock in 'nginx'.
listen.owner = nginx listen.group = nginx listen.mode = 0660
Salva ed esci.
Ora dobbiamo cambiare il proprietario della directory di sessione PHP e installare il supporto dell'estensione PHP GnuPG.
Modifica l'autorizzazione della directory della sessione php.
sudo chgrp nginx /var/lib/php/session
Installa l'estensione PHP GnuPG usando il comando pecl e attivalo.
sudo pecl install gnupg
echo "extension=gnupg.so" > /etc/php.d/gnupg.ini
L'estensione PHP GnuPG è stata installata.
Configura host virtuale Nginx
Vai alla directory '/etc/nginx/conf.d' e crea un nuovo file host virtuale 'passbolt.conf'.
cd /etc/nginx/conf.d/
sudo vim passbolt.conf
Incolla le configurazioni di seguito.
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; } }
Salva ed esci.
Testa la configurazione di nginx e assicurati che non ci siano errori.
sudo nginx -t
Ora riavvia entrambi i servizi Nginx e PHP-FPM.
sudo systemctl restart nginx
sudo systemctl restart php-fpm
Le configurazioni del server web Nginx e di PHP-FPM sono state completate con successo.
Passaggio 6:scarica Passbolt e genera la chiave OpenPGP
In questo passaggio, scaricheremo l'applicazione web passbolt e genereremo una nuova chiave OpenPGP che verrà utilizzata per l'API Passbolt.
Vai alla directory '/var/www' e clona l'applicazione web passbolt.
cd /var/www/
git clone https://github.com/passbolt/passbolt_api.git passbolt/
Ora installa il pacchetto 'haveged' e avvia il servizio.
sudo yum -y install haveged
sudo systemctl start haveged
Genera una nuova chiave OpenPGP usando il comando gpg qui sotto.
gpg --gen-key
Digita i tuoi dati come email, giorni di scadenza ecc.
Nota:
- Le estensioni PHP GnuPG non supportano la passphrase della chiave OpenPGP, quindi lascia che la passphrase rimanga vuota.
Al termine, controlla tutte le chiavi disponibili e annota l'"impronta digitale" della tua chiave.
gpg --list-keys --fingerprint
Ora esporta la chiave pubblica e privata nella directory '/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
E cambia tutte le autorizzazioni per le chiavi e il proprietario della directory '/var/www/passbolt'.
sudo chmod 640 /var/www/passbolt/config/gpg/serverkey*
sudo chown -R nginx:nginx /var/www/passbolt
L'applicazione web Passbolt è stata scaricata ed è stata creata la chiave OpenPGP.
Passaggio 7:installazione di Passbolt
Prima di installare tutte le dipendenze per "Passbolt", è necessario inizializzare il keyring della chiave gpg per l'utente nginx.
Esegui il comando seguente.
sudo su -s /bin/bash -c "gpg --list-keys" nginx
Ora accedi all'utente 'nginx' e vai alla directory '/var/www/passbolt'.
su -s /bin/bash nginx
cd /var/www/passbolt/
Installa tutte le dipendenze passbolt utilizzando il comando compositore di seguito.
composer install --no-dev
Al termine, copia il file di configurazione predefinito dell'app e modificalo con vim.
cp config/passbolt.default.php config/passbolt.php
vim config/passbolt.php
Nella sezione "App", cambia il nome di dominio con il tuo nome di dominio.
'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', ],
Nella configurazione "Fonti dati", digita le informazioni sul database dei dettagli.
// Database configuration. 'Datasources' => [ 'default' => [ 'host' => 'localhost', //'port' => 'non_standard_port_number', 'username' => 'passbolt', 'password' => 'hakase-labs', 'database' => 'passbolt', ], ],
Nella configurazione del database, aggiungi una nuova configurazione 'ssl' per forzare tutte le connessioni a proteggere https.
'ssl' => [ 'force' => true, ],
Per la configurazione della posta SMTP, cambia tutto con i tuoi dati.
// 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', ], ],
Infine, incolla l'impronta digitale della tua chiave OpenPGP e decommenta quelle righe di configurazione pubbliche e private.
'serverKey' => [ // Server private key fingerprint. 'fingerprint' => '63BA4EBB65126A6BE334075DD210E985E2ED02E5', 'public' => CONFIG . 'gpg' . DS . 'serverkey.asc', 'private' => CONFIG . 'gpg' . DS . 'serverkey_private.asc', ],
Salva ed esci.
Ora installa "Passbolt" usando il comando seguente.
./bin/cake passbolt install
Ti verrà chiesto di creare un nuovo utente e una password amministratore:digita i tuoi dettagli.
E alla fine ti verrà dato il link 'registrazione', scrivilo sulla tua nota.
Fase 8 - Post-installazione Passbolt
Apri il tuo browser web e installa le estensioni "Passbolt" del tuo browser web.
Di seguito è riportato il collegamento dell'estensione passbolt per il browser Chrome. Installa l'estensione.
https://chrome.google.com/webstore/detail/passbolt-extension
Ora apri una nuova scheda e incolla il link "registrazione" fornito nella barra degli indirizzi. Il mio era:
https://passbolt.hakase.io/setup/install/b830cc87-1aa5-4f6f-95f4-9be21accdefa/103001a4-39a1-4bb9-866c-822ac0f7c76f
E avrai una pagina simile a quella mostrata di seguito.
Seleziona la casella in basso e fai clic sul pulsante "Avanti". Ora ti verrà chiesto di creare una nuova chiave per l'utente.
Fare clic sul pulsante "Avanti".
Imposta la "passphrase", digita la tua passphrase forte.
Fare clic sul pulsante "Avanti". Eseguire il backup della chiave premendo il pulsante "Download" e fare nuovamente clic su "Avanti".
Per il token di sicurezza, lascialo predefinito e fai clic su "Avanti".
E verrai reindirizzato alla pagina di accesso di Passbolt.
Digita la tua "Passphrase" e fai clic su "Accedi". E vedrai la dashboard utente Passbolt come di seguito.
L'installazione del gestore password open source Passbolt su CentOS 7 è stata completata correttamente.
Passaggio 9 - Configurazione aggiuntiva di Security Server
- Imposta il firewall
Apri nuove porte HTTP, HTTPS e SMTP sul server.
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-service=https --permanent
sudo firewall-cmd --add-service=smtp --permanent
Ora ricarica la configurazione del firewalld.
sudo firewall-cmd --reload
- Imposta l'autorizzazione Selinux
Autorizzazione per la directory 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
Autorizzazione per la directory del portachiavi Nginx gnupg.
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/lib/nginx/.gnupg(/.*)?'
sudo restorecon -Rv /var/lib/nginx/.gnupg