GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come installare Passbolt Password Manager sul server Ubuntu 18.04

Passbolt è un gestore di password self-hosted open source, che ti consente di condividere e archiviare in modo sicuro le credenziali di accesso del sito Web, la password del router, la password Wi-Fi, ecc. Questo tutorial ti mostrerà come installare Passbolt Community Edition (CE) su Ubuntu 18.04 con server web Apache o Nginx.

Caratteristiche Passbolt

  • Gratuito e open source
  • Le password sono crittografate con OpenPGP, uno standard crittografico collaudato.
  • Estensioni del browser disponibili per Firefox e Google Chrome.
  • Condividi facilmente le credenziali di accesso con il tuo team senza compromettere la sicurezza.
  • Interfaccia pulita e intuitiva.
  • Importa ed esporta password.
  • Puoi aggiungere manualmente le credenziali di accesso.

Potresti aver sentito parlare di altri gestori di password self-hosted come Bitwarden, ma richiede l'installazione di Docker, quindi funziona solo su computer a 64 bit. Questo tutorial di Passbolt funziona su computer sia a 32 bit che a 64 bit.

Prerequisiti per l'installazione di Passbolt su Ubuntu 18.04 Server

Passbolt è scritto in PHP e si basa sul server di database MySQL/MariaDB. Quindi è necessario impostare uno stack LAMP o uno stack LEMP. Se preferisci il server web Apache, configura lo stack LAMP.

  • Come installare lo stack LAMP su Ubuntu 18.04 Server/Desktop

Se preferisci il server web Nginx, configura lo stack LEMP.

  • Come installare lo stack LEMP (Nginx, MariaDB, PHP7.2) su Ubuntu 18.04 LTS

Hai anche bisogno di un nome di dominio, quindi potrai accedere a Passbolt da qualsiasi luogo con un browser web. Ho registrato il mio nome di dominio da NameCheap perché il prezzo è basso e offrono gratuitamente la protezione della privacy di Whois.

Passaggio 1:scarica Passbolt sul tuo server Ubuntu 18.04

Se vai sul sito ufficiale per scaricare Passbolt, devi inserire il tuo nome e indirizzo email. Se non è quello che ti piace, scarica l'ultima versione stabile da Github eseguendo il seguente comando sul tuo server.

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

I file verranno salvati in passbolt_api directory. Lo rinominiamo in passbolt .

sudo mv passbolt_api passbolt

Quindi imposta l'utente del server web (www-data ) come proprietario di questa directory.

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

Cambia directory.

cd /var/www/passbolt/

Installa Composer:il gestore delle dipendenze PHP.

sudo apt install composer

Usa Composer per installare le dipendenze.

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

Se ti chiede di impostare i permessi della cartella, scegli Y .

Fase 2:crea un database MariaDB e un utente per Passbolt

Ora dobbiamo accedere alla console MariaDB e creare un database e un utente per Passbolt. Per impostazione predefinita, il pacchetto MaraiDB su Ubuntu utilizza unix_socket per autenticare l'accesso dell'utente, il che significa sostanzialmente che puoi utilizzare il nome utente e la password del sistema operativo per accedere alla console MariaDB. Quindi puoi eseguire il seguente comando per accedere senza fornire la password di root di MariaDB.

sudo mysql -u root

Quindi, crea un nuovo database per Passbolt usando il comando seguente. Questo tutorial lo chiama passbolt , puoi usare il nome che preferisci per il database. Specifichiamo anche utf8mb4 come set di caratteri per supportare caratteri ed emoji non latini.

CREATE DATABASE passbolt DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Il comando seguente creerà un utente e una password del database e allo stesso tempo concederà tutte le autorizzazioni del nuovo database al nuovo utente in modo che in seguito Passbolt possa scrivere nel database. Sostituisci i testi rossi con il nome del database, il nome utente e la password preferiti.

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

Svuota la tabella dei privilegi ed esci dalla console MariaDB.

FLUSH PRIVILEGES;

EXIT;

Fase 3:installa i moduli PHP richiesti e consigliati.

Esegui il comando seguente per installare i moduli PHP richiesti o consigliati da Passbolt

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

Quindi riavvia Apache. (Se usi Nginx, non è necessario riavviare Nginx.)

sudo systemctl restart apache2

Fase 4:genera la chiave OpenPGP

Se stai utilizzando un VPS (Virtual Private Server), ti consigliamo di installare haveged pacchetto per generare abbastanza entropia.

sudo apt install haveged

