Instalar y configurar Passbolt Team Password Manager en Ubuntu 20.04
Passbolt es un administrador de contraseñas gratuito, de código abierto, autohospedado y extensible que lo ayuda a compartir y almacenar de manera segura las credenciales de inicio de sesión, como la contraseña del enrutador, el sitio web, Wi-Fi y más. Es diferente de otros administradores de contraseñas. se centra en el uso del equipo en lugar de los individuos. Está disponible tanto en la comunidad como en la edición de pago. Ofrece muchas características, algunas de ellas se enumeran a continuación:
- Proporciona extensiones para Firefox y Google Chrome.
- Utilice OpenPGP para cifrar la contraseña.
- Interfaz web simple y fácil de usar.
- Permite importar y exportar contraseñas.
- Permite agregar credenciales de inicio de sesión manualmente.
En este tutorial, explicaremos cómo instalar Passbolt Password Manager con Apache y Let’s Encrypt en Ubuntu 20.04.
requisitos previos
- Un servidor con Ubuntu 20.04.
- Un nombre de dominio válido apuntado con la IP de su servidor.
- Se configura una contraseña de root en el servidor.
Instalar servidor LAMP
Primero, deberá instalar el servidor Apache y MariaDB en su sistema. Puedes instalarlos con el siguiente comando:
apt-get install apache2 mariadb-server -y
Después de instalar los paquetes anteriores, también deberá instalar PHP y otros paquetes necesarios en su sistema.
De forma predeterminada, Ubuntu 20.04 viene con PHP7.4 en su repositorio predeterminado. Sin embargo, Passbolt no es compatible con PHP7.4. Por lo tanto, deberá agregar el repositorio de PHP en su sistema.
Primero, instale los paquetes requeridos con el siguiente comando:
apt-get install software-properties-common gnupg -y
A continuación, agregue el repositorio de PHP con el siguiente comando:
add-apt-repository ppa:ondrej/php --yes
A continuación, instale la versión 7.3 de PHP con Composer y otras extensiones requeridas con el siguiente comando:
apt-get install php7.3 php7.3-mysql libapache2-mod-php7.3 php7.3-intl php7.3-mbstring php7.3-gd php7.3-imagick php7.3-xml php7.3-common php7.3-curl php7.3-json php7.3-ldap php7.3-gnupg zlib1g unzip git composer curl -y
Una vez que todos los paquetes estén instalados, puede continuar con el siguiente paso.
Configurar la base de datos MariaDB
Primero, deberá asegurar la instalación de MariaDB y configurar la contraseña raíz de MariaDB. Puedes hacerlo con el siguiente comando:
mysql_secure_installation
Este script establecerá la contraseña raíz de MariaDB, eliminará a los usuarios anónimos, no permitirá el inicio de sesión raíz de forma remota y eliminará la base de datos de prueba y accederá a ella como se muestra a continuación:
Enter current password for root (enter for none): OK, successfully used password, moving on... Set root password? [Y/n] Y Remove anonymous users? [Y/n] Y Disallow root login remotely? [Y/n] Y Remove test database and access to it? [Y/n] Y Reload privilege tables now? [Y/n] Y
Una vez que MariaDB esté protegida, inicie sesión en el shell de MariaDB con el siguiente comando:
mysql -u root -p
Proporcione su contraseña raíz cuando se le solicite, luego cree una base de datos y un usuario para Passbolt con el siguiente comando:
MariaDB [(none)]> CREATE DATABASE passboltdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; MariaDB [(none)]> GRANT ALL on passboltdb.* to [email protected] identified by 'password';
A continuación, elimine los privilegios y salga de MariaDB con el siguiente comando:
MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> EXIT;
Una vez que haya terminado, puede continuar con el siguiente paso.
Descargar y configurar Passbolt
En esta sección, aprenderemos cómo descargar y configurar passbolt:
Descargar Passbolt
Primero, descargue la última versión de Passbolt en el directorio raíz web de Apache con el siguiente comando:
mkdir /var/www/passbolt git clone https://github.com/passbolt/passbolt_api.git /var/www/passbolt
Una vez descargado, cambie la propiedad del passbolt a www-data con el siguiente comando:
chown -R www-data:www-data /var/www/
Luego, cambie el directorio a passbolt e instale las dependencias requeridas con el siguiente comando:
cd /var/www/passbolt sudo -u www-data composer install --no-dev
Deberías obtener el siguiente resultado:
> Cake\Composer\Installer\PluginInstaller::postAutoloadDump 9 packages you are using are looking for funding. Use the `composer fund` command to find out more! thadafinser/package-info: Generating class... thadafinser/package-info: ...generating class > App\Console\Installer::postInstall Created `config/app.php` file Created `/var/www/passbolt/logs` directory Created `/var/www/passbolt/tmp/cache/models` directory Created `/var/www/passbolt/tmp/cache/persistent` directory Created `/var/www/passbolt/tmp/cache/views` directory Created `/var/www/passbolt/tmp/sessions` directory Created `/var/www/passbolt/tmp/tests` directory Set Folder Permissions ? (Default to Y) [Y,n]? Y
Escribe Y y golpear Ingresar para establecer los permisos de la carpeta.
Generar clave OpenPGP
A continuación, deberá generar la clave OpenPGP para autenticar y firmar las solicitudes JSON salientes. Puedes generarlo con el siguiente comando:
cd /var/www/passbolt gpg --full-generate-key
Durante el proceso, se le pedirá la frase de contraseña, simplemente presione la tecla Tab, seleccione OK y confirme que no desea configurarlo, porque el módulo php-gnupg no admite el uso de frases de contraseña en este momento.
gpg (GnuPG) 2.2.19; Copyright (C) 2019 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. gpg: directory '/root/.gnupg' created gpg: keybox '/root/.gnupg/pubring.kbx' created Please select what kind of key you want: (1) RSA and RSA (default) (2) DSA and Elgamal (3) DSA (sign only) (4) RSA (sign only) (14) Existing key from card Your selection? 1 RSA keys may be between 1024 and 4096 bits long. What keysize do you want? (3072) 4096 Requested keysize is 4096 bits Please specify how long the key should be valid. 0 = key does not expire = key expires in n days w = key expires in n weeks m = key expires in n months y = key expires in n years Key is valid for? (0) 0 Key does not expire at all Is this correct? (y/N) y GnuPG needs to construct a user ID to identify your key. Real name: Hitesh Email address: [email protected] Comment: Hi You selected this USER-ID: "Hitesh (Hi) <[email protected]>" Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy. We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy. gpg: /root/.gnupg/trustdb.gpg: trustdb created gpg: key 2DA8E7FB8E23B2FD marked as ultimately trusted gpg: directory '/root/.gnupg/openpgp-revocs.d' created gpg: revocation certificate stored as '/root/.gnupg/openpgp-revocs.d/9622291A72D99A4EC78ABCB92DA8E7FB8E23B2FD.rev' public and secret key created and signed. pub rsa4096 2020-07-25 [SC] D2394A45B7CBBAB7F00CC79B23D4750486780854 uid Hitesh (Hi) <[email protected]> sub rsa4096 2020-07-25 [E]
Recuerde la huella digital de la clave pública anterior, ya que la necesitará más adelante en la configuración.
A continuación, exporte la clave pública y privada al directorio ‘/var/www/passbolt’ con los siguientes comandos:Publicidad
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
A continuación, deberá inicializar el conjunto de claves de la clave gpg para el usuario de Apache. Puedes hacerlo con el siguiente comando:
sudo su -s /bin/bash -c "gpg --list-keys" www-data
Deberías obtener el siguiente resultado:
gpg: directory '/var/www/.gnupg' created gpg: keybox '/var/www/.gnupg/pubring.kbx' created gpg: /var/www/.gnupg/trustdb.gpg: trustdb created
Configurar contraseña
Primero, copie el archivo de configuración de ejemplo de Passbolt con el siguiente comando:
cp /var/www/passbolt/config/passbolt{.default,}.php
A continuación, edite el archivo de configuración de Passbolt con el siguiente comando:
nano /var/www/passbolt/config/passbolt.php
Defina su fullbaseurl, base de datos y huella digital de clave pública como se muestra a continuación:
'fullBaseUrl' => 'https://passbolt.linuxbuz.com', // Configuración de la base de datos. 'Fuentes de datos' => [ 'default' => [ 'host' => 'localhost', //'port' => 'non_standard_port_number', 'username' => 'passbolt', 'password' => 'password', 'database' => 'passboltdb', 'serverKey' => [ // Server private key fingerprint. 'fingerprint' => 'D2394A45B7CBBAB7F00CC79B23D4750486780854', 'public' => CONFIG . 'gpg' . DS . 'serverkey.asc', 'private' => CONFIG . 'gpg' . DS . 'serverkey_private.asc',
Save and close the file when you are finished.
If you don’t remember your public key fingerprint you can fetch it with the following command:
gpg --list-keys --fingerprint | grep -i -B 2 [email protected]
Deberías obtener el siguiente resultado:
gpg: checking the trustdb gpg: marginals needed: 3 completes needed: 1 trust model: pgp gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u pub rsa4096 2020-07-25 [SC] D239 4A45 B7CB BAB7 F00C C79B 23D4 7504 8678 0854 uid [ultimate] Hitesh (Hi) <[email protected]>
Configurar Apache para Passbolt
A continuación, deberá crear un archivo de configuración de host virtual de Apache para Passbolt. Puedes crearlo con el siguiente comando:
nano /etc/apache2/sites-available/passbolt.conf
Agregue las siguientes líneas:
<VirtualHost *:80> ServerName passbolt.linuxbuz.com DocumentRoot /var/www/passbolt ErrorLog ${APACHE_LOG_DIR}/passbolt_error.log CustomLog ${APACHE_LOG_DIR}/passbolt_access.log combined <Directory /var/www/passbolt/> Options FollowSymLinks MultiViews AllowOverride All Require all granted </Directory> </VirtualHost>
Guarde y cierre el archivo, luego active el archivo de host virtual y reinicie el servicio Apache con el siguiente comando:
a2ensite passbolt systemctl restart apache2
Cuando haya terminado, puede continuar con el siguiente paso.
Passbolt seguro con Let’s Encrypt
Para proteger su sitio web con Let’s Encrypt SSL, deberá instalar la utilidad de cliente Certbot en su sistema para administrar el certificado SSL.
Puedes instalarlo con el siguiente comando:
apt-get install python3-certbot-apache -y
Una vez instalado, ejecute el siguiente comando para proteger su sitio web con Let’s Encrypt SSL:
certbot --apache -d passbolt.linuxbuz.com
Se le pedirá que proporcione su correo electrónico y acepte el término del servicio como se muestra a continuación:
Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator standalone, Installer None Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): [email protected] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must agree in order to register with the ACME server at https://acme-v02.api.letsencrypt.org/directory - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (A)gree/(C)ancel: A - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Would you be willing to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about our work encrypting the web, EFF news, campaigns, and ways to support digital freedom. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: Y Plugins selected: Authenticator apache, Installer apache Obtaining a new certificate Performing the following challenges: http-01 challenge for passbolt.linuxbuz.com Enabled Apache rewrite module Waiting for verification... Cleaning up challenges Created an SSL vhost at /etc/apache2/sites-available/passbolt-le-ssl.conf Enabled Apache socache_shmcb module Enabled Apache ssl module Deploying Certificate to VirtualHost /etc/apache2/sites-available/passbolt-le-ssl.conf Enabling available site: /etc/apache2/sites-available/passbolt-le-ssl.conf
A continuación, seleccione si desea redirigir o no el tráfico HTTP a HTTPS como se muestra a continuación:
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: No redirect - Make no further changes to the webserver configuration. 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Escribe 2 y golpear Ingresar para instalar Let’s Encrypt SSL para su sitio web:
Enabled Apache rewrite module Redirecting vhost in /etc/apache2/sites-enabled/passbolt.conf to ssl vhost in /etc/apache2/sites-available/passbolt-le-ssl.conf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Congratulations! You have successfully enabled https://passbolt.linuxbuz.com You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=passbolt.linuxbuz.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/passbolt.linuxbuz.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/passbolt.linuxbuz.com/privkey.pem Your cert will expire on 2020-10-23. To obtain a new or tweaked version of this certificate in the future, simply run certbot again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
En este punto, su sitio web está protegido con Let’s Encrypt SSL.
Instalar Passbolt
A continuación, puede instalar Passbolt ejecutando el script de instalación de Passbolt.
Primero, cambie el directorio a /var/www/passbolt:
cd /var/www/passbolt
A continuación, ejecute el script de instalación de Passbolt con el siguiente comando:
sudo su -s /bin/bash -c "./bin/cake passbolt install --no-admin" www-data
Una vez que la instalación se haya completado con éxito, debería obtener el siguiente resultado:
All Done. Took 1.6533s Import the server private key in the keyring --------------------------------------------------------------- Importing /var/www/passbolt/config/gpg/serverkey_private.asc Keyring init OK Passbolt installation success! Enjoy! ?
A continuación, deberá finalizar la configuración de Passbolt desde el navegador. Abra su navegador web y visite la URL https://passbolt.linuxbuz.com. Debería ver la siguiente pantalla:
Aquí, deberá descargar e instalar un complemento para su navegador. Haga clic en Descarga el complemento para descargar e instalar el complemento Passbolt. Una vez instalado, puede continuar con el siguiente paso.
Acceder a la interfaz web de Passbolt
Antes de comenzar, deberá crear un usuario administrador y establecer una contraseña para Passbolt. Puedes hacerlo con el siguiente comando:
cd /var/www/passbolt sudo su -s /bin/bash -c "./bin/cake passbolt register_user -u [email protected] -f howtoforge -l Demo -r admin" www-data
Deberías obtener el siguiente resultado:
____ __ ____ / __ \____ _____ ____/ /_ ____ / / /_ / /_/ / __ `/ ___/ ___/ __ \/ __ \/ / __/ / ____/ /_/ (__ |__ ) /_/ / /_/ / / / /_/ \__,_/____/____/_.___/\____/_/\__/ Open source password manager for teams --------------------------------------------------------------- User saved successfully. To start registration follow the link provided in your mailbox or here: https://passbolt.linuxbuz.com/setup/install/5bcfb186-3d9f-448f-8388-f705abd855c8/a2ba80dc-5ef2-433a-9138-11282747b377
Ahora, copie el enlace del resultado anterior y utilícelo para finalizar la configuración de Passbolt en el navegador. Debería ver la siguiente pantalla:
Confirme que la URL y la huella dactilar de la clave GPG estén bien y haga clic en el próximo botón. Debería ver la siguiente pantalla:
Proporcione el nombre del propietario, el correo electrónico y haga clic en el próximo botón. Debería ver la siguiente pantalla:
Establezca su contraseña y haga clic en el próximo botón. Debería ver la siguiente pantalla:
Descargue su clave secreta y haga clic en el próximo botón. Debería ver la siguiente pantalla:
Establezca un token de seguridad y haga clic en el próximo botón. Debería ver la siguiente pantalla:
Proporcione su nombre de usuario, contraseña y haga clic en el acceso botón. Debería ver el panel de control de Passbolt en la siguiente pantalla:
Conclusión
¡Felicidades! ha instalado con éxito el administrador de contraseñas Passbolt con Let’s Encrypt SSL en el servidor Ubuntu 20.04. Ahora puede almacenar y compartir sus contraseñas con sus equipos y usuarios individuales. No dude en preguntarme si tiene alguna pregunta.