Si të instaloni Padloc Password Manager në Rocky Linux 8


Padloc është një zgjidhje e menaxhimit të fjalëkalimeve të bazuara në cloud që ju lejon të përdorni dhe përdorni fjalëkalimet tuaja të ruajtura nëpër platforma të shumta. Ai ofron një ndërfaqe të thjeshtë dhe mund të përdoret për të ruajtur fjalëkalimet tuaja dhe mund të enkriptojë dhe ruajë dokumente të ndjeshme. Ai gjithashtu mbështet ruajtjen e argumenteve të vërtetimit me dy faktorë dhe mund t'i shtojë ato drejtpërdrejt nga faqja e internetit.

Padloc ofron gjithashtu një zgjidhje të vetë-strehuar me burim të hapur që mund ta instaloni në çdo server për të mbajtur kontroll të plotë mbi të dhënat tuaja. Megjithatë, ka një paralajmërim për këtë. Nuk mund ta përdorni aplikacionin e vetë-strehuar me aplikacionet e tij desktop dhe celular. Nga ana tjetër, Padloc shërbehet si një PWA (aplikacion progresiv në internet), që do të thotë se mund ta instaloni atë si një aplikacion origjinal në celular dhe të përfitoni nga disa nga veçoritë e tij.

Në këtë tutorial, do të mësoni se si të instaloni Padloc Password Manager në një server të bazuar në Rocky Linux 8.

Parakushtet

  • Një server që ekzekuton Rocky Linux 8 me një minimum prej 1 GB RAM.
  • Një përdorues jo-root me privilegje sudo.
  • Një emër domeni plotësisht i kualifikuar (FQDN) që tregon serverin si example.com. Ne do të supozojmë se ju do të përdorni vetëm një emër domaini për këtë server për këtë tutorial.

Hapi 1 - Firewall

Hapi i parë është konfigurimi i murit të zjarrit. Rocky Linux përdor Firewall-in e Firewalld. Kontrolloni statusin e mureve të zjarrit.

$ sudo firewall-cmd --state
running

Firewall punon me zona të ndryshme dhe zona publike është ajo e paracaktuar që do të përdorim. Listoni të gjitha shërbimet dhe portat aktive në murin e zjarrit.

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

Duhet të tregojë daljen e mëposhtme.

cockpit dhcpv6-client ssh

Lejo portet HTTP dhe HTTPS.

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

Rishikoni statusin e murit të zjarrit.

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

Ju duhet të shihni një dalje të ngjashme.

cockpit dhcpv6-client http https ssh

Ringarko murin e zjarrit për të aktivizuar ndryshimet.

$ sudo firewall-cmd --reload

Hapi 2 - Instaloni Docker

Rocky Linux dërgohet me një version më të vjetër të Docker. Për të instaluar versionin më të fundit, së pari, instaloni depon zyrtare të Docker.

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

Instaloni versionin më të fundit të Docker.

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

Aktivizo dhe ekzekuto demonin Docker.

$ sudo systemctl enable docker --now

Verifiko që po funksionon.

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

Si parazgjedhje, Docker kërkon privilegje rrënjësore. Nëse dëshironi të shmangni përdorimin e sudo sa herë që ekzekutoni komandën docker, shtoni emrin tuaj të përdoruesit në docker grup.

$ sudo usermod -aG docker $(whoami)

Ju do të duhet të dilni nga serveri dhe të hyni përsëri si i njëjti përdorues për të mundësuar këtë ndryshim.

Hapi 3 - Instaloni Docker-Compose

Shkarkoni versionin më të fundit të qëndrueshëm të 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

Aplikoni lejet e ekzekutueshme në skedarin binar të Docker Compose.

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

Testoni instalimin.

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

Instaloni skriptin 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

Ringarko cilësimet e profilit për të funksionuar përfundimi i bash-it.

$ source ~/.bashrc

Hapi 4 - Krijoni drejtoritë e të dhënave

Krijo një direktori për padloc.

$ mkdir ~/padloc

Kalo te drejtoria padloc.

$ cd ~/padloc

Krijoni drejtori për bazën e të dhënave të përdoruesve, regjistrat e aplikacioneve, bashkëngjitjet, aplikacionin PWA dhe konfigurimin SSL.

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

Krijo një direktori për regjistrat Nginx.

$ mkdir logs/nginx

Hapi 5 - Krijoni Docker Compose File

Krijoni dhe hapni skedarin ~/padloc/docker-compose.yml për redaktim.

$ nano docker-compose.yml

Vendos kodin e mëposhtëm në të.

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

Ruani skedarin duke shtypur Ctrl + X dhe duke futur Y kur ju kërkohet.

Ne po përdorim tre imazhe Docker për Padloc.

  • Imazhi i serverit - përmban të gjithë logjikën mbështetëse për aplikacionin. Ai funksionon në portin 3000 si parazgjedhje. Ne e kemi çkomentuar variablin porta në skedarin tonë të kompozimit për ta bërë portin të padukshëm për serverin. Në vend të kësaj, ne përdorim variablin e ekspozimit për të ekspozuar portin brenda motorit Docker në kontejnerin Nginx. Variablat e mjedisit për imazhin do të konfigurohen më vonë. Ne kemi hartuar gjithashtu drejtoritë për bazën e të dhënave të përdoruesve, bashkëngjitjet dhe regjistrat e aplikacioneve.
  • Imazhi PWA - përmban pjesën e përparme të aplikacionit. Ai funksionon në portin 8080 si parazgjedhje. Sa i përket imazhit të serverit, ne kemi fshehur seksionin e porteve për këtë imazh dhe kemi ekspozuar portin brenda motorit Docker. Ne kemi hartuar direktorinë për aplikacionin në internet.
  • Imazhi Nginx - përmban aplikacionin e serverit Nginx. Ne kemi portet për HTTP(80) dhe HTTPS(443) në server për ta bërë atë të aksesueshëm nga jashtë. Ne kemi hartuar disa drejtori dhe skedarë për ta bërë atë të funksionojë.
    • Skedari i parë është nginx.conf i cili përmban të gjitha konfigurimet kryesore për Nginx për të shërbyer aplikacionin padloc.
    • Dy skedarët e ardhshëm, cert.pem dhe key.pem janë certifikata SSL dhe çelësat që do të gjenerojmë duke përdorur Lets encrypt.
    • Skedari ssl.conf përmban informacion shtesë në lidhje me shërbimin e SSL nëpërmjet Nginx.
    • Skedari dhparam.pem duhet të shërbejë certifikatën Diffie-Hellman group.
    • Hyrja e fundit është të hartoni regjistrat e Nginx përsëri në server, në mënyrë që të mund t'i përdorni ato jashtë Docker.
  • Flamuri :Z në fund të pasqyrave të dosjeve tregon se ato drejtori do të jenë të aksesueshme vetëm nga kontejnerët përkatës. Kjo po bëhet pasi SELINUX është aktivizuar në serverin tonë. Nëse nuk po përdorni SELinux, atëherë mund ta hiqni flamurin.

    Hapi 6 - Konfiguro NGinx

    Krijoni dhe hapni skedarin ~/padloc/nginx.conf për modifikim.

    $ nano nginx.conf
    

    Vendos kodin e mëposhtëm në të.

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

    Ruani skedarin duke shtypur Ctrl + X dhe duke futur Y kur ju kërkohet.

    Konfigurimi i mësipërm përcjell të gjitha kërkesat e bëra nga kontejneri padloc_server në vendndodhjen /server të emrit të domenit dhe çdo kërkesë të bërë nga padlock_pwa enë deri në rrënjë. Ai gjithashtu ridrejton të gjithë trafikun HTTP në HTTPS. Ne gjithashtu kemi vendosur madhësinë e ngarkimit të skedarit në 10 MB për bashkëngjitjet. Ju mund të ndryshoni madhësinë sipas kërkesave tuaja. Cilësimet SSL janë përfshirë nëpërmjet një skedari të jashtëm të cilin do ta konfigurojmë më vonë.

    Hapi 7 - Krijoni skedarin e mjedisit

    Krijoni dhe hapni skedarin ~/padloc/.env për modifikim.

    $ nano .env
    

    Vendos kodin e mëposhtëm në të.

    # 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
    
    # 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
    
    
    # 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
    

    Ruani skedarin duke shtypur Ctrl + X dhe duke futur Y kur ju kërkohet. Shumica e cilësimeve janë vetë-shpjeguese. Konfigurimi ekzistues Nginx pret që aplikacioni të shërbehet përmes domenit kryesor dhe serverit përmes drejtorisë /server. PL_PWA_DIR nuk është i detyrueshëm për t'u vendosur këtu dhe në skedarin Docker-compose, por ta kesh atë shpejton nisjen e kontejnerit dhe për këtë arsye, duhet ta konfigurosh gjithmonë.

    Padloc kërkon aftësinë për të dërguar email për funksione si verifikimi i përdoruesve të rinj, vërtetimi me dy faktorë dhe rivendosja e fjalëkalimeve. Prandaj, detajet SMTP janë të detyrueshme.

    Për veçorinë SSL, ne përdorim drejtoritë e paracaktuar Lets Encrypt ku ndodhen certifikatat. Konfigurimi shtesë SSL do të sigurohet nëpërmjet skedarit /ssl/ssl.conf.

    Hapi 8 - Instaloni SSL

    Për të instaluar një certifikatë SSL duke përdorur Lets Encrypt, duhet të instalojmë mjetin Certbot.

    Së pari, duhet të shkarkoni dhe instaloni depon e EPEL.

    $ sudo dnf install epel-release
    

    Ekzekutoni komandat e mëposhtme për të instaluar Certbot.

    $ sudo dnf install certbot
    

    Gjeneroni certifikatën SSL.

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

    Komanda e mësipërme do të shkarkojë një certifikatë në drejtorinë /etc/letsencrypt/live/example.com në serverin tuaj.

    Krijo një certifikatë grupi Diffie-Hellman.

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

    Krijo një Cron Job për të rinovuar SSL. Do të funksionojë çdo javë për të kontrolluar certifikatën dhe për ta rinovuar nëse është e nevojshme. Për këtë, së pari, krijoni skedarin /etc/cron.weekly/certbot-renew dhe hapeni atë për redaktim.

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

    Ngjit kodin e mëposhtëm. Ne përdorim komandat Docker për të nisur, ndalur dhe rifilluar kontejnerin Nginx në varësi të statusit të rinovimit.

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

    Ruani skedarin duke shtypur Ctrl + X dhe duke futur Y kur ju kërkohet.

    Ndryshoni lejet në skedarin e detyrës për ta bërë atë të ekzekutueshëm.

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

    Hapi 9 - Konfiguro SSL

    Krijoni dhe hapni skedarin ~/padloc/ssl/ssl.conf për redaktim.

    $ nano ssl/ssl.conf
    

    Vendos kodin e mëposhtëm në të.

    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;
    

    Ruani skedarin duke shtypur Ctrl + X dhe duke futur Y kur ju kërkohet.

    Skedari i mësipërm prezanton disa cilësime të rekomanduara SSL për ta bërë faqen tuaj më të sigurt. Ai kufizon protokollet TLS në v1.2 dhe v1.3 dhe mundëson kapjen dhe verifikimin e Protokollit të Statusit të Certifikatës në internet (OCSP).

    Hapi 10 - Drejtoni Padloc

    Tani që keni konfiguruar gjithçka, ekzekutoni Padloc duke përdorur komandën e mëposhtme.

    $ docker-compose up -d
    

    Kontrolloni statusin e kontejnerëve.

    $ docker ps
    

    Ju duhet të merrni një rezultat të ngjashëm.

    Hapi 11 - Hyni dhe konfiguroni Padloc

    Hapni URL-në https://example.com në shfletuesin tuaj dhe do të arrini në faqen e tij të hyrjes.

    Klikoni lidhjen Regjistrohu tani për të filluar regjistrimin.

    Futni emrin dhe adresën tuaj të emailit dhe shtypni Vazhdo për të vazhduar.

    Padloc do t'ju dërgojë një email me një kod konfirmimi. Futni kodin e konfirmimit në kutinë e mësipërme dhe shtypni Vazhdo për të vazhduar.

    Padloc do të gjenerojë automatikisht një fjalëkalim kryesor për ju. Rri pezull mbi kuti dhe kopjoje atë. Ngjitni përsëri në kutinë më poshtë. Ju gjithashtu mund të zgjidhni të përdorni fjalëkalimin tuaj. Shtypni Vazhdo kur të mbaroni.

    Do të çoheni në faqen kryesore të Padloc. Mund të filloni të ruani të dhënat tuaja të hyrjes dhe dokumentet e ndjeshme.

    Hapi 12 - Përditëso Padloc

    Përditësimi i Padloc është një proces me dy hapa. Së pari, kaloni në drejtorinë Padloc.

    $ cd ~/padloc
    

    Mbyllni dhe hiqni kontejnerët ekzistues Padloc.

    $ docker-compose down --remove-orphans
    

    Tërhiq imazhet më të fundit.

    $ docker-compose pull
    

    Nisni përsëri kontejnerët.

    $ docker-compose up -d
    

    konkluzioni

    Kjo përfundon tutorialin tonë për instalimin e menaxherit të fjalëkalimeve të vetë-pritur Padloc në një server Rocky Linux 8. Nëse keni ndonjë pyetje, postojini ato në komentet më poshtë.