GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar Passbolt Password Manager en el servidor Ubuntu 20.04

Passbolt es un administrador de contraseñas autohospedado de código abierto, que le permite almacenar y compartir de forma segura las credenciales de inicio de sesión del sitio web, la contraseña del enrutador, la contraseña de Wi-Fi, etc. Este tutorial le mostrará cómo instalar Passbolt Community Edition (CE) en Ubuntu 20.04 con servidor web Apache o Nginx.

Características de Passbolt

  • Gratis y de código abierto
  • Las contraseñas se cifran con OpenPGP, un estándar criptográfico probado.
  • Las extensiones de navegador están disponibles para Firefox y Google Chrome.
  • Comparta fácilmente las credenciales de inicio de sesión con su equipo sin comprometer la seguridad.
  • Interfaz limpia y fácil de usar.
  • Importar y exportar contraseñas. Puede exportar sus contraseñas a .kdbx o .csv formato de archivo para usar con KeepassX, LastPass o 1password.
  • Puede agregar manualmente las credenciales de inicio de sesión.

Requisitos previos para instalar Passbolt en el servidor Ubuntu 20.04

Passbolt está escrito en PHP y se basa en el servidor de base de datos MySQL/MariaDB. Por lo tanto, debe configurar una pila LAMP o una pila LEMP antes de instalar Passbolt. Si prefiere el servidor web Apache, configure la pila LAMP.

  • Cómo instalar la pila LAMP en Ubuntu 20.04

Si prefiere el servidor web Nginx, configure la pila LEMP.

  • Cómo instalar LEMP Stack en Ubuntu 20.04

También necesita un nombre de dominio, por lo que podrá acceder de forma segura a Passbolt desde cualquier lugar con un navegador web. Registré mi nombre de dominio de NameCheap porque el precio es bajo y ofrecen protección de privacidad whois gratis de por vida.

Después de cumplir con los requisitos anteriores, siga las instrucciones a continuación para instalar Passbolt.

Paso 1:Descargue Passbolt en su servidor Ubuntu 20.04

Si va al sitio web oficial para descargar Passbolt, debe ingresar su nombre y dirección de correo electrónico. Si eso no es lo que le gusta, descargue la última versión estable de Github ejecutando los siguientes comandos en su servidor.

sudo apt install git

cd /var/www/

sudo git clone https://github.com/passbolt/passbolt_api.git

Los archivos se guardarán en passbolt_api directorio. Le cambiamos el nombre a passbolt .

sudo mv passbolt_api passbolt

Luego haga que el usuario del servidor web (www-data ) como propietario de este directorio.

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

Ejecute el siguiente comando para instalar los módulos PHP requeridos o recomendados por Passbolt

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

Luego reinicie Apache. (Si usa Nginx, no necesita reiniciar Nginx).

sudo systemctl restart apache2

Cambiar directorio.

cd /var/www/passbolt/

Instale Composer:el administrador de dependencias de PHP.

sudo apt install composer

Crear directorio de caché para Composer.

sudo mkdir /var/www/.composer

Hacer www-data como propietario.

sudo chown -R www-data:www-data /var/www/.composer

Usa Composer para instalar dependencias.

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

Si le pide que establezca permisos de carpeta, elija Y .

Paso 2:Crear una base de datos MariaDB y un usuario para Passbolt

Inicie sesión en la consola de MariaDB.

sudo mysql -u root

Luego, cree una nueva base de datos para Passbolt usando el siguiente comando. Este tutorial lo llama passbolt , puede usar el nombre que desee para la base de datos. También especificamos utf8mb4 como conjunto de caracteres para admitir emojis y caracteres no latinos.

CREATE DATABASE passbolt DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

El siguiente comando creará un usuario y una contraseña para la base de datos y, al mismo tiempo, otorgará todos los permisos de la nueva base de datos al nuevo usuario para que más adelante Passbolt pueda escribir en la base de datos. Reemplace los textos en rojo con su nombre de base de datos, nombre de usuario y contraseña preferidos.

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

Vacíe la tabla de privilegios y salga de la consola de MariaDB.

FLUSH PRIVILEGES;

EXIT;

Paso 3:generar clave OpenPGP

Si está utilizando un VPS (servidor privado virtual), se recomienda instalar el haged paquete para generar suficiente entropía.

sudo apt install haveged

El haveged.service se iniciará automáticamente después de la instalación. Puede comprobar su estado con:

sudo systemctl status haveged

Luego ejecute el siguiente comando para generar un nuevo par de claves.

gpg --gen-key