Quindi esegui il comando seguente per generare una nuova coppia di chiavi.

gpg --gen-key

Ti verrà chiesto di inserire il tuo nome e indirizzo email. Se ti viene chiesto di impostare una passphrase, premi semplicemente il tasto Tab e seleziona OK, perché il modulo php-gnupg non supporta l'utilizzo della passphrase al momento.

Copia la chiave privata nel percorso di configurazione del passbolt:

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

E copia anche la chiave pubblica.

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

Inizializza i www-data portachiavi dell'utente.

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

Fase 5:Configura Passbolt

Assicurati di essere in /var/www/passbolt/ directory.

cd /var/www/passbolt/

Copia il file di configurazione di esempio in un file di configurazione di produzione.

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

Modifica il file di configurazione con un editor di testo a riga di comando, come Nano.

sudo nano config/passbolt.php

Innanzitutto, trova la riga seguente.

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

Sostituisci l'URL con il tuo URL, ad esempio https://passbolt.yourdomain.com . Non dimenticare di creare un record DNS A per questo sottodominio nel tuo gestore di record DNS.

Nella database configuration sezione, inserisci il nome del database, il nome utente e la password del database che hai creato in precedenza.

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

Nella email configuration sezione,

  • Specifica il nome host SMTP, il numero di porta, le credenziali di accesso, in modo che il tuo passbolt possa inviare e-mail. Di solito è necessario utilizzare la porta 587 per sommare le e-mail al server SMTP remoto. Assicurati di impostare tls su true, in modo che la transazione SMTP venga crittografata.
  • Imposta anche il From: indirizzo email e Nome del mittente.
    // 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',
        ],
    ],

Per configurare facilmente il tuo server di posta elettronica, dai un'occhiata al seguente tutorial.

  • Come configurare rapidamente il tuo server di posta su Ubuntu 18.04 con Modoboa

Nota:se passbolt è installato nella stessa casella del tuo server di posta, non è necessario specificare il nome utente e la password in EmailTransport . Usa semplicemente // per commentare queste due righe. Lo screenshot seguente mostra una configurazione di esempio per questo scenario.


Nella sezione gpg, inserisci l'impronta digitale della chiave GPG come di seguito. Devi eliminare tutti gli spazi bianchi.

'fingerprint' => '2FC8945833C51946E937F9FED47B0811573EE67E',

Puoi ottenere l'impronta digitale della tua chiave con il seguente comando. Sostituisci [email protected] con il tuo indirizzo email durante la generazione della coppia di chiavi PGP.

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

Dopo aver inserito l'impronta digitale, decommenta le due righe seguenti.

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

salva e chiudi il file.

Fase 6:esegui lo script di installazione

Esegui lo script di installazione come www-data utente.

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

Durante l'installazione, ti verrà chiesto di creare un account amministratore.

Dopo aver creato un account, ti verrà fornito un URL per completare l'installazione nel browser web . Prima di farlo, dobbiamo configurare il server web usando Apache o Nginx.

Passaggio 7:crea un host virtuale Apache o un file di configurazione Nginx per Passbolt

Apache

Se utilizzi il server Web Apache, crea un host virtuale per Passbolt.

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

Inserisci il seguente testo nel file. Sostituisci passbolt.example.com con il tuo vero nome di dominio e non dimenticare di impostare un record DNS A per questo. Tieni inoltre presente che la radice web per Passbolt è /var/www/passbolt/webroot/ , non /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>

Salva e chiudi il file. Quindi abilita questo host virtuale con:

sudo a2ensite passbolt.conf

Ricarica Apache per rendere effettive le modifiche.

sudo systemctl reload apache2

Nginx

Se utilizzi il server web Nginx, crea un host virtuale per Passbolt.

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

Inserisci il seguente testo nel file. Sostituisci passbolt.example.com con il tuo vero nome di dominio e non dimenticare di impostare un record DNS A per questo. Tieni inoltre presente che la radice web per Passbolt è /var/www/passbolt/webroot/ , non /var/www/passbolt/ .

server {
   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.2-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;
  }
}

Salva e chiudi il file. Quindi testa la configurazione di Nginx.

sudo nginx -t

Se il test ha esito positivo, ricarica Nginx per rendere effettive le modifiche.

sudo systemctl reload nginx

Fase 8:abilitazione di HTTPS

Per crittografare il traffico HTTP, possiamo abilitare HTTPS installando un certificato TLS gratuito emesso da Let's Encrypt. Esegui il comando seguente per installare il client Let's Encrypt (certbot) sul server Ubuntu 18.04.

sudo apt install certbot

Se usi Nginx, devi anche installare il plugin Certbot Nginx.

sudo apt install python3-certbot-nginx

Quindi, esegui il comando seguente per ottenere e installare il certificato TLS.

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

Se usi Apache, installa il plugin Certbot Apache.

sudo apt install python3-certbot-apache

Ed esegui questo comando per ottenere e installare il certificato TLS.

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

Dove

  • --nginx :usa il plugin nginx.
  • --apache :usa il plugin Apache.
  • --agree-tos :Accetta i termini di servizio.
  • --redirect :Forza HTTPS tramite reindirizzamento 301.
  • --hsts : Aggiungi l'intestazione Strict-Transport-Security a ogni risposta HTTP. Forzare il browser a utilizzare sempre TLS per il dominio. Difende dallo stripping SSL/TLS.
  • --staple-ocsp : Abilita la pinzatura OCSP. Una risposta OCSP valida viene pinzata al certificato offerto dal server durante TLS.

Il certificato dovrebbe ora essere ottenuto e installato automaticamente.

Fase 9:termina l'installazione di Passbolt nel browser Web

Innanzitutto, devi installare l'estensione Passbolt sul tuo browser Firefox o Google Chrome.

  • Estensione Passbolt per Firefox
  • Estensione Passbot per Google Chrome

Ora copia l'URL che hai ottenuto dopo aver eseguito lo script di installazione e incollalo nella barra degli indirizzi del tuo browser. Verrà visualizzata la procedura guidata di configurazione basata sul Web. Il primo passaggio consiste nell'assicurarsi che l'impronta digitale del dominio e della chiave del server sia corretta.

Nel secondo passaggio, fai semplicemente clic sul pulsante Avanti per importare la chiave esistente.

Nel terzo passaggio, crea una passphrase.

Quindi scarica la chiave segreta crittografata e conservala in un luogo sicuro. Questa chiave può essere decifrata solo utilizzando la tua passphrase.

Nel 4° passaggio, imposta un token di sicurezza.

Infine, puoi accedere con la tua passphrase.

Ora puoi creare password, importare password da file csv o kdbx.

Imposta Cron Job per l'invio automatico di e-mail

Per inviare e-mail di sistema, esegui il comando seguente.

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

Puoi aggiungere il comando nel file Crontab dell'utente www-data per elaborare automaticamente le email.

sudo crontab -u www-data -e

Aggiungi la seguente riga nel file per elaborare le email ogni minuto.

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

Salva e chiudi il file.

(Facoltativo) Configurazione di ModSecurity

Potresti anche voler impostare ModSecurity firewall per applicazioni web per proteggere le tue applicazioni web PHP dall'hacking. Se usi il server web Apache su Debian/Ubuntu, leggi il seguente tutorial.

  • Come configurare ModSecurity con Apache su Debian/Ubuntu

Se usi il server web Nginx su Debian/Ubuntu, leggi il seguente tutorial:

  • Come configurare ModSecurity con Nginx su Debian/Ubuntu

Risoluzione dei problemi

Se stai cercando di creare una password, ma sei bloccato sul "fai un respiro profondo e goditi il ​​momento presente... ", è probabile che ci sia qualcosa che non va nel file di configurazione di Apache o Nginx. Se copi la configurazione di Apache/Nginx dall'articolo, non dovresti avere problemi durante la creazione della password.

Se hai abilitato il firewall dell'applicazione Web ModSecurity e viene visualizzato il messaggio Impossibile verificare la chiave del server errore.

quindi devi aggiungere le seguenti esclusioni di regole personalizzate in ModSecurity.

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

E riavvia il tuo server web.

sudo systemctl restart apache2

o

sudo systemctl restart nginx

Ubuntu
  1. Come installare un desktop (GUI) su un server Ubuntu

  2. Come installare MySQL su Ubuntu 20.04

  3. Come installare MySQL su Ubuntu 18.04

  4. Come installare TeamPass Password Manager su Ubuntu 20.04

  5. Come installare CS-Cart su Ubuntu 18.04

Come installare KeePass Password Manager su Ubuntu 16.04 LTS

Come installare KeeWeb Password Manager su Ubuntu 20.04 LTS

Come installare MYKI Password Manager su Ubuntu 20.04 LTS

Come installare Teampass Password Manager su Ubuntu 20.04 LTS

Come installare Passbolt Password Manager su Ubuntu 18.04

Come installare Bitwarden Password Manager su Ubuntu 20.04