Padloc adalah solusi manajemen kata sandi berbasis cloud yang memungkinkan Anda mengakses dan menggunakan kata sandi tersimpan di berbagai platform. Ini menawarkan antarmuka yang sederhana dan dapat digunakan untuk menyimpan kata sandi Anda dan dapat mengenkripsi dan menyimpan dokumen sensitif. Ini juga mendukung penyimpanan token autentikasi dua faktor dan dapat menambahkannya langsung dari halaman web.
Padloc juga menawarkan solusi self-hosted open-source yang dapat Anda instal di server mana pun untuk mempertahankan kontrol penuh atas data Anda. Namun, ada peringatan untuk ini. Anda tidak dapat menggunakan aplikasi yang dihosting sendiri dengan aplikasi desktop dan selulernya. Sisi baiknya, Padloc disajikan sebagai PWA (Progressive web app), yang berarti Anda dapat menginstalnya sebagai aplikasi asli di ponsel dan memanfaatkan beberapa fiturnya.
Dalam tutorial ini, Anda akan mempelajari cara menginstal Padloc Password Manager pada server berbasis Rocky Linux 8.
Prasyarat
- Server yang menjalankan Rocky Linux 8 dengan minimal RAM 1 GB.
- Pengguna non-root dengan hak istimewa sudo.
- Nama Domain yang Memenuhi Syarat Sepenuhnya (FQDN) yang menunjuk ke server seperti
example.com
. Kami akan berasumsi bahwa Anda hanya akan menggunakan satu nama domain untuk server ini untuk tutorial ini.
Langkah 1 - Firewall
Langkah pertama adalah mengkonfigurasi firewall. Rocky Linux menggunakan Firewalld Firewall. Periksa status firewall.
$ sudo firewall-cmd --staterunning
Firewall bekerja dengan zona yang berbeda, dan zona publik adalah zona default yang akan kita gunakan. Buat daftar semua layanan dan port yang aktif di firewall.
$ sudo firewall-cmd --permanent --list-services
Ini akan menunjukkan output berikut.
kokpit dhcpv6-client ssh
Izinkan port HTTP dan HTTPS.
$ sudo firewall-cmd --permanent --add-service=http$ sudo firewall-cmd --permanent --add-service=https
Periksa kembali status firewall.
$ sudo firewall-cmd --permanent --list-services
Anda akan melihat keluaran serupa.
kokpit dhcpv6-klien http https ssh
Muat ulang firewall untuk mengaktifkan perubahan.
$ sudo firewall-cmd --reload
Langkah 2 - Instal Docker
Rocky Linux dikirimkan dengan versi Docker yang lebih lama. Untuk menginstal versi terbaru, pertama, instal repositori Docker resmi.
$ sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
Instal Docker versi terbaru.
$ sudo dnf install docker-ce docker-ce-cli containerd.io
Aktifkan dan jalankan daemon Docker.
$ sudo systemctl aktifkan buruh pelabuhan --now
Verifikasi bahwa itu sedang berjalan.
$ Sudo systemctl status buruh pelabuhan? docker.service - Mesin Kontainer Aplikasi Docker Dimuat:dimuat (/usr/lib/systemd/system/docker.service; diaktifkan; preset vendor:dinonaktifkan) Aktif:aktif (berjalan) sejak Sun 2022-04-09 22:43:21 UTC; 30 detik yang lalu Dokumen:https://docs.docker.com PID Utama:43005 (dockerd) Tugas:7 Memori:90.5M CGroup:/system.slice/docker.service ??43005 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock ....
Secara default, Docker membutuhkan hak akses root. Jika Anda ingin menghindari penggunaan sudo
setiap kali Anda menjalankan docker
perintah, tambahkan nama pengguna Anda ke docker
grup.
$ sudo usermod -aG docker $(whoami)
Anda harus keluar dari server dan kembali sebagai pengguna yang sama untuk mengaktifkan perubahan ini.
Langkah 3 - Instal Docker-Compose
Unduh rilis stabil terbaru dari 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
Terapkan izin yang dapat dieksekusi ke file biner Docker Compose.
$ sudo chmod +x /usr/local/bin/docker-compose
Uji penginstalan.
$ docker-compose --versiondocker-compose versi 1.29.2, build 5becea4c
Instal skrip Penyelesaian Bash komposisi Docker.
$ sudo curl \ -L https://raw.githubusercontent.com/docker/compose/1.29.2/contrib/completion/bash/docker-compose \ -o /etc/bash_completion.d/docker-composeMuat ulang pengaturan profil Anda untuk membuat penyelesaian bash berfungsi.
$ source ~/.bashrcLangkah 4 - Buat Direktori Data
Buat direktori untuk padloc.
$ mkdir ~/padlocBeralih ke direktori padloc.
$ cd ~/padlocBuat direktori untuk database pengguna, log aplikasi, lampiran, aplikasi PWA, dan konfigurasi SSL.
$ mkdir {attachments,db,logs,pwa,ssl}Buat direktori untuk log Nginx.
$ mkdir logs/nginxLangkah 5 - Buat File Tulis Docker
Buat dan buka
~/padloc/docker-compose.yml
file untuk diedit.$ nano docker-compose.ymlTempelkan kode berikut di dalamnya.
versi:"3" layanan:server:image:padloc/server container_name:padloc_server restart:kecuali dihentikan #ports:# - ${PL_SERVER_PORT:-3000}:3000 eksposur:- 3000 volume:- ${PL_DB_DIR:-./db}:/data:Z - ${PL_ATTACHMENTS_DIR:-./attachments}:/docs:Z - ./logs:/logs:Z lingkungan:- PL_PWA_URL - PL_EMAIL_SERVER - PL_EMAIL_PORT - PL_EMAIL_USER - PL_EMAIL_PASSWORD - ROM pwa:gambar:padloc/pwa container_name:padloc_pwa restart:kecuali dihentikan #ports:# - ${PL_PWA_PORT:-8080}:8080 eksposur:- 8080 volume:- ${PL_PWA_DIR:-./pwa}:/pwa:Z environment:- PL_SERVER_URL nginx:image:nginx container_name:nginx restart:volume kecuali dihentikan:- ./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 port:- 80:80 - 443 :443Simpan file dengan menekan Ctrl + X dan memasukkan Y saat diminta.
Kami menggunakan tiga gambar Docker untuk Padloc.
Gambar Server - berisi semua logika backend untuk aplikasi. Ini berjalan pada port 3000 secara default. Kami telah menghapus komentar pada variabel port dalam file penulisan kami untuk membuat port tidak terlihat oleh server. Sebagai gantinya, kami menggunakan variabel ekspos untuk mengekspos port di dalam mesin Docker ke wadah Nginx. Variabel lingkungan untuk gambar akan dikonfigurasi nanti. Kami juga telah memetakan direktori untuk database pengguna, lampiran, dan log aplikasi.
Gambar PWA - berisi frontend aplikasi. Ini berjalan pada port 8080 secara default. Adapun gambar server, kami telah menyembunyikan bagian port untuk gambar ini dan mengekspos port di dalam mesin Docker. Kami telah memetakan direktori untuk aplikasi web.
Gambar Nginx - berisi aplikasi server Nginx. Kami memiliki port untuk HTTP(80) dan HTTPS(443) ke server untuk membuatnya dapat diakses dari luar. Kami telah memetakan beberapa direktori dan file untuk membuatnya berfungsi.
- File pertama adalah
nginx.conf
yang berisi semua konfigurasi utama Nginx untuk melayani aplikasi padloc.- Dua file berikutnya,
cert.pem
dankey.pem
adalah sertifikat dan kunci SSL yang akan kami buat menggunakan Let's encrypt.- File
ssl.conf
berisi informasi tambahan mengenai penyajian SSL melalui Nginx.- File
dhparam.pem
adalah untuk melayani grup Diffie-Hellman sertifikat.- Entri terakhir adalah memetakan log Nginx kembali ke server sehingga Anda dapat mengaksesnya di luar Docker.
:Z
bendera di akhir pemetaan folder menunjukkan bahwa direktori tersebut hanya dapat diakses dari wadah masing-masing. Ini dilakukan karena SELINUX diaktifkan di server kami. Jika Anda tidak menggunakan SELinux, Anda dapat menghapus tanda tersebut.Langkah 6 - Konfigurasi NGinx
Buat dan buka file
~/padloc/nginx.conf
untuk diedit.$ nano nginx.confTempelkan kode berikut di dalamnya.
http { # Ini diperlukan jika Anda ingin mengunggah lampiran client_max_body_size 10m; # Arahkan ulang semua lalu lintas http ke server https { dengarkan 80 default_server; mendengarkan [::]:80 default_server; nama server _; kembalikan 301 https://$host$request_uri; } server { # Kami tidak memerlukan nama host di sini karena kami hanya # berurusan dengan satu domain, tetapi Anda dapat memasukkan domain Anda di sini. nama server _; # Server dan pwa dilayani melalui https mendengarkan 443 ssl http2; dengarkan [::]:443 ssl http2; # Ini akan menyelesaikan ke lokasi instance server /server/ { proxy_pass http://padloc_server:3000; tulis ulang ^/padloc_server(.*)$ $1 break; } # Ini akan menyelesaikan ke lokasi aplikasi web / { proxy_pass http://padloc_pwa:8080; tulis ulang ^/padloc_pwa(.*)$ $1 break; } # sertifikat SSL ssl_certificate /ssl/cert; # Kunci pribadi SSL ssl_certificate_key /ssl/key; # Tambahkan file ini untuk menambahkan konfigurasi ssl tingkat lanjut termasuk /ssl/ssl.conf; }}# Bagian ini diperlukan oleh nginxevents {}Simpan file dengan menekan Ctrl + X dan memasukkan Y saat diminta.
Konfigurasi di atas meneruskan semua permintaan yang dibuat dari
padloc_server
wadah ke/server
lokasi nama domain dan permintaan apa pun yang dibuat daripadlock_pwa
wadah ke akar. Itu juga mengarahkan semua lalu lintas HTTP ke HTTPS. Kami juga telah mengatur ukuran unggahan file menjadi 10 MB untuk lampiran. Anda dapat mengubah ukuran sesuai kebutuhan Anda. Pengaturan SSL telah disertakan melalui file eksternal yang akan kami konfigurasikan nanti.Langkah 7 - Buat File Lingkungan
Buat dan buka
~/padloc/.env
file untuk diedit.$ nano .envTempelkan kode berikut di dalamnya.
# PENGATURAN UMUM# ================# URL yang akan diselesaikan ke instance serverPL_PWA_URL=https://example.com/# URL yang akan diselesaikan ke aplikasi webPL_SERVER_URL =https://example.com/server/# PENGATURAN SERVER# ===============# Port instance server akan mendengarkan diPL_SERVER_PORT=3000# Direktori tempat file database akan disimpanPL_DB_DIR=. /db# Direktori tempat file lampiran akan disimpanPL_ATTACHMENTS_DIR=./attachments# PWA SETTINGS# ============# Port aplikasi web akan dilayani dariPL_PWA_PORT=8080# Direktori tempat kode statis untuk web aplikasi akan disimpanPL_PWA_DIR=./pwa# PENGATURAN EMAIL# =============# Host SMTPPL_EMAIL_SERVER=smtp.example.com# Nama pengguna SMTP[dilindungi email]# port SMTPPL_EMAIL_PORT=443# kata sandi SMTPPL_EMAIL_PASSWORD=your_smtp_password# Selalu gunakan TLS saat mengirim email# PL_EMAIL_SECURE=false# Email ID untuk mengirim email dari[email protected]# PENGATURAN SSL# ============# Jalur ke sertifikat ssl AndaPL_SSL_CERT=/etc/ letsencrypt/live/example.com/fullcha in.pem# Jalur ke kunci pribadi ssl AndaPL_SSL_KEY=/etc/letsencrypt/live/example.com/privkey.pem# File konfigurasi lanjutanPL_SSL_CONF=./ssl/ssl.confSimpan file dengan menekan Ctrl + X dan memasukkan Y ketika diminta. Sebagian besar pengaturan cukup jelas. Konfigurasi Nginx yang ada mengharapkan aplikasi dilayani melalui domain utama dan server melalui
/server
direktori.PL_PWA_DIR
tidak wajib disetel di sini dan di file komposisi Docker tetapi membuatnya mempercepat startup kontainer, dan oleh karena itu, Anda harus selalu menyetelnya.Padloc membutuhkan kemampuan untuk mengirim email untuk fungsionalitas seperti memverifikasi pengguna baru, otentikasi dua faktor, dan mengatur ulang kata sandi. Oleh karena itu, detail SMTP adalah wajib.
Untuk fitur SSL, kami menggunakan direktori default Let's Encrypt tempat sertifikat berada. Konfigurasi SSL tambahan akan diberikan melalui file
/ssl/ssl.conf
.Langkah 8 - Instal SSL
Untuk menginstal sertifikat SSL menggunakan Let's Encrypt, kita perlu menginstal alat Certbot.
Pertama, Anda perlu mengunduh dan menginstal repositori EPEL.
$ sudo dnf install epel-releaseJalankan perintah berikut untuk menginstal Certbot.
$ sudo dnf install certbotBuat sertifikat SSL.
$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d example.comPerintah di atas akan mengunduh sertifikat ke
/etc/letsencrypt/live/example.com
direktori di server Anda.Buat grup Diffie-Hellman sertifikat.
$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048Buat Pekerjaan Cron untuk memperbarui SSL. Ini akan berjalan setiap minggu untuk memeriksa sertifikat dan memperbaruinya jika diperlukan. Untuk itu, buat dulu file
/etc/cron.weekly/certbot-renew
dan buka untuk diedit.$ sudo nano /etc/cron.weekly/certbot-renewTempelkan kode berikut. Kami menggunakan perintah Docker untuk memulai, menghentikan, dan memulai ulang wadah Nginx tergantung pada status pembaruan.
#!/bin/shcertbot perbarui --cert-name example.com --pre-hook "docker stop nginx" --post-hook "docker start nginx" --renew-hook "docker restart nginx"Simpan file dengan menekan Ctrl + X dan memasukkan Y saat diminta.
Ubah izin pada file tugas agar dapat dieksekusi.
$ sudo chmod +x /etc/cron.weekly/certbot-renewLangkah 9 - Konfigurasi SSL
Buat dan buka file
~/padloc/ssl/ssl.conf
untuk diedit.$ nano ssl/ssl.confTempelkan kode berikut di dalamnya.
ssl_session_timeout 1d;ssl_session_cache dibagikan:MozSSL:10m;ssl_session_tickets off;ssl_prefer_server_ciphers nonaktif;ssl_protocols TLSv1.2 TLSv1.3;ssl_ciphers ECDHE-ECDSA-CMAES128-GECDHE-ECDSA-CMAES128- 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-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=60 detik;resolver_timeout 2s;Simpan file dengan menekan Ctrl + X dan memasukkan Y saat diminta.
File di atas memperkenalkan beberapa pengaturan SSL yang disarankan untuk membuat situs Anda lebih aman. Ini membatasi protokol TLS ke v1.2 dan v1.3 serta memungkinkan penstaplesan dan verifikasi Online Certificate Status Protocol (OCSP).
Langkah 10 - Jalankan Padloc
Sekarang Anda telah mengonfigurasi semuanya, jalankan Padloc menggunakan perintah berikut.
$ docker-compose up -dPeriksa status kontainer.
$ docker psAnda akan mendapatkan hasil yang serupa.
Langkah 11 - Akses dan Konfigurasi Padloc
Buka URL
https://example.com
di browser Anda, dan Anda akan mencapai halaman loginnya.
Klik tombol Daftar Sekarang link untuk memulai pendaftaran.
Masukkan nama dan alamat email Anda, lalu tekan tombol Lanjutkan untuk melanjutkan.
Padloc akan mengirimi Anda email dengan kode konfirmasi. Masukkan kode konfirmasi pada kotak di atas, dan tekan Lanjutkan untuk melanjutkan.
Padloc akan secara otomatis membuat kata sandi utama untuk Anda. Arahkan kursor ke kotak dan salin. Tempel lagi di kotak di bawah ini. Anda juga dapat memilih untuk menggunakan kata sandi Anda. Tekan Lanjutkan setelah selesai.
Anda akan dibawa ke Homepage Padloc. Anda dapat mulai menyimpan data login dan dokumen sensitif Anda.
Langkah 12 - Perbarui Padloc
Memperbarui Padloc adalah proses dua langkah. Pertama, pindah ke direktori Padloc.
$ cd ~/padlocMatikan dan keluarkan wadah Padloc yang ada.
$ docker-compose down --remove-orphansTarik gambar terbaru.
$ tarikan komposisi buruh pelabuhanMulai container lagi.
$ docker-compose up -dKesimpulan
Ini mengakhiri tutorial kami tentang menginstal pengelola kata sandi yang di-host-sendiri Padloc di server Rocky Linux 8. Jika Anda memiliki pertanyaan, kirimkan di komentar di bawah.
Cara Memasang Let's Encrypt SSL untuk NGINX di Rocky Linux 8 Cara Mengatur Registri Docker Pribadi di Rocky Linux 8Rocky Linux