GNU/Linux >> Tutoriales Linux >  >> Rocky Linux

Cómo instalar Padloc Password Manager en Rocky Linux 8

Padloc es una solución de administración de contraseñas basada en la nube que le permite acceder y usar sus contraseñas guardadas en múltiples plataformas. Ofrece una interfaz simple y se puede utilizar para guardar sus contraseñas y puede cifrar y almacenar documentos confidenciales. También admite el almacenamiento de tokens de autenticación de dos factores y puede agregarlos directamente desde la página web.

Padloc también ofrece una solución autohospedada de código abierto que puede instalar en cualquier servidor para mantener un control total sobre sus datos. Sin embargo, hay una advertencia a esto. No puede usar la aplicación autohospedada con sus aplicaciones de escritorio y móviles. En el lado positivo, Padloc se sirve como una PWA (aplicación web progresiva), lo que significa que puede instalarla como una aplicación nativa en dispositivos móviles y aprovechar varias de sus funciones.

En este tutorial, aprenderá a instalar Padloc Password Manager en un servidor basado en Rocky Linux 8.

Requisitos

  • Un servidor que ejecuta Rocky Linux 8 con un mínimo de 1 GB de RAM.
  • Un usuario no root con privilegios sudo.
  • Un nombre de dominio completo (FQDN) que apunta al servidor como example.com . Asumiremos que usará solo un nombre de dominio para este servidor para este tutorial.

Paso 1 - Cortafuegos

El primer paso es configurar el cortafuegos. Rocky Linux usa Firewalld Firewall. Compruebe el estado del cortafuegos.

$ sudo firewall-cmd --state
running

El firewall funciona con diferentes zonas, y la zona pública es la predeterminada que usaremos. Enumere todos los servicios y puertos activos en el firewall.

$ sudo firewall-cmd --permanent --list-services

Debería mostrar el siguiente resultado.

cockpit dhcpv6-client ssh

Permitir puertos HTTP y HTTPS.

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

Vuelva a comprobar el estado del cortafuegos.

$ sudo firewall-cmd --permanent --list-services

Debería ver un resultado similar.

cockpit dhcpv6-client http https ssh

Vuelva a cargar el cortafuegos para habilitar los cambios.

$ sudo firewall-cmd --reload

Paso 2:Instalar Docker

Rocky Linux viene con una versión anterior de Docker. Para instalar la última versión, primero instale el repositorio oficial de Docker.

$ sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

Instale la última versión de Docker.

$ sudo dnf install docker-ce docker-ce-cli containerd.io

Habilite y ejecute el demonio Docker.

$ sudo systemctl enable docker --now

Verifique que se esté ejecutando.

$ sudo systemctl status docker
? docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2022-04-09 22:43:21 UTC; 30s ago
     Docs: https://docs.docker.com
 Main PID: 43005 (dockerd)
    Tasks: 7
   Memory: 90.5M
   CGroup: /system.slice/docker.service
           ??43005 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
 ....

De forma predeterminada, Docker requiere privilegios de root. Si desea evitar el uso de sudo cada vez que ejecuta el docker comando, agregue su nombre de usuario a la docker grupo.

$ sudo usermod -aG docker $(whoami)

Deberá cerrar sesión en el servidor y volver a iniciarla como el mismo usuario para habilitar este cambio.

Paso 3:instalar Docker-Compose

Descargue la última versión estable de Docker Compose.

$ sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

Aplique permisos ejecutables al archivo binario de Docker Compose.

$ sudo chmod +x /usr/local/bin/docker-compose

Pruebe la instalación.

$ docker-compose --version
docker-compose version 1.29.2, build 5becea4c

Instale el script Docker-compose Bash Completion.

$ sudo curl \
    -L https://raw.githubusercontent.com/docker/compose/1.29.2/contrib/completion/bash/docker-compose \
    -o /etc/bash_completion.d/docker-compose

Vuelva a cargar la configuración de su perfil para que la finalización de bash funcione.

$ source ~/.bashrc

Paso 4 - Crear directorios de datos

Crea un directorio para padloc.

$ mkdir ~/padloc

Cambia al directorio padloc.

$ cd ~/padloc

Cree directorios para la base de datos de usuarios, los registros de la aplicación, los archivos adjuntos, la aplicación PWA y la configuración de SSL.

$ mkdir {attachments,db,logs,pwa,ssl}

