Passbolt adalah pengelola kata sandi yang di-host-sendiri sumber terbuka, yang memungkinkan Anda berbagi dan menyimpan kredensial login situs web, kata sandi router, kata sandi Wi-Fi, dll. Tutorial ini akan menunjukkan kepada Anda cara menginstal Passbolt Community Edition (CE) di Ubuntu 18.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 menambahkan kredensial login secara manual.
Anda mungkin pernah mendengar tentang pengelola kata sandi yang di-host sendiri seperti Bitwarden, tetapi memerlukan Docker untuk menginstal, sehingga hanya berfungsi pada komputer 64 bit. Tutorial Passbolt ini berfungsi pada komputer 32 bit dan 64 bit.
Prasyarat menginstal Passbolt di Server Ubuntu 18.04
Passbolt ditulis dalam PHP dan bergantung pada server database MySQL/MariaDB. Jadi, Anda perlu menyiapkan tumpukan LAMP atau tumpukan LEMP. Jika Anda lebih suka server web Apache, atur tumpukan LAMP.
- Cara Memasang LAMP Stack di Server/Desktop Ubuntu 18.04
Jika Anda lebih suka server web Nginx, maka siapkan tumpukan LEMP.
- Cara Memasang LEMP Stack (Nginx, MariaDB, PHP7.2) di Ubuntu 18.04 LTS
Anda juga memerlukan nama domain, sehingga Anda dapat mengakses Passbolt dari mana saja dengan browser web. Saya mendaftarkan nama domain saya dari NameCheap karena harganya murah dan mereka memberikan perlindungan privasi whois secara gratis.
Langkah 1:Unduh Passbolt ke Server Ubuntu 18.04 Anda
Jika Anda pergi ke situs web resmi untuk mengunduh Passbolt, Anda harus memasukkan nama dan alamat email Anda. Jika bukan itu yang Anda suka, 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/
Ubah direktori.
cd /var/www/passbolt/
Instal Komposer – manajer ketergantungan PHP.
sudo apt install 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
Sekarang kita perlu masuk ke konsol MariaDB dan membuat database dan pengguna untuk Passbolt. Secara default, paket MaraiDB di Ubuntu menggunakan unix_socket untuk mengautentikasi login pengguna, yang pada dasarnya berarti Anda dapat menggunakan nama pengguna dan kata sandi OS untuk masuk ke konsol MariaDB. Jadi Anda dapat menjalankan perintah berikut untuk login tanpa memberikan kata sandi root 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:Instal Modul PHP yang Diperlukan dan Direkomendasikan.
Jalankan perintah berikut untuk menginstal modul PHP yang diperlukan atau direkomendasikan oleh Passbolt
sudo apt install php-imagick php-gnupg php7.2-common php7.2-mysql php7.2-fpm php7.2-ldap php7.2-gd php7.2-imap php7.2-json php7.2-curl php7.2-zip php7.2-xml php7.2-mbstring php7.2-bz2 php7.2-intl php7.2-gmp php7.2-xsl
Kemudian restart Apache. (Jika Anda menggunakan Nginx, Anda tidak perlu memulai ulang Nginx.)
sudo systemctl restart apache2
Langkah 4:Buat Kunci OpenPGP
Jika Anda menggunakan VPS (Virtual Private Server), disarankan untuk menginstal haveged paket untuk menghasilkan entropi yang cukup.
sudo apt install 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, cukup tekan tombol Tab dan pilih OK, karena modul php-gnupg saat ini tidak mendukung penggunaan frasa sandi.
Salin kunci pribadi ke lokasi konfigurasi passbolt:
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 5: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 database, nama pengguna database dan kata sandi yang Anda buat sebelumnya.
// 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 menyetel tls ke true, 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 cepat menyiapkan server email Anda sendiri di Ubuntu 18.04 dengan Modoboa
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 harus menghapus semua spasi.
'fingerprint' => '2FC8945833C51946E937F9FED47B0811573EE67E',
Anda bisa mendapatkan sidik jari kunci Anda dengan perintah berikut. Ganti [email protected]
dengan alamat email Anda saat membuat pasangan kunci PGP.
sudo 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 6: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 7: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; 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.2-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 8: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 18.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 9: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 mengimpor kunci yang ada.
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.
Mengatur 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 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