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.
nginx.conf
i cili përmban të gjitha konfigurimet kryesore për Nginx për të shërbyer aplikacionin padloc. cert.pem
dhe key.pem
janë certifikata SSL dhe çelësat që do të gjenerojmë duke përdorur Lets encrypt. ssl.conf
përmban informacion shtesë në lidhje me shërbimin e SSL nëpërmjet Nginx. dhparam.pem
duhet të shërbejë certifikatën Diffie-Hellman group. :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ë.