Cree un directorio para los registros de Nginx.

$ mkdir logs/nginx

Paso 5:Crear archivo de composición de Docker

Cree y abra el ~/padloc/docker-compose.yml archivo para editar.

$ nano docker-compose.yml

Pegue el siguiente código en él.

version: "3"
services:
    server:
        image: padloc/server
        container_name: padloc_server
        restart: unless-stopped
        #ports:
        #    - ${PL_SERVER_PORT:-3000}:3000
        expose:
            - 3000
        volumes:
            - ${PL_DB_DIR:-./db}:/data:Z
            - ${PL_ATTACHMENTS_DIR:-./attachments}:/docs:Z
            - ./logs:/logs:Z
        environment:
            - PL_PWA_URL
            - PL_EMAIL_SERVER
            - PL_EMAIL_PORT
            - PL_EMAIL_USER
            - PL_EMAIL_PASSWORD
            - PL_EMAIL_FROM
    pwa:
        image: padloc/pwa
        container_name: padloc_pwa
        restart: unless-stopped
        #ports:
        #    - ${PL_PWA_PORT:-8080}:8080
        expose:
            - 8080
        volumes:
            - ${PL_PWA_DIR:-./pwa}:/pwa:Z
        environment:
            - PL_SERVER_URL
    nginx:
        image: nginx
        container_name: nginx
        restart: unless-stopped
        volumes: 
            - ./nginx.conf:/etc/nginx/nginx.conf
            - ${PL_SSL_CERT:-./ssl/cert.pem}:/ssl/cert
            - ${PL_SSL_KEY:-./ssl/key.pem}:/ssl/key
            - ${PL_SSL_CONF:-./ssl/ssl.conf}:/ssl/ssl.conf
            - /etc/ssl/certs/dhparam.pem:/ssl/dhparam.pem
            - ./logs/nginx:/var/log/nginx:Z
        ports:
            - 80:80
            - 443:443

Guarde el archivo presionando Ctrl + X e ingresando Y cuando se le solicite.

Estamos usando tres imágenes de Docker para Padloc.

  1. La imagen del servidor - contiene toda la lógica de back-end para la aplicación. Se ejecuta en el puerto 3000 de forma predeterminada. Hemos descomentado la variable puertos en nuestro archivo de redacción para que el puerto sea invisible para el servidor. En su lugar, usamos la variable de exposición para exponer el puerto dentro del motor Docker al contenedor Nginx. Las variables de entorno para la imagen se configurarán más adelante. También hemos asignado directorios para una base de datos de usuarios, archivos adjuntos y registros de aplicaciones.

  2. La imagen de PWA - contiene la interfaz de la aplicación. Se ejecuta en el puerto 8080 de forma predeterminada. En cuanto a la imagen del servidor, ocultamos la sección de puertos para esta imagen y expusimos el puerto dentro del motor Docker. Hemos mapeado el directorio para la aplicación web.

  3. La imagen de Nginx - contiene la aplicación del servidor Nginx. Tenemos los puertos para HTTP(80) y HTTPS(443) al servidor para que sea accesible desde el exterior. Hemos mapeado varios directorios y archivos para que funcione.

    • El primer archivo es nginx.conf que contiene todas las configuraciones principales para que Nginx sirva la aplicación padloc.
    • Los siguientes dos archivos, cert.pem y key.pem son el certificado SSL y las claves que generaremos usando Let's encrypt.
    • El archivo ssl.conf contiene información adicional sobre el servicio de SSL a través de Nginx.
    • El archivo dhparam.pem es servir al grupo Diffie-Hellman certificado.
    • La última entrada es para asignar los registros de Nginx al servidor para que pueda acceder a ellos fuera de Docker.
  4. El :Z El indicador al final de las asignaciones de carpetas indica que solo se podrá acceder a esos directorios desde los contenedores respectivos. Esto se está haciendo desde que SELINUX está habilitado en nuestro servidor. Si no está utilizando SELinux, puede eliminar la marca.

Paso 6:configurar NGinx

Crea y abre el archivo ~/padloc/nginx.conf para editar.

$ nano nginx.conf

Pegue el siguiente código en él.

http {
    # This is required if you want to upload attachments
    client_max_body_size 10m;

    # Redirect all http traffic to https
    server {
        listen 80 default_server;
        listen [::]:80 default_server;
        server_name _;
        return 301 https://$host$request_uri;
    }

    server {
        # We don't need a host name here since we're only
        # dealing with one domain, but you may insert your domain here.
        server_name _;

        # Both server and pwa are served over https
        listen 443 ssl http2;
        listen [::]:443 ssl http2;

        # This will resolve to the server instance
        location /server/ {
            proxy_pass http://padloc_server:3000;
            rewrite ^/padloc_server(.*)$ $1 break;
        }

        # This will resolve to the web app
        location / {
            proxy_pass http://padloc_pwa:8080;
            rewrite ^/padloc_pwa(.*)$ $1 break;
        }

        # SSL certificate
        ssl_certificate /ssl/cert;
        # SSL private key
        ssl_certificate_key /ssl/key;

        # Add this file to add advanced ssl configuration
        include /ssl/ssl.conf;
    }
}

# This section is required by nginx
events {}

Guarde el archivo presionando Ctrl + X e ingresando Y cuando se le solicite.

La configuración anterior reenvía todas las solicitudes realizadas desde el padloc_server contenedor al /server ubicación del nombre de dominio y cualquier solicitud realizada desde el padlock_pwa contenedor a la raíz. También redirige todo el tráfico HTTP a HTTPS. También hemos establecido el tamaño de carga del archivo en 10 MB para los archivos adjuntos. Puede cambiar el tamaño según sus requisitos. La configuración de SSL se ha incluido a través de un archivo externo que configuraremos más adelante.

Paso 7 - Crear archivo de entorno

Crea y abre el ~/padloc/.env archivo para editar.

$ nano .env

Pegue el siguiente código en él.

# GENERAL SETTINGS
# ================
# URL that will resolve to the server instance
PL_PWA_URL=https://example.com/
# URL that will resolve to the web app
PL_SERVER_URL=https://example.com/server/

# SERVER SETTINGS
# ===============
# Port the server instance will listen on
PL_SERVER_PORT=3000
# Directory where database files will be stored
PL_DB_DIR=./db
# Directory where attachment files will be stored
PL_ATTACHMENTS_DIR=./attachments

# PWA SETTINGS
# ============
# Port the web app will be served from
PL_PWA_PORT=8080
# Directory where the static code for the web app will be stored
PL_PWA_DIR=./pwa

# EMAIL SETTINGS
# =============
# SMTP host
PL_EMAIL_SERVER=smtp.example.com
# SMTP username
[email protected]
# SMTP port
PL_EMAIL_PORT=443
# SMTP password
PL_EMAIL_PASSWORD=your_smtp_password
# Always use TLS when sending emails
# PL_EMAIL_SECURE=false
# Email ID to send mails from
[email protected]

# SSL SETTINGS
# ============
# The path to your ssl certificate
PL_SSL_CERT=/etc/letsencrypt/live/example.com/fullchain.pem
# The path to your ssl private key
PL_SSL_KEY=/etc/letsencrypt/live/example.com/privkey.pem
# Advanced configuration file
PL_SSL_CONF=./ssl/ssl.conf

Guarde el archivo presionando Ctrl + X e ingresando Y Cuando se le solicite. La mayoría de los ajustes se explican por sí mismos. La configuración existente de Nginx espera que la aplicación se sirva a través del dominio principal y el servidor a través de /server directorio. El PL_PWA_DIR no es obligatorio configurarlo aquí y en el archivo Docker-compose, pero tenerlo acelera el inicio del contenedor y, por lo tanto, siempre debe configurarlo.

Padloc requiere la capacidad de enviar correos electrónicos para funciones como la verificación de nuevos usuarios, la autenticación de dos factores y el restablecimiento de contraseñas. Por lo tanto, los detalles de SMTP son obligatorios.

Para la función SSL, usamos los directorios predeterminados de Let's Encrypt donde se encuentran los certificados. La configuración SSL adicional se proporcionará a través del archivo /ssl/ssl.conf .

Paso 8:instalar SSL

Para instalar un certificado SSL usando Let's Encrypt, necesitamos instalar la herramienta Certbot.

En primer lugar, debe descargar e instalar el repositorio de EPEL.

$ sudo dnf install epel-release

Ejecute los siguientes comandos para instalar Certbot.

$ sudo dnf install certbot

Genere el certificado SSL.

$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d example.com

El comando anterior descargará un certificado en /etc/letsencrypt/live/example.com directorio en su servidor.