Se le pedirá que ingrese su nombre y dirección de correo electrónico. Si se le pide que establezca una frase de contraseña, omítala presionando la tecla Tab y seleccionando Aceptar, porque el módulo php-gnupg no admite el uso de frases de contraseña en este momento.

Copie la clave privada en la ubicación de configuración del passbolt. Reemplazar [email protected] con la dirección de correo electrónico al generar la clave PGP.

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

Y copie también la clave pública.

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

Inicialice los www-data llavero del usuario.

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

Paso 4:Configurar Passbolt

Asegúrate de estar en /var/www/passbolt/ directorio.

cd /var/www/passbolt/

Copie el archivo de configuración de muestra en un archivo de configuración de producción.

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

Edite el archivo de configuración con un editor de texto de línea de comandos, como Nano.

sudo nano config/passbolt.php

Primero, busque la siguiente línea.

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

Reemplace la URL con su propia URL, como https://passbolt.yourdomain.com . No olvide crear un registro DNS A para este subdominio en su administrador de registros DNS.

En la database configuration sección, ingrese el nombre de la base de datos, el nombre de usuario y la contraseña de la base de datos que creó en el paso 2.

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

En la email configuration sección,

  • Especifique el nombre de host SMTP, el número de puerto y las credenciales de inicio de sesión para que su passbolt pueda enviar correos electrónicos. Por lo general, debe usar el puerto 587 para enviar correos electrónicos al servidor SMTP remoto. Asegúrate de configurar tls a true , por lo que la transacción SMTP se cifrará.
  • También configure el From: dirección de correo electrónico y nombre del remitente.
    // 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',
        ],
    ],

Para configurar fácilmente su propio servidor de correo electrónico, consulte el siguiente tutorial.

  • Cómo configurar fácilmente su propio servidor de correo en Ubuntu 20.04 con iRedMail

Nota :Si passbolt está instalado en la misma caja que su servidor de correo, entonces no necesita especificar el nombre de usuario y la contraseña en el EmailTransport . Simplemente use // para comentar estas dos líneas. La siguiente captura de pantalla muestra una configuración de muestra para este escenario.


En la sección gpg, ingrese la huella digital de la clave GPG como se muestra a continuación. Debe eliminar todos los espacios en blanco de la huella digital.

'fingerprint' => '2FC8945833C51946E937F9FED47B0811573EE67E',

Puede obtener la huella digital de su llave con el siguiente comando. Reemplazar [email protected] con su dirección de correo electrónico al generar el par de claves PGP.

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

Después de ingresar la huella digital, descomente las siguientes dos líneas.

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

Guarde y cierre el archivo.

Paso 5:Ejecute el script de instalación

Ejecute el script de instalación como www-data usuario.

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

Durante la instalación, se le pedirá que cree una cuenta de administrador.

Una vez que cree una cuenta, se le proporcionará una URL para finalizar la instalación en el navegador web . Antes de hacer eso, necesitamos configurar el servidor web usando Apache o Nginx.

Paso 6:Cree un host virtual de Apache o un archivo de configuración de Nginx para Passbolt

Apache

Si usa el servidor web Apache, cree un host virtual para Passbolt.

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

Coloque el siguiente texto en el archivo. Reemplace passbolt.example.com con su nombre de dominio real y no olvide establecer un registro DNS A para él. También tenga en cuenta que la raíz web de Passbolt es /var/www/passbolt/webroot/ , no /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>

Guarde y cierre el archivo. Luego habilite este host virtual con:

sudo a2ensite passbolt.conf

Vuelva a cargar Apache para que los cambios surtan efecto.

sudo systemctl reload apache2

Nginx

Si usa el servidor web Nginx, cree un host virtual para Passbolt.

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

Coloque el siguiente texto en el archivo. Reemplace passbolt.example.com con su nombre de dominio real y no olvide establecer un registro DNS A para él. También tenga en cuenta que la raíz web de Passbolt es /var/www/passbolt/webroot/ , no /var/www/passbolt/ .

server {
   listen 80;
   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.4-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;
  }
}

Guarde y cierre el archivo. Luego pruebe la configuración de Nginx.

sudo nginx -t

Si la prueba es exitosa, vuelva a cargar Nginx para que los cambios surtan efecto.

sudo systemctl reload nginx

Paso 7:habilitar HTTPS

Para cifrar el tráfico HTTP, podemos habilitar HTTPS instalando un certificado TLS gratuito emitido por Let's Encrypt. Ejecute el siguiente comando para instalar el cliente Let's Encrypt (certbot) en el servidor Ubuntu 20.04.

sudo apt install certbot

Si usa Nginx, también necesita instalar el complemento Certbot Nginx.

sudo apt install python3-certbot-nginx

A continuación, ejecute el siguiente comando para obtener e instalar el certificado TLS.

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

Si usa Apache, instale el complemento Certbot Apache.

sudo apt install python3-certbot-apache

Y ejecute este comando para obtener e instalar el certificado TLS.

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

donde

  • --nginx :use el complemento nginx.
  • --apache :Utilice el complemento de Apache.
  • --agree-tos :Acepto los términos del servicio.
  • --redirect :Forzar HTTPS por redirección 301.
  • --hsts :agregue el encabezado Strict-Transport-Security a cada respuesta HTTP. Obligar al navegador a usar siempre TLS para el dominio. Protege contra la eliminación de SSL/TLS.
  • --staple-ocsp :activa el grapado OCSP. Se grapa una respuesta OCSP válida al certificado que ofrece el servidor durante TLS.

Ahora se debe obtener el certificado e instalarlo automáticamente.

Paso 8:Finalice la instalación de Passbolt en el navegador web

Primero, debe instalar la extensión Passbolt en su navegador Firefox o Google Chrome.

  • Extensión Passbolt para Firefox
  • Extensión Passbot para Google Chrome

Ahora copia la URL que obtuviste después de ejecutar el script de instalación y pégala en la barra de direcciones de tu navegador. Verá el asistente de configuración basado en la web. El primer paso es asegurarse de que su dominio y la huella digital de la clave del servidor sean correctos.

En el segundo paso, simplemente haga clic en el botón Siguiente para crear una nueva clave.

En el tercer paso, cree una frase de contraseña.

Luego descargue la clave secreta encriptada y guárdela en un lugar seguro. Esta clave solo se puede descifrar usando su frase de contraseña.

En el cuarto paso, configure un token de seguridad.

Finalmente, puede iniciar sesión con su frase de contraseña.

Ahora puede crear una contraseña, importar una contraseña desde un archivo csv o kdbx.

Paso 8:Configure Cron Job para enviar correos electrónicos automáticamente

Para enviar correos electrónicos del sistema, ejecute el siguiente comando.

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

Puede agregar el comando en el archivo Crontab del usuario de www-data para procesar automáticamente los correos electrónicos.

sudo crontab -u www-data -e

Agregue la siguiente línea en el archivo para procesar correos electrónicos cada minuto.

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

Guarde y cierre el archivo.

(Opcional) Configuración de ModSecurity

También puede configurar ModSecurity cortafuegos de aplicaciones web para proteger sus aplicaciones web PHP de la piratería. Si usa el servidor web Apache en Debian/Ubuntu, lea el siguiente tutorial.

  • Cómo configurar ModSecurity con Apache en Debian/Ubuntu

Si usa el servidor web Nginx en Debian/Ubuntu, lea el siguiente tutorial:

  • Cómo configurar ModSecurity con Nginx en Debian/Ubuntu

Resolución de problemas

Si estás tratando de crear una contraseña, pero te quedas atascado en "respira hondo y disfruta del momento presente... ", es probable que haya algún problema en su archivo de configuración de Apache o Nginx. Si copia la configuración de Apache/Nginx del artículo, no debería tener problemas al crear la contraseña.

Si habilitó el firewall de la aplicación web ModSecurity y ve el mensaje No se pudo verificar la clave del servidor error.

entonces debe agregar la siguiente exclusión de regla personalizada en ModSecurity.

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

Y reinicie su servidor web.

sudo systemctl restart apache2

o

sudo systemctl restart nginx

Ubuntu
  1. Cómo instalar un escritorio (GUI) en un servidor Ubuntu

  2. Cómo instalar MySQL en Ubuntu 20.04

  3. Cómo instalar MySQL en Ubuntu 18.04

  4. Cómo instalar TeamPass Password Manager en Ubuntu 20.04

  5. Cómo instalar CS-Cart en Ubuntu 18.04

Cómo instalar KeePass Password Manager en Ubuntu 16.04 LTS

Cómo instalar KeeWeb Password Manager en Ubuntu 20.04 LTS

Cómo instalar MYKI Password Manager en Ubuntu 20.04 LTS

Cómo instalar Teampass Password Manager en Ubuntu 20.04 LTS

Cómo instalar Passbolt Password Manager en Ubuntu 18.04

Cómo instalar Bitwarden Password Manager en Ubuntu 20.04