GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo instalar Passbolt Self-Hosted Password Manager en CentOS 7

Passbolt es un administrador de contraseñas gratuito y de código abierto para equipos. Permite a los miembros del equipo almacenar y compartir credenciales/contraseñas de forma segura. Passbolt se crea con PHP y se puede ejecutar bajo la pila LEMP o como contenedor docker.

En este tutorial, le mostraremos paso a paso la instalación y configuración del administrador de contraseñas de código abierto 'Passbolt' en el servidor CentOS 7. Passbolt es una aplicación web desarrollada con PHP y la ejecutaremos bajo LEMP (Linux, Nginx, MySQL/MariaDB y PHP-FPM).

Requisitos

  • Cent OS 7
  • Privilegios de raíz

¿Qué haremos?

  1. Instalar dependencias
  2. Instalar y configurar la base de datos MariaDB
  3. Instalar Nginx y PHP-FPM
  4. Generar SSL Letsencrypt
  5. Configurar Nginx y PHP-FPM
  6. Descargar Passbolt y generar clave OpenPGP
  7. Instalar Passbolt
  8. Post-instalación de Passbolt
  9. Configuración adicional del servidor de seguridad

Paso 1 - Instalar dependencias

Lo primero que haremos para esta guía es instalar todas las dependencias de paquetes necesarias para la instalación de Passbolt, incluida la instalación de los repositorios EPEL y Remi PHP, php composer, gcc, etc.

Agregue el repositorio EPEL.

sudo yum -y install yum-utils epel-release

Agregue y habilite el repositorio Remi PHP.

sudo yum -y install 'http://rpms.remirepo.net/enterprise/remi-release-7.rpm'
sudo yum-config-manager --enable 'remi-php72'

Ahora instale el compositor de dependencias de paquetes, git gcc, etc. usando el comando yum a continuación.

sudo yum -y install unzip wget composer policycoreutils-python git gcc

Espere a que se instalen todos los paquetes.

Paso 2:instalar y configurar MySQL/MariaDB

En este paso, instalaremos la base de datos MariaDB y luego crearemos una nueva base de datos y un usuario para la instalación de Passbolt.

Instale el servidor MariaDB usando el comando yum a continuación.

sudo yum -y install mariadb-server

Una vez completada la instalación, inicie el servicio MariaDB y habilítelo para que se inicie cada vez que se inicie el sistema.

sudo systemctl start mariadb
sudo systemctl enable mariadb

Ahora necesitamos configurar la contraseña 'root' para MariaDB. Ejecute el siguiente comando 'mysql_secure_installation'.

mysql_secure_installation

Escriba su nueva contraseña raíz.

Y la contraseña raíz de MariaDB ha sido configurada.

A continuación, inicie sesión en el shell de MySQL con el usuario 'raíz'.

mysql -u root -p

Cree una nueva base de datos y un usuario llamado 'passbolt' con la contraseña 'hakase-labs', ejecute las consultas de MySQL a continuación.

create database passbolt;
grant all on passbolt.* to 'passbolt'@'localhost' identified by 'hakase-labs';
flush privileges;
quit;

El servidor MariaDB se instaló en el servidor CentOS 7 y se creó la base de datos para la instalación de 'Passbolt'.

Paso 3:instalar Nginx y PHP-FPM

Después de instalar el servidor MariaDB, instalaremos Nginx desde el repositorio de EPEL y los paquetes PHP-FPM usando el repositorio de Remi.

Instale el servidor web Nginx.

sudo yum -y install nginx

Una vez completada la instalación, inicie el servicio Nginx y permita que se inicie cada vez que se inicie el sistema.

sudo systemctl start nginx
sudo systemctl enable nginx

Ahora instale PHP-FPM con todas las extensiones necesarias usando el comando yum a continuación.

sudo yum -y install php-fpm php-intl php-gd php-mysql php-mcrypt php-pear php-devel php-mbstring php-fpm gpgme-devel

Y si la instalación está completa, inicie el servicio PHP-FPM y actívelo cada vez que inicie el sistema.

sudo systemctl start php-fpm
sudo systemctl enable php-fpm

Se ha instalado el servidor web Nginx y PHP-FPM.

Paso 4:generar SSL Letsencrypt