Generar un grupo Diffie-Hellman certificado.

$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

Cree un trabajo cron para renovar el SSL. Se ejecutará cada semana para verificar el certificado y renovarlo si es necesario. Para eso, primero crea el archivo /etc/cron.weekly/certbot-renew y ábralo para editarlo.

$ sudo nano /etc/cron.weekly/certbot-renew

Pegue el siguiente código. Usamos los comandos de Docker para iniciar, detener y reiniciar el contenedor Nginx según el estado de renovación.

#!/bin/sh
certbot renew --cert-name example.com --pre-hook "docker stop nginx" --post-hook "docker start nginx" --renew-hook "docker restart nginx"

Guarde el archivo presionando Ctrl + X e ingresando Y cuando se le solicite.

Cambie los permisos en el archivo de tareas para que sea ejecutable.

$ sudo chmod +x /etc/cron.weekly/certbot-renew

Paso 9:configurar SSL

Crea y abre el archivo ~/padloc/ssl/ssl.conf para editar.

$ nano ssl/ssl.conf

Pegue el siguiente código en él.

ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m;
ssl_session_tickets off;
ssl_prefer_server_ciphers off;

ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;

ssl_stapling on;
ssl_stapling_verify on;
ssl_dhparam /ssl/dhparam.pem;
resolver 1.1.1.1 1.0.0.1 [2606:4700:4700::1111] [2606:4700:4700::1001] 8.8.8.8 8.8.4.4 [2001:4860:4860::8888] [2001:4860:4860::8844] valid=60s;
resolver_timeout 2s;

Guarde el archivo presionando Ctrl + X e ingresando Y cuando se le solicite.

El archivo anterior presenta algunas configuraciones SSL recomendadas para que su sitio sea más seguro. Restringe los protocolos TLS a v1.2 y v1.3 y habilita el engrapado y la verificación del Protocolo de estado de certificado en línea (OCSP).

Paso 10 - Ejecutar Padloc

Ahora que ha configurado todo, ejecute Padloc usando el siguiente comando.

$ docker-compose up -d

Consulta el estado de los contenedores.

$ docker ps

Debería obtener un resultado similar.

Paso 11:acceder y configurar Padloc

Abra la URL https://example.com en su navegador, y llegará a su página de inicio de sesión.

Haz clic en Regístrate ahora enlace para iniciar el registro.

Ingrese su nombre y dirección de correo electrónico, y presione Continuar para proceder.

Padloc te enviará un correo electrónico con un código de confirmación. Ingrese el código de confirmación en el cuadro de arriba y presione Continuar para proceder.

Padloc generará automáticamente una contraseña maestra para usted. Coloca el cursor sobre el cuadro y cópialo. Pégalo de nuevo en el cuadro de abajo. También puede optar por utilizar su contraseña. Presiona Continuar cuando haya terminado.

Accederá a la página de inicio de Padloc. Puede comenzar a guardar sus datos de inicio de sesión y documentos confidenciales.

Paso 12 - Actualizar Padloc

Actualizar Padloc es un proceso de dos pasos. Primero, cambie al directorio Padloc.

$ cd ~/padloc

Apague y retire los contenedores Padloc existentes.

$ docker-compose down --remove-orphans

Obtenga las últimas imágenes.

$ docker-compose pull

Inicie los contenedores de nuevo.

$ docker-compose up -d

Conclusión

Esto concluye nuestro tutorial sobre la instalación del administrador de contraseñas autohospedado Padloc en un servidor Rocky Linux 8. Si tiene alguna pregunta, publíquela en los comentarios a continuación.


Rocky Linux
  1. Cómo instalar Docker y Docker-Compose en Rocky Linux 8

  2. Cómo instalar Docker en Rocky Linux 8

  3. Cómo instalar Python 3.9 en Rocky Linux 8

  4. Cómo instalar Passbolt Password Manager en Rocky Linux

  5. Cómo instalar Redis en Rocky Linux 8

Cómo instalar Snap en Rocky Linux 8

Cómo instalar MySQL 8.0 en Rocky Linux 8

Cómo instalar Docker en Rocky Linux y AlmaLinux

Cómo instalar PHP 7.4 en Rocky Linux 8

Cómo instalar Python 3.9 en Rocky Linux

Cómo instalar Snap Package Manager en Rocky Linux 8