GNU/Linux >> Linux Esercitazione >  >> Rocky Linux

Come installare Padloc Password Manager su Rocky Linux 8

Padloc è una soluzione di gestione delle password basata su cloud che ti consente di accedere e utilizzare le password salvate su più piattaforme. Offre un'interfaccia semplice e può essere utilizzato per salvare le password e può crittografare e archiviare documenti sensibili. Supporta anche la memorizzazione di token di autenticazione a due fattori e può aggiungerli direttamente dalla pagina web.

Padloc offre anche una soluzione self-hosted open source che puoi installare su qualsiasi server per mantenere il controllo completo sui tuoi dati. Tuttavia, c'è un avvertimento a questo. Non è possibile utilizzare l'applicazione self-hosted con le sue app desktop e mobili. Il lato positivo è che Padloc è servito come PWA (progressive web app), il che significa che puoi installarlo come applicazione nativa su dispositivi mobili e sfruttare molte delle sue funzionalità.

In questo tutorial imparerai come installare Padloc Password Manager su un server basato su Rocky Linux 8.

Prerequisiti

  • Un server che esegue Rocky Linux 8 con un minimo di 1 GB di RAM.
  • Un utente non root con privilegi sudo.
  • Un nome di dominio completo (FQDN) che punta al server come example.com . Daremo per scontato che utilizzerai un solo nome di dominio per questo server per questo tutorial.

Fase 1 - Firewall

Il primo passo è configurare il firewall. Rocky Linux utilizza Firewalld Firewall. Controlla lo stato del firewall.

$ sudo firewall-cmd --state
running

Il firewall funziona con diverse zone e la zona pubblica è quella predefinita che useremo. Elenca tutti i servizi e le porte attive sul firewall.

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

Dovrebbe mostrare il seguente output.

cockpit dhcpv6-client ssh

Consenti porte HTTP e HTTPS.

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

Ricontrolla lo stato del firewall.

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

Dovresti vedere un output simile.

cockpit dhcpv6-client http https ssh

Ricarica il firewall per abilitare le modifiche.

$ sudo firewall-cmd --reload

Passaggio 2 - Installa Docker

Rocky Linux viene fornito con una versione precedente di Docker. Per installare l'ultima versione, prima installa il repository Docker ufficiale.

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

Installa l'ultima versione di Docker.

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

Abilita ed esegui il demone Docker.

$ sudo systemctl enable docker --now

Verifica che sia in esecuzione.

$ 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
 ....

Per impostazione predefinita, Docker richiede i privilegi di root. Se vuoi evitare di usare sudo ogni volta che esegui la docker comando, aggiungi il tuo nome utente alla docker gruppo.

$ sudo usermod -aG docker $(whoami)

Dovrai disconnetterti dal server e riconnetterti come lo stesso utente per abilitare questa modifica.

Passaggio 3:installazione di Docker-Compose

Scarica l'ultima versione stabile di 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

Applica le autorizzazioni eseguibili al file binario Docker Compose.

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

Testare l'installazione.

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

Installa lo 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

Ricarica le impostazioni del tuo profilo per far funzionare il completamento di bash.

$ source ~/.bashrc

Fase 4:crea directory di dati

Crea una directory per padloc.

$ mkdir ~/padloc

Passa alla directory padloc.

$ cd ~/padloc

Crea directory per il database utente, i registri delle applicazioni, gli allegati, l'app PWA e la configurazione SSL.

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

Crea una directory per i log di Nginx.

$ mkdir logs/nginx

Passaggio 5:crea un file di composizione Docker

Crea e apri il ~/padloc/docker-compose.yml file per la modifica.

$ nano docker-compose.yml

Incolla il seguente codice al suo interno.

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

Salva il file premendo Ctrl + X e inserendo Y quando richiesto.

Stiamo utilizzando tre immagini Docker per Padloc.

  1. L'immagine del server - contiene tutta la logica di backend per l'applicazione. Funziona sulla porta 3000 per impostazione predefinita. Abbiamo decommentato la variabile delle porte nel nostro file di composizione per rendere la porta invisibile al server. Invece, utilizziamo la variabile di esposizione per esporre la porta all'interno del motore Docker al contenitore Nginx. Le variabili di ambiente per l'immagine verranno configurate in seguito. Abbiamo anche mappato le directory per un database utente, allegati e registri dell'applicazione.

  2. L'immagine PWA - contiene il frontend dell'applicazione. Funziona sulla porta 8080 per impostazione predefinita. Per quanto riguarda l'immagine del server, abbiamo nascosto la sezione delle porte per questa immagine ed esposto la porta all'interno del motore Docker. Abbiamo mappato la directory per l'app web.

  3. L'immagine di Nginx - contiene l'applicazione server Nginx. Abbiamo le porte per HTTP(80) e HTTPS(443) al server per renderlo accessibile dall'esterno. Abbiamo mappato diverse directory e file per farlo funzionare.

    • Il primo file è nginx.conf che contiene tutte le principali configurazioni di Nginx per servire l'applicazione padloc.
    • I prossimi due file, cert.pem e key.pem sono il certificato SSL e le chiavi che genereremo utilizzando Let's encrypt.
    • Il file ssl.conf contiene ulteriori informazioni sulla fornitura di SSL tramite Nginx.
    • Il file dhparam.pem è servire il gruppo Diffie-Hellman certificato.
    • L'ultima voce è mappare i log di Nginx sul server in modo da poterli accedere al di fuori di Docker.
  4. Il :Z flag alla fine dei mapping delle cartelle indica che quelle directory saranno accessibili solo dai rispettivi contenitori. Questo viene fatto poiché SELINUX è abilitato sul nostro server. Se non stai usando SELinux, puoi rimuovere il flag.

Fase 6 - Configura NGinx

Crea e apri il file ~/padloc/nginx.conf per la modifica.

$ nano nginx.conf

Incolla il seguente codice al suo interno.

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

Salva il file premendo Ctrl + X e inserendo Y quando richiesto.

La configurazione di cui sopra inoltra tutte le richieste effettuate dal padloc_server contenitore al /server posizione del nome a dominio ed eventuali richieste effettuate dal padlock_pwa contenitore alla radice. Reindirizza anche tutto il traffico HTTP su HTTPS. Abbiamo anche impostato la dimensione del caricamento del file su 10 MB per gli allegati. È possibile modificare la dimensione secondo le vostre esigenze. Le impostazioni SSL sono state incluse tramite un file esterno che configureremo in seguito.

Passaggio 7:crea un file di ambiente

Crea e apri il ~/padloc/.env file per la modifica.

$ nano .env

Incolla il seguente codice al suo interno.

# 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

Salva il file premendo Ctrl + X e inserendo Y quando richiesto. La maggior parte delle impostazioni sono autoesplicative. La configurazione di Nginx esistente prevede che l'app venga servita tramite il dominio principale e il server tramite /server directory. Il PL_PWA_DIR non è obbligatorio impostarlo qui e nel file Docker-compose ma averlo velocizza l'avvio del contenitore e, quindi, dovresti sempre impostarlo.

Padloc richiede la possibilità di inviare e-mail per funzionalità come la verifica di nuovi utenti, l'autenticazione a due fattori e la reimpostazione delle password. Pertanto, i dettagli SMTP sono obbligatori.

Per la funzione SSL, utilizziamo le directory predefinite Let's Encrypt in cui si trovano i certificati. La configurazione SSL aggiuntiva verrà fornita tramite il file /ssl/ssl.conf .

Passaggio 8 - Installa SSL

Per installare un certificato SSL utilizzando Let's Encrypt, è necessario installare lo strumento Certbot.

Innanzitutto, devi scaricare e installare il repository EPEL.

$ sudo dnf install epel-release

Esegui i seguenti comandi per installare Certbot.

$ sudo dnf install certbot

Genera il certificato SSL.

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

Il comando precedente scaricherà un certificato in /etc/letsencrypt/live/example.com directory sul tuo server.

Genera un gruppo Diffie-Hellman certificato.

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

Crea un Cron Job per rinnovare l'SSL. Verrà eseguito ogni settimana per controllare il certificato e rinnovarlo se necessario. Per questo, prima crea il file /etc/cron.weekly/certbot-renew e aprilo per la modifica.

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

Incolla il codice seguente. Utilizziamo i comandi Docker per avviare, arrestare e riavviare il container Nginx a seconda dello stato di rinnovo.

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

Salva il file premendo Ctrl + X e inserendo Y quando richiesto.

Modifica le autorizzazioni sul file dell'attività per renderlo eseguibile.

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

Fase 9 - Configura SSL

Crea e apri il file ~/padloc/ssl/ssl.conf per la modifica.

$ nano ssl/ssl.conf

Incolla il seguente codice al suo interno.

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;

Salva il file premendo Ctrl + X e inserendo Y quando richiesto.

Il file precedente introduce alcune impostazioni SSL consigliate per rendere il tuo sito più sicuro. Limita i protocolli TLS a v1.2 e v1.3 e abilita la pinzatura e la verifica OCSP (Online Certificate Status Protocol).

Fase 10 - Esegui Padloc

Ora che hai configurato tutto esegui Padloc usando il seguente comando.

$ docker-compose up -d

Controlla lo stato dei contenitori.

$ docker ps

Dovresti ottenere un output simile.

Fase 11 - Accedi e configura Padloc

Apri l'URL https://example.com nel tuo browser e raggiungerai la sua pagina di accesso.

Fai clic su Registrati ora link per avviare la registrazione.

Inserisci il tuo nome e indirizzo e-mail e premi Continua per procedere.

Padloc ti invierà una mail con un codice di conferma. Inserisci il codice di conferma nella casella in alto e premi Continua per procedere.

Padloc genererà automaticamente una password principale per te. Passa il mouse sopra la casella e copialo. Incollalo di nuovo nella casella sottostante. Puoi anche scegliere di utilizzare la tua password. Premi Continua al termine.

Verrai indirizzato alla Homepage di Padloc. Puoi iniziare a salvare i tuoi dati di accesso e documenti sensibili.

Fase 12 - Aggiorna Padloc

L'aggiornamento di Padloc è un processo in due fasi. Per prima cosa, passa alla directory Padloc.

$ cd ~/padloc

Spegni e rimuovi i contenitori Padloc esistenti.

$ docker-compose down --remove-orphans

Estrai le ultime immagini.

$ docker-compose pull

Riavvia i contenitori.

$ docker-compose up -d

Conclusione

Questo conclude il nostro tutorial sull'installazione di Padloc Self-hosted password manager su un server Rocky Linux 8. Se hai domande, pubblicale nei commenti qui sotto.


Rocky Linux
  1. Come installare Docker e Docker-Compose su Rocky Linux 8

  2. Come installare Docker su Rocky Linux 8

  3. Come installare Python 3.9 su Rocky Linux 8

  4. Come installare Passbolt Password Manager su Rocky Linux

  5. Come installare Redis su Rocky Linux 8

Come installare Snap su Rocky Linux 8

Come installare MySQL 8.0 su Rocky Linux 8

Come installare Docker su Rocky Linux e AlmaLinux

Come installare PHP 7.4 su Rocky Linux 8

Come installare Python 3.9 su Rocky Linux

Come installare Snap Package Manager su Rocky Linux 8