Instale la herramienta certbot en el sistema.

sudo yum -y install certbot

Ahora detenga el servicio nginx.

sudo systemctl stop nginx

Y genere SSL Letsencrypt para el nombre de dominio passbolt 'passbolt.hakase.io'.

Ejecute el comando certbot a continuación.

sudo certbot certonly --standalone --agree-tos --no-eff-email --email [email protected] -d passbolt.hakase.io

La herramienta certbot ejecutará un servidor web temporal para la verificación.

Y cuando esté completo, obtendrá su certificado en el directorio '/etc/letsencrypt/live/'.

Paso 5:configurar Nginx y PHP-FPM

En este paso, configuraremos el servidor web Nginx mediante la creación de una nueva configuración de host virtual para Passbolt, configuraremos PHP-FPM e instalaremos la compatibilidad con PHP GnuPG.

Configurar PHP-FPM

Vaya al directorio '/etc/php-fpm.d' y edite la configuración de grupo predeterminada 'www.conf' usando el editor vim.

cd /etc/php-fpm.d/
sudo vim www.conf

Cambie el usuario y el grupo predeterminados al usuario 'nginx'.

user = nginx
group = nginx

Cambie el puerto de escucha para PHP-FPM al archivo sock como se muestra a continuación.

listen = /var/run/php-fpm/php-fpm.sock

Descomente esas líneas a continuación y cambie listen.owner y listen.group para el archivo sock a 'nginx'.

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

Guardar y salir.

Ahora necesitamos cambiar el propietario del directorio de la sesión de PHP e instalar el soporte de la extensión PHP GnuPG.

Cambie el permiso del directorio de sesión de php.

sudo chgrp nginx /var/lib/php/session

Instale la extensión PHP GnuPG usando el comando pecl y actívela.

sudo pecl install gnupg
echo "extension=gnupg.so" > /etc/php.d/gnupg.ini

Se ha instalado la extensión PHP GnuPG.

Configurar host virtual Nginx

Vaya al directorio '/etc/nginx/conf.d' y cree un nuevo archivo de host virtual 'passbolt.conf'.

cd /etc/nginx/conf.d/
sudo vim passbolt.conf

Pegue las configuraciones a continuación.

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;
  }
}

Guardar y salir.

Pruebe la configuración de nginx y asegúrese de que no haya ningún error.

sudo nginx -t

Ahora reinicie los servicios Nginx y PHP-FPM.

sudo systemctl restart nginx
sudo systemctl restart php-fpm

Las configuraciones del servidor web Nginx y PHP-FPM se completaron con éxito.

Paso 6:descarga Passbolt y genera la clave OpenPGP

En este paso, descargaremos la aplicación web de passbolt y generaremos una nueva clave OpenPGP que se usará para la API de Passbolt.

Vaya al directorio '/var/www' y clone la aplicación web passbolt.

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

Ahora instale el paquete 'haveged' e inicie el servicio.

sudo yum -y install haveged
sudo systemctl start haveged

Genere una nueva clave OpenPGP con el siguiente comando gpg.

gpg --gen-key

Escriba sus datos, como el correo electrónico, los días de caducidad, etc.

Nota:

  • Las extensiones PHP GnuPG no son compatibles con la frase de contraseña de la clave OpenPGP, así que deje la frase de contraseña en blanco.

Una vez completada, verifique todas las claves disponibles y anote la "huella digital" de su clave.

gpg --list-keys --fingerprint

Ahora exporte la clave pública y privada al directorio '/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

Y cambie el permiso y el propietario de todas esas claves del directorio '/var/www/passbolt'.

sudo chmod 640 /var/www/passbolt/config/gpg/serverkey*
sudo chown -R  nginx:nginx /var/www/passbolt

Se ha descargado la aplicación web Passbolt y se ha creado la clave OpenPGP.

Paso 7:Instalar Passbolt

Antes de instalar todas las dependencias para 'Passbolt', debemos inicializar el conjunto de claves de la clave gpg para el usuario nginx.

Ejecute el siguiente comando.

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

Ahora inicie sesión en el usuario 'nginx' y vaya al directorio '/var/www/passbolt'.

su -s /bin/bash nginx
cd /var/www/passbolt/

Instale todas las dependencias de passbolt usando el siguiente comando composer.

composer install --no-dev

Cuando esté completo, copie el archivo de configuración predeterminado de la aplicación y edítelo con vim.

cp config/passbolt.default.php config/passbolt.php
vim config/passbolt.php

En la sección 'Aplicación', cambie el nombre de dominio con su propio nombre de 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',
    ],

En la configuración de 'Fuentes de datos', escriba la información de su base de datos de detalles.

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

En la configuración de la base de datos, agregue una nueva configuración 'ssl' para forzar todas las conexiones a https seguro.

    'ssl' => [
        'force' => true,
    ],

Para la configuración del correo SMTP, cambie todo con sus datos.

    // 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',
        ],
    ],

Y, por último, pegue la 'huella digital' de su clave OpenPGP y descomente esas líneas de configuración públicas y privadas.

            'serverKey' => [
                // Server private key fingerprint.
                'fingerprint' => '63BA4EBB65126A6BE334075DD210E985E2ED02E5',
                'public' => CONFIG . 'gpg' . DS . 'serverkey.asc',
                'private' => CONFIG . 'gpg' . DS . 'serverkey_private.asc',
            ],

Guardar y salir.

Ahora instale 'Passbolt' usando el siguiente comando.

./bin/cake passbolt install

Se le pedirá que cree un nuevo usuario y contraseña de administrador:escriba sus datos.

Y al final, se le dará el enlace de 'registro', escríbalo en su nota.

Paso 8:instalación posterior de Passbolt

Abra su navegador web e instale las extensiones 'Passbolt' de su navegador web.

El siguiente es el enlace de la extensión passbolt para el navegador Chrome. Instale la extensión.

https://chrome.google.com/webstore/detail/passbolt-extension

Ahora abra una nueva pestaña y pegue el enlace de 'registro' en la barra de direcciones. El mio fue:

https://passbolt.hakase.io/setup/install/b830cc87-1aa5-4f6f-95f4-9be21accdefa/103001a4-39a1-4bb9-866c-822ac0f7c76f

Y aparecerá una página similar a la que se muestra a continuación.

Marque la casilla en la parte inferior y haga clic en el botón 'Siguiente'. Ahora se le pedirá que cree una nueva clave para el usuario.

Haga clic en el botón 'Siguiente'.

Configure la 'Frase de contraseña', escriba su frase de contraseña segura.

Haga clic en el botón 'Siguiente'. Haga una copia de seguridad de su clave presionando el botón 'Descargar' y haga clic en 'Siguiente' nuevamente.

Para el token de seguridad, déjelo predeterminado y haga clic en 'Siguiente'.

Y será redirigido a la página de inicio de sesión de Passbolt.

Escriba su 'Frase de contraseña' y haga clic en 'Iniciar sesión'. Y verá el panel de usuario de Passbolt como se muestra a continuación.

La instalación del administrador de contraseñas de código abierto Passbolt en CentOS 7 se completó con éxito.

Paso 9:configuración del servidor de seguridad adicional

- Configurar el cortafuegos

Abra nuevos puertos HTTP, HTTPS y SMTP en el servidor.

sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-service=https --permanent
sudo firewall-cmd --add-service=smtp --permanent

Ahora vuelva a cargar la configuración del cortafuegos.

sudo firewall-cmd --reload

- Configurar permiso de Selinux

Permiso para el directorio 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

Permiso para el directorio de llaveros Nginx gnupg.

sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/lib/nginx/.gnupg(/.*)?'
sudo restorecon -Rv /var/lib/nginx/.gnupg

Cent OS
  1. Cómo instalar Vagrant en CentOS 7

  2. Cómo instalar Gitea en CentOS 8

  3. Cómo instalar Memcached en CentOS 8

  4. Cómo instalar Nginx en CentOS 7

  5. Cómo instalar ownCloud en CentOS 8

Cómo instalar Passbolt Self-Hosted Password Manager en CentOS 8

Cómo instalar Passbolt Self-Hosted Password Manager en Debian 11

Cómo instalar Zoom en CentOS 8

Cómo instalar Nethogs en CentOS

Cómo instalar Yourls en CentOS 8

Cómo instalar Passbolt Password Manager en Ubuntu 18.04