Archiviare, gestire e condividere password in sicurezza
Passbolt è un software open source per la gestione delle password. L’applicazione funziona come un password manager centralizzato che consente agli utenti di creare, gestire e condividere le proprie password in modo sicuro. Il software utilizza la crittografia end-to-end per garantire la massima sicurezza delle password.
Gli utenti di Passbolt possono creare account personali protetti da una master password che permette di accedere alle credenziali da qualsiasi dispositivo.
Con Passbolt è inoltre possibile creare gruppi di lavoro per condividere le password con altri membri del team senza correre il rischio che le credenziali possano essere intercettate e sottratte da soggetti non autorizzati.
Passbolt utilizza il protocollo OpenPGP per crittografare le password rendendole irrecuperabili in chiaro dagli utenti non in possesso delle credenziali corrette; inoltre, il software tiene traccia degli accessi all’archivio delle password e delle modifiche via via apportate.
Ma vediamo come fare.
I prerequisiti
Avremo bisogno di:
- Un server minimo RockyLinux 9.
- Un nome di dominio che punti al server o almeno sia in grado di raggiungere il server attraverso un indirizzo IP statico.
- Un server SMTP funzionante per le notifiche e-mail
- Un servizio NTP funzionante per evitare problemi di autenticazione GPG
I requisiti del server consigliati sono:
- 2 cores
- 2GB di RAM
CONFIGURARE NTP
Per configurare NTP, in RockyLinux è necessario il servizio di chrony solitmente e installato per impostazione predefinita.
Installare il chrony
Come accennato in precedenza, la suite chrony è installata per impostazione predefinita su alcune versioni di RockyLinux 9, per garantire che vi sia, eseguire il seguente comando come root:
# dnf install chrony
La posizione predefinita per il demone chrony è /usr/sbin/chronyd. In /usr/bin/chronyc troveremo il file di avvio.
Per controllare lo stato di chrony, inseriamo il seguente comando:
# systemctl status chronyd
L’output dovrebbe essere qualcosa di simile:
chronyd.service – NTP client/server
Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled)
Active: active (running) since Wed 2013-06-12 22:23:16 CEST; 11h ago
Se non vediamo questo output, per avviare il chrony, digitiamo il seguente comando come root:
# systemctl start –now chronyd
Per garantire che chrony si avvii automaticamente all’avvio del sistema, emettere il seguente comando come root:
# systemctl enable –now chronyd
Per verificare se il chrony è sincronizzato, utilizzare il comando di tracciamento:
chronyc tracking
L’output dovrebbe essere qualcosa di simile:
Reference ID : CB00710F (foo.example.net)
Stratum : 3
Ref time (UTC) : Fri Jan 27 09:49:17 2017
System time : 0.000006523 seconds slow of NTP time
Last offset : -0.000006747 seconds
RMS offset : 0.000035822 seconds
Frequency : 3.225 ppm slow
Residual freq : 0.000 ppm
Skew : 0.129 ppm
Root delay : 0.013639022 seconds
Root dispersion : 0.001100737 seconds
Update interval : 64.2 seconds
Leap status : Normal
REGOLE DEL FIREWALL
Il firewall che useremo in rockylinux e firewlld, iniziamo con l’installarlo
# dnf install firewalld
Visto che lo vogliamo attivo ogni volta ce il server si avvia, digitiamo:
# systemctl enable firewalld
e poi avviamolo
# systemctl start firewalld
Controlliamo che il firewall sia attivo con il comando
# firewall-cmd –state
Dovremmo vedere se tutto è ok questo output
Running
Queste le regole che dovranno essere attivate.
In entrata attiveremo queste porte o servizi
|
HTTP |
80 |
TCP |
|
|
HTTPS |
443 |
TCP |
|
diamo questo comando per visualizzare la liste delle regole applicate di default
# firewall-cmd –list-all
Vedremo un output simile a questo
Output
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0 eth1
sources:
services: cockpit dhcpv6-client ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
Iniazimo con abilitare i servizi necessari in entrata
# firewall-cmd –zone=public –add-service=http –permenent
# firewall-cmd –zone=public –add-service=https –permanent
Controlliamo che le nostre regole siano presenti
# firewall-cmd –zone=public –list-services
Output
cockpit dhcpv6-client http https ssh
Ora riavviamo il firewall in modo che le nuovbe regole vengano fissate
# firewall-cmd –reload
Le regole che andranno applicate sul firewall perimetrale se volessimo pubblicare su internet il nostro server in modo che sia disponibile anche ad utenti esterni sono:
|
HTTP |
80 |
TCP |
|
|
HTTPS |
443 |
TCP |
|
|
SMTP |
Solitamente la 587 |
TCP |
|
|
DNS |
53 |
UDP |
|
|
NTP |
123 |
UDP |
|
|
HKPS |
11371 |
TCP |
Se volessimo pubblicare il servizio all’esterno ed attribuire dei certificati propri dovremmo impostarli prima di iniziare la configurazione. Ovvero decidere una cartella sul server dove posizionare i nostri certificati.
CONFIGURAZIONE DEL REPOSITORY
Per facilitare le attività di installazione e aggiornamento Passbolt dei repository, vediamo come installarli.
Iniziamo con lo scaricare lo script delle dipendenze
# curl -LO https://download.passbolt.com/ce/installer/passbolt-repo-setup.ce.sh
Scarichiamo il nostro SHA512SUM per lo script di installazione:
curl -LO https://github.com/passbolt/passbolt-dep-scripts/releases/latest/download/passbolt-ce-SHA512SUM.txt
Assicuriamoci poi che lo script sia valido e di conseguenza lo installeremo
# sha512sum -c passbolt-ce-SHA512SUM.txt && sudo bash ./passbolt-repo-setup.ce.sh || echo “Bad checksum. Aborting” && rm -f passbolt-repo-setup.ce.sh
INSTALLARE IL PACCHETTO LINUX UFFICIALE DI PASSBOLT
Installaimo il pacchetto vero e proprio di Passbolt
# dnf install passbolt-ce-server
Durante l’installazione, ti verrà chiesto di accettare la chiave GPG del repository Passbolt. È necessario assicurarsi che l’impronta digitale sia esattamente la stessa di quella qui sotto:
Importing GPG key 0xC155581D:
Userid : “Passbolt SA package signing key [email protected]”
Fingerprint: 3D1A 0346 C8E1 802F 774A EF21 DE8B 853F C155 581D
From : https://download.passbolt.com/pub.key
IMPOSTARE MARIADB / NGINX / SSL
Il pacchetto Passbolt CE RPM su RockyLinux 9 è dotato di uno strumento di aiuto alla configurazione per preparare le impostazioni di MariaDB, Nginx e SSL.
È necessario preparare in anticipo i certificati SSL prima di lanciare lo strumento. Assicurati di scrivere l’intero percorso verso la tua combinazione cert / key, in quanto sarà necessario nel processo di configurazione nginx.
Si prega di notare che per questioni di sicurezza consiglio vivamente di impostare SSL per usare passbolt al di fuori della vostra lan
Avviamo passbolt-configure e risposta alle domande:
# /usr/local/bin/passbolt-configure
Configurazione del db MariaDB
================================================================
Do you want to configure a local mariadb server on this machine?
================================================================
1) yes
2) no
#?
Rispondiamo 1 se si vuol configurare un db MAriaDB altriment 2 se abbiamo intenzione di usare un db già esistente.
Se abbiamo scelto 1 (ovvero si), rispondiamo alle domande:
=======================================================
Please enter a new password for the root database user:
=======================================================
MariaDB Root Password: ****
MariaDB Root Password (verify): ****
======================================================
Please enter a name for the passbolt database username
======================================================
Passbolt database user name:passboltuser
=======================================================
Please enter a new password for the mysql passbolt user
=======================================================
MariaDB passbolt user password: ****
MariaDB passbolt user password (verify): ****
==============================================
Please enter a name for the passbolt database:
==============================================
Passbolt database name:passboltdb
Negli ambienti virtualizzati si verifica che GnuPG non trovi abbastanza entropia per generare una chiave. Pertanto, Passbolt non funzionerà correttamente.
Per evitare questo problema dovremmo installare Haveged per accelerare la generazione di entropia.
==================
Install Haveged ?
==================
1) yes
2) no
#?
Rispondiamo con 1 se stiamo installando un VM altrimenti premiamo 2
Installiamo e configuriamo NGINX
Inseriamo il nome di dominio sotto il quale passbolt verrà eseguito.
Nota che questo nome host verrà utilizzato come nome server per nginx e come nome di dominio per registrare il certificato SSL con let encrypt se non si dispone di certificati SSL.
Se non si dispone di un nome di dominio e non si prevede di utilizzare Let’s encrypt inserire l’indirizzo IP per accedere a questa macchina.
=========
Hostname: passbolt.domain.tld
==========
Configurazione di SSL
3 scelte sono disponibili per la configurazione SSL:
- Manuale: Prompts per il percorso dei certificati ssl caricati dall’utente e imposta nginx
- Auto: emetterà un certificato SSL gratuito con https://www.letsencrypt.org e imposta nginx
- Nessuno: non configurare HTTPS
==================
Setting up SSL…
==================
1) manual
2) auto
3) none
#?
Se scegli 11, ti verrà richiesto il percorso completo dei tuoi certificati:
Enter the path to the SSL certificate: /path/to/certs/cert.pem
Enter the path to the SSL privkey: /path/to/certs/key.pem
Nginx e MariaDB sono ora pronti per essere configurati. Alla fine del processo troveremo i parametri per connettersi all’interfaccia web Passbolt per completare la configurazione.
===============================================================
Installation is almost complete. Please point your browser to
https://passbolt.domain.tld to complete the process
===============================================================
CONFIGURARE PASSBOLT
Prima di poter utilizzare l’applicazione, è necessario configurarla. Puntare il browser al nome host / ip di passbolt
Premiamo il pulsante azzurro.
La prima pagina della procedura guidata ti dirà se il tuo ambiente è pronto per il passbolt. Risolvi i problemi se ce ne sono e clicca su “Avvia configurazione” quando è pronto.
Questo passaggio consiste nel dire passbolt quale database utilizzare. Immettere il nome host, il numero di porta, il nome del database, il nome utente e la password. Che abbiamo creato durante la fase di installazione
In questa sezione è possibile generare o importare una coppia di chiavi GPG. Questa coppia di chiavi verrà utilizzata dall’API passbolt per autenticarsi durante il processo di handshake di login. Generare una chiave se non ne avete una.
Opzionale Importazione di chiave già esistente
Importa una chiave se ne hai già una e vuoi che il tuo server la utilizzi.
Per creare una nuova chiave GnuPG senza passphrase:
gpg –batch –no-tty –gen-key <<EOF
Key-Type: default
Key-Length: 3072
Subkey-Type: default
Subkey-Length: 3072
Name-Real: Pippo pippo
Name-Email: [email protected]
Expire-Date: 0
%no-protection
%commit
EOF
Sentiti libero di sostituire Name-Real e Name-Email con il tuo.
Per visualizzare la nuova chiave:
gpg –armor –export-secret-keys [email protected]
Server di posta (SMTP)
In questa fase, la procedura guidata ti chiederà di inserire i dettagli del tuo server SMTP.
Puoi anche verificare che la tua configurazione sia corretta utilizzando la funzione di e-mail di prova a destra dello schermo. Inserisci l’indirizzo email al quale vuoi che la procedura guidata ti invii un’e-mail di prova e fai clic su “Invia e-mail di prova”.
Il wizard ti chiederà quali preferenze preferisci per la tua istanza di passbolt. I valori pre-precomandi consigliati sono già pre-popolati, ma puoi anche cambiarli se sai cosa stai facendo.
Ora possiamo creare il primo account utente di amministratore. Questo primo utente di amministrazione sei probabilmente tu, quindi inserisci i tuoi datie fai clic su Avanti.
Questo e’ tutto. La procedura guidata ha ora abbastanza informazioni per procedere con la configurazione di passbolt. Siediti e rilassati per alcuni secondi mentre il processo di configurazione è in corso.
Il tuo account utente è ora creato. Vedrai una pagina di reindirizzamento per alcuni secondi e poi verrai reindirizzato al processo di configurazione dell’utente in modo da poter configurare il tuo account utente.
Processo di configurazione HTTPS
A seconda delle esigenze ci sono due diverse opzioni per configurare nginx e SSL utilizzando il pacchetto:
- Configura il tuo account amministratore
-
- . Scaricare il plugin
- Prima di continuare passbolt ti richiederà di scaricare il suo plugin. Se lo hai già installato puoi andare al passaggio successivo.
A questo punto Passbolt ti chiederà di creare o importare una chiave che verrà successivamente utilizzata per identificarti e crittografare le tue password. La chiave deve essere protetta da una password. Sceglilo saggiamente, sarà il gatekeeper di tutte le altre password.
Questo passaggio è essenziale. La chiave è l’unico modo per accedere al tuo account e alle password. Se perdi questa chiave, i tuoi dati crittografati andranno persi anche se ricordi la passphrase.
La scelta di un colore e di un token a tre caratteri è un meccanismo di sicurezza secondario che ti aiuta a mitigare gli attacchi di phishing. Ogni volta che si esegue un’operazione sensibile su passbolt, si dovrebbe vedere questo token.
L’account amministratore è configurato. Verrai reindirizzato alla pagina di login di passbolt, ora siamo pronti ad scrivere e condividere tutte le nostre password.
Bene questo è tutto, mi auguro di avervi facilitato la gestione delle vostre password.
Un Saluto
Adam













