Passbolt adalah pengelola kata sandi yang di-host-sendiri sumber terbuka, yang memungkinkan Anda menyimpan dan membagikan kredensial login situs web, kata sandi router, kata sandi Wi-Fi, dll dengan aman. Tutorial ini akan menunjukkan kepada Anda cara menginstal Passbolt Community Edition (CE) di Ubuntu 20.04 dengan server web Apache atau Nginx.
Fitur Passbolt
- Gratis &sumber terbuka
- Kata sandi dienkripsi dengan OpenPGP, standar kriptografi yang terbukti.
- Ekstensi peramban tersedia untuk Firefox dan Google Chrome.
- Bagikan kredensial login dengan mudah dengan tim Anda tanpa mengorbankan keamanan.
- Antarmuka yang bersih dan ramah pengguna.
- Impor dan ekspor sandi. Anda dapat mengekspor kata sandi Anda ke
.kdbx
atau.csv
format file untuk digunakan dengan KeepassX, LastPass atau 1password. - Anda dapat menambahkan kredensial login secara manual.
Prasyarat menginstal Passbolt di Server Ubuntu 20.04
Passbolt ditulis dalam PHP dan bergantung pada server database MySQL/MariaDB. Jadi, Anda perlu menyiapkan tumpukan LAMP atau tumpukan LEMP sebelum menginstal Passbolt. Jika Anda lebih suka server web Apache, atur tumpukan LAMP.
- Cara Memasang LAMP Stack di Ubuntu 20.04
Jika Anda lebih suka server web Nginx, maka siapkan tumpukan LEMP.
- Cara Memasang LEMP Stack di Ubuntu 20.04
Anda juga memerlukan nama domain, sehingga Anda dapat mengakses Passbolt dengan aman dari mana saja dengan browser web. Saya mendaftarkan nama domain saya dari NameCheap karena harganya murah dan mereka memberikan perlindungan privasi whois gratis seumur hidup.
Setelah persyaratan di atas terpenuhi, ikuti petunjuk di bawah ini untuk menginstal Passbolt.
Langkah 1:Unduh Passbolt ke Server Ubuntu 20.04 Anda
Jika Anda pergi ke situs web resmi untuk mengunduh Passbolt, Anda harus memasukkan nama dan alamat email Anda. Jika Anda tidak menyukainya, unduh versi stabil terbaru dari Github dengan menjalankan perintah berikut di server Anda.
sudo apt install git cd /var/www/ sudo git clone https://github.com/passbolt/passbolt_api.git
File akan disimpan di passbolt_api
direktori. Kami mengganti namanya menjadi passbolt
.
sudo mv passbolt_api passbolt
Kemudian buat pengguna server web (www-data
) sebagai pemilik direktori ini.
sudo chown -R www-data:www-data /var/www/passbolt
Jalankan perintah berikut untuk menginstal modul PHP yang diperlukan atau direkomendasikan oleh Passbolt
sudo apt install php-imagick php-gnupg php7.4-common php7.4-mysql php7.4-fpm php7.4-ldap php7.4-gd php7.4-imap php7.4-json php7.4-curl php7.4-zip php7.4-xml php7.4-mbstring php7.4-bz2 php7.4-intl php7.4-gmp php7.4-xsl
Kemudian restart Apache. (Jika Anda menggunakan Nginx, Anda tidak perlu memulai ulang Nginx.)
sudo systemctl restart apache2
Ubah direktori.
cd /var/www/passbolt/
Instal Komposer – manajer ketergantungan PHP.
sudo apt install composer
Buat direktori cache untuk Komposer.
sudo mkdir /var/www/.composer
Buat www-data
sebagai pemilik.
sudo chown -R www-data:www-data /var/www/.composer
Gunakan Composer untuk menginstal dependensi.
sudo -u www-data composer install --no-dev
Jika meminta Anda untuk mengatur izin folder, pilih Y
.
Langkah 2:Buat Database MariaDB dan Pengguna untuk Passbolt
Masuk ke konsol MariaDB.
sudo mysql -u root
Selanjutnya, buat database baru untuk Passbolt menggunakan perintah berikut. Tutorial ini menamainya passbolt
, Anda dapat menggunakan nama apa pun yang Anda suka untuk database. Kami juga menentukan utf8mb4
sebagai set karakter untuk mendukung karakter dan emoji non-Latin.
CREATE DATABASE passbolt DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Perintah berikut akan membuat pengguna database dan kata sandi, dan pada saat yang sama memberikan semua izin database baru kepada pengguna baru sehingga nanti Passbolt dapat menulis ke database. Ganti teks merah dengan nama database, nama pengguna, dan kata sandi pilihan Anda.
GRANT ALL ON passbolt.* TO 'passboltuser'@'localhost' IDENTIFIED BY 'password';
Hapus tabel hak istimewa dan keluar dari konsol MariaDB.
FLUSH PRIVILEGES; EXIT;
Langkah 3:Buat Kunci OpenPGP
Jika Anda menggunakan VPS (Virtual Private Server), disarankan untuk menginstal haveged paket untuk menghasilkan entropi yang cukup.
sudo apt install haveged
haveged.service
akan secara otomatis dimulai setelah instalasi. Anda dapat memeriksa statusnya dengan:
sudo systemctl status haveged
Kemudian jalankan perintah berikut untuk menghasilkan pasangan kunci baru.
gpg --gen-key
Anda akan diminta untuk memasukkan nama dan alamat email Anda. Jika Anda diminta untuk menyetel frasa sandi, lewati dengan menekan tombol Tab dan pilih OK, karena modul php-gnupg saat ini tidak mendukung penggunaan frasa sandi.
Salin kunci pribadi ke lokasi konfigurasi passbolt. Ganti [email protected]
dengan alamat email saat membuat kunci PGP.
gpg --armor --export-secret-keys [email protected] | sudo tee /var/www/passbolt/config/gpg/serverkey_private.asc > /dev/null
Dan salin juga kunci publiknya.
gpg --armor --export [email protected] | sudo tee /var/www/passbolt/config/gpg/serverkey.asc > /dev/null
Inisialisasi www-data
gantungan kunci pengguna.
sudo su -s /bin/bash -c "gpg --list-keys" www-data
Langkah 4:Konfigurasikan Passbolt
Pastikan Anda berada di /var/www/passbolt/
direktori.
cd /var/www/passbolt/
Salin file konfigurasi sampel ke file konfigurasi produksi.
sudo cp config/passbolt.default.php config/passbolt.php
Edit file konfigurasi dengan editor teks baris perintah, seperti Nano.
sudo nano config/passbolt.php
Pertama, temukan baris berikut.
'fullBaseUrl' => 'https://www.passbolt.test',
Ganti URL dengan URL Anda sendiri, seperti https://passbolt.yourdomain.com
. Jangan lupa untuk membuat catatan DNS A untuk subdomain ini di pengelola catatan DNS Anda.
Dalam database configuration
bagian, masukkan nama basis data, nama pengguna basis data, dan kata sandi yang Anda buat pada langkah 2.
// Database configuration. 'Datasources' => [ 'default' => [ 'host' => 'localhost', //'port' => 'non_standard_port_number', 'username' => 'user', 'password' => 'secret', 'database' => 'passbolt', ], ],
Dalam email configuration
bagian,
- Tentukan nama host SMTP, nomor port, kredensial login, sehingga passbolt Anda dapat mengirim email. Biasanya Anda perlu menggunakan port 587 untuk menjumlahkan email ke server SMTP jarak jauh. Pastikan Anda mengatur
tls
untuktrue
, sehingga transaksi SMTP akan dienkripsi. - Setel juga
From:
alamat email dan nama Dari.
// Email configuration. 'EmailTransport' => [ 'default' => [ 'host' => 'mail.yourdomain.com', 'port' => 587, 'username' => '[email protected]', 'password' => 'secret', // Is this a secure connection? true if yes, null if no. 'tls' => true, //'timeout' => 30, //'client' => null, //'url' => null, ], ], 'Email' => [ 'default' => [ // Defines the default name and email of the sender of the emails. 'from' => ['[email protected]_organization.com' => 'Passbolt'], //'charset' => 'utf-8', //'headerCharset' => 'utf-8', ], ],
Untuk mengatur server email Anda sendiri dengan mudah, silakan lihat tutorial berikut.
- Cara mudah mengatur server email Anda sendiri di Ubuntu 20.04 dengan iRedMail
Catatan :Jika passbolt diinstal pada kotak yang sama dengan server email Anda, maka Anda tidak perlu menentukan nama pengguna dan sandi di EmailTransport
. Cukup gunakan //
untuk mengomentari dua baris ini. Tangkapan layar berikut menunjukkan contoh konfigurasi untuk skenario ini.
Pada bagian gpg, masukkan sidik jari kunci GPG seperti di bawah ini. Anda perlu menghapus semua spasi putih di sidik jari.
'fingerprint' => '2FC8945833C51946E937F9FED47B0811573EE67E',
Anda bisa mendapatkan sidik jari kunci Anda dengan perintah berikut. Ganti [email protected]
dengan alamat email Anda saat membuat pasangan kunci PGP.
gpg --list-keys --fingerprint | grep -i -B 2 '[email protected]'
Setelah memasukkan sidik jari, batalkan komentar pada dua baris berikut.
'public' => CONFIG . 'gpg' . DS . 'serverkey.asc', 'private' => CONFIG . 'gpg' . DS . 'serverkey_private.asc',
Simpan dan tutup file.
Langkah 5:Jalankan Skrip Instal
Jalankan skrip instalasi sebagai www-data
pengguna.
sudo su -s /bin/bash -c "./bin/cake passbolt install --force" www-data
Selama instalasi, Anda akan diminta untuk membuat akun admin.
Setelah Anda membuat akun, Anda akan diberikan URL untuk menyelesaikan instalasi di browser web . Sebelum melakukan itu, kita perlu mengkonfigurasi server web menggunakan Apache atau Nginx.
Langkah 6:Buat Apache Virtual Host atau File Konfigurasi Nginx untuk Passbolt
Apache
Jika Anda menggunakan server web Apache, buat host virtual untuk Passbolt.
sudo nano /etc/apache2/sites-available/passbolt.conf
Masukkan teks berikut ke dalam file. Ganti passbolt.example.com
dengan nama domain asli Anda dan jangan lupa untuk mengatur catatan DNS A untuk itu. Perhatikan juga bahwa root web untuk Passbolt adalah /var/www/passbolt/webroot/
, bukan /var/www/passbolt/
.
<VirtualHost *:80> ServerName passbolt.exmaple.com DocumentRoot /var/www/passbolt/webroot/ ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined <Directory /> Options FollowSymLinks AllowOverride All </Directory> <Directory /var/www/passbolt/> Options FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> </VirtualHost>
Simpan dan tutup file. Kemudian aktifkan host virtual ini dengan:
sudo a2ensite passbolt.conf
Muat ulang Apache agar perubahan diterapkan.
sudo systemctl reload apache2
Nginx
Jika Anda menggunakan server web Nginx, buat host virtual untuk Passbolt.
sudo nano /etc/nginx/conf.d/passbolt.conf
Masukkan teks berikut ke dalam file. Ganti passbolt.example.com
dengan nama domain asli Anda dan jangan lupa untuk mengatur catatan DNS A untuk itu. Perhatikan juga bahwa root web untuk Passbolt adalah /var/www/passbolt/webroot/
, bukan /var/www/passbolt/
.
server { listen 80; listen [::]:80; server_name passbolt.example.com; root /var/www/passbolt/webroot/; error_log /var/log/nginx/passbolt.error; access_log /var/log/nginx/passbolt.access; index index.php index.html index.htm index.nginx-debian.html; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { # try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; fastcgi_buffer_size 128k; fastcgi_buffers 256 16k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; } # Don't log favicon location = /favicon.ico { log_not_found off; access_log off; } # Don't log robots location = /robots.txt { access_log off; log_not_found off; } # Deny all attempts to access hidden files/folders such as .htaccess, .htpasswd, .DS_Store (Mac), etc... location ~ /\. { deny all; access_log off; log_not_found off; } # Deny all grunt, composer files location ~* (Gruntfile|package|composer)\.(js|json)$ { deny all; access_log off; log_not_found off; } # A long browser cache lifetime can speed up repeat visits to your page location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ { access_log off; log_not_found off; expires 360d; } }
Simpan dan tutup file. Kemudian uji konfigurasi Nginx.
sudo nginx -t
Jika pengujian berhasil, muat ulang Nginx agar perubahan diterapkan.
sudo systemctl reload nginx
Langkah 7:Mengaktifkan HTTPS
Untuk mengenkripsi lalu lintas HTTP, kita dapat mengaktifkan HTTPS dengan memasang sertifikat TLS gratis yang dikeluarkan dari Let's Encrypt. Jalankan perintah berikut untuk menginstal klien Let's Encrypt (certbot) di server Ubuntu 20.04.
sudo apt install certbot
Jika Anda menggunakan Nginx, maka Anda juga perlu menginstal plugin Certbot Nginx.
sudo apt install python3-certbot-nginx
Selanjutnya, jalankan perintah berikut untuk mendapatkan dan menginstal sertifikat TLS.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d passbolt.example.com
Jika Anda menggunakan Apache, instal plugin Certbot Apache.
sudo apt install python3-certbot-apache
Dan jalankan perintah ini untuk mendapatkan dan menginstal sertifikat TLS.
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d passbolt.example.com
Dimana
--nginx
:Gunakan plugin nginx.--apache
:Gunakan plugin Apache.--agree-tos
:Menyetujui persyaratan layanan.--redirect
:Memaksa HTTPS dengan pengalihan 301.--hsts
:Tambahkan header Strict-Transport-Security ke setiap respons HTTP. Memaksa browser untuk selalu menggunakan TLS untuk domain. Mempertahankan dari SSL/TLS Stripping.--staple-ocsp
:Mengaktifkan Stapel OCSP. Respons OCSP yang valid ditempelkan ke sertifikat yang ditawarkan server selama TLS.
Sertifikat sekarang harus diperoleh dan diinstal secara otomatis.
Langkah 8:Selesaikan Instalasi Passbolt di Web Browser
Pertama, Anda perlu menginstal ekstensi Passbolt di browser Firefox atau Google Chrome Anda.
- Ekstensi passbolt untuk Firefox
- Ekstensi Passbot untuk Google Chrome
Sekarang salin URL yang Anda dapatkan setelah menjalankan skrip instal dan tempel di bilah alamat browser Anda. Anda akan melihat wizard pengaturan berbasis web. Langkah pertama adalah memastikan sidik jari domain dan kunci server Anda benar.
Pada langkah kedua, cukup klik tombol Berikutnya untuk membuat kunci baru.
Pada langkah ketiga, buat frasa sandi.
Kemudian unduh kunci rahasia terenkripsi dan simpan di tempat yang aman. Kunci ini hanya dapat didekripsi dengan menggunakan frasa sandi Anda.
Pada langkah ke-4, setel token keamanan.
Terakhir, Anda dapat masuk dengan frasa sandi Anda.
Sekarang Anda dapat membuat kata sandi, mengimpor kata sandi dari file csv atau kdbx.
Langkah 8:Siapkan Cron Job untuk Mengirim Email Secara Otomatis
Untuk mengirim email sistem, jalankan perintah berikut.
sudo -u www-data /var/www/passbolt/bin/cake EmailQueue.sender
Anda dapat menambahkan perintah di file Crontab pengguna www-data untuk memproses email secara otomatis.
sudo crontab -u www-data -e
Tambahkan baris berikut dalam file untuk memproses email setiap menit.
* * * * * /var/www/passbolt/bin/cake EmailQueue.sender
Simpan dan tutup file.
(Opsional) Menyiapkan ModSecurity
Anda mungkin juga ingin menyiapkan ModSecurity firewall aplikasi web untuk melindungi aplikasi web PHP Anda dari peretasan. Jika Anda menggunakan server web Apache di Debian/Ubuntu, maka bacalah tutorial berikut.
- Cara Menyetel ModSecurity dengan Apache di Debian/Ubuntu
Jika Anda menggunakan server web Nginx di Debian/Ubuntu, maka bacalah tutorial berikut:
- Cara Mengatur ModSecurity dengan Nginx di Debian/Ubuntu
Pemecahan Masalah
Jika Anda mencoba membuat sandi, tetapi terjebak pada "tarik napas dalam-dalam dan nikmati saat ini... ”, kemungkinan karena ada sesuatu yang salah di file konfigurasi Apache atau Nginx Anda. Jika Anda menyalin konfigurasi Apache/Nginx dari artikel, Anda seharusnya tidak memiliki masalah saat membuat kata sandi.
Jika Anda mengaktifkan firewall aplikasi web ModSecurity, dan Anda melihat Tidak dapat memverifikasi kunci server kesalahan.
maka Anda perlu menambahkan pengecualian aturan khusus berikut ini di ModSecurity.
SecRule REQUEST_URI "@streq /auth/verify.json?api-version=v2" "id:1060,phase:2,ctl:ruleRemoveById=942100"
Dan restart server web Anda.
sudo systemctl restart apache2
atau
sudo systemctl restart nginx