Passbolt adalah pengelola kata sandi sumber terbuka dan gratis untuk tim. Ini memungkinkan anggota tim untuk menyimpan dan membagikan kredensial/kata sandi dengan aman. Passbolt dibuat dengan PHP dan dapat dijalankan di bawah tumpukan LEMP atau dijalankan sebagai wadah buruh pelabuhan.
Dalam tutorial ini, kami akan menunjukkan kepada Anda langkah demi langkah menginstal dan mengonfigurasi pengelola kata sandi open source 'Passbolt' di server CentOS 7. Passbolt adalah aplikasi web yang dikembangkan dengan PHP, dan kami akan menjalankannya di bawah LEMP (Linux, Nginx, MySQL/MariaDB, dan PHP-FPM).
Prasyarat
- CentOS 7
- Hak istimewa root
Apa yang akan kita lakukan?
- Instal Dependensi
- Memasang dan Mengonfigurasi Database MariaDB
- Instal Nginx dan PHP-FPM
- Buat SSL Letsencrypt
- Konfigurasi Nginx dan PHP-FPM
- Unduh Passbolt dan Buat Kunci OpenPGP
- Pasang Passbolt
- Pasca-Instalasi Passbolt
- Penyiapan Server Keamanan Tambahan
Langkah 1 - Instal Dependensi
Hal pertama yang akan kita lakukan untuk panduan ini adalah menginstal semua dependensi paket yang diperlukan untuk instalasi Passbolt, termasuk menginstal repositori EPEL dan Remi PHP, komposer php, gcc dll.
Tambahkan repositori EPEL.
sudo yum -y install yum-utils epel-release
Tambahkan dan aktifkan repositori Remi PHP.
sudo yum -y install 'http://rpms.remirepo.net/enterprise/remi-release-7.rpm'
sudo yum-config-manager --enable 'remi-php72'
Sekarang instal paket dependensi komposer, git gcc dll menggunakan perintah yum di bawah ini.
sudo yum -y install unzip wget composer policycoreutils-python git gcc
Tunggu instalasi semua paket.
Langkah 2 - Instal dan Konfigurasi MySQL/MariaDB
Pada langkah ini, kita akan menginstal database MariaDB dan kemudian membuat database dan pengguna baru untuk instalasi Passbolt.
Instal server MariaDB menggunakan perintah yum di bawah ini.
sudo yum -y install mariadb-server
Setelah penginstalan selesai, mulai layanan MariaDB dan aktifkan untuk diluncurkan setiap saat pada waktu boot sistem.
sudo systemctl start mariadb
sudo systemctl enable mariadb
Sekarang kita perlu mengkonfigurasi kata sandi 'root' untuk MariaDB. Jalankan perintah 'mysql_secure_installation' di bawah ini.
mysql_secure_installation
Ketik kata sandi root Anda yang baru.
Dan kata sandi root MariaDB telah dikonfigurasi.
Selanjutnya, login ke shell MySQL menggunakan pengguna 'root'.
mysql -u root -p
Buat database baru dan nama pengguna 'passbolt' dengan kata sandi 'hakase-labs', jalankan kueri MySQL di bawah ini.
create database passbolt;
grant all on passbolt.* to 'passbolt'@'localhost' identified by 'hakase-labs';
flush privileges;
quit;
Server MariaDB telah diinstal pada server CentOS 7, dan database untuk instalasi 'Passbolt' telah dibuat.
Langkah 3 - Instal Nginx dan PHP-FPM
Setelah menginstal server MariaDB, kita akan menginstal Nginx dari repositori EPEL, dan paket PHP-FPM menggunakan repositori Remi.
Instal server web Nginx.
sudo yum -y install nginx
Setelah penginstalan selesai, mulai layanan Nginx dan aktifkan untuk diluncurkan setiap kali sistem boot.
sudo systemctl start nginx
sudo systemctl enable nginx
Sekarang instal PHP-FPM dengan semua ekstensi yang diperlukan menggunakan perintah yum di bawah ini.
sudo yum -y install php-fpm php-intl php-gd php-mysql php-mcrypt php-pear php-devel php-mbstring php-fpm gpgme-devel
Dan jika instalasi selesai, mulai layanan PHP-FPM dan aktifkan peluncurannya setiap kali sistem boot.
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
Server web Nginx dan PHP-FPM telah diinstal.
Langkah 4 - Buat SSL Letsencrypt
Instal alat certbot pada sistem.
sudo yum -y install certbot
Sekarang hentikan layanan nginx.
sudo systemctl stop nginx
Dan buat SSL Letsencrypt untuk nama domain passbolt 'passbolt.hakase.io'.
Jalankan perintah certbot di bawah ini.
sudo certbot certonly --standalone --agree-tos --no-eff-email --email [email protected] -d passbolt.hakase.io
Alat certbot akan menjalankan server web sementara untuk verifikasi.
Dan jika sudah selesai, Anda akan mendapatkan sertifikat Anda di direktori '/etc/letsencrypt/live/'.
Langkah 5 - Konfigurasi Nginx dan PHP-FPM
Pada langkah ini, kita akan mengkonfigurasi server web Nginx dengan membuat konfigurasi virtual host baru untuk Passbolt, dan mengkonfigurasi PHP-FPM dan menginstal dukungan PHP GnuPG.
Konfigurasi PHP-FPM
Buka direktori '/etc/php-fpm.d' dan edit konfigurasi kumpulan default 'www.conf' menggunakan editor vim.
cd /etc/php-fpm.d/
sudo vim www.conf
Ubah pengguna dan grup default menjadi pengguna 'nginx'.
user = nginx group = nginx
Ubah port mendengarkan PHP-FPM ke file sock seperti di bawah ini.
listen = /var/run/php-fpm/php-fpm.sock
Batalkan komentar pada baris di bawah ini dan ubah listen.owner dan listen.group untuk file kaus kaki menjadi 'nginx'.
listen.owner = nginx listen.group = nginx listen.mode = 0660
Simpan dan keluar.
Sekarang kita perlu mengubah pemilik direktori sesi PHP dan menginstal dukungan ekstensi PHP GnuPG.
Ubah izin direktori sesi php.
sudo chgrp nginx /var/lib/php/session
Instal ekstensi PHP GnuPG menggunakan perintah pecl dan aktifkan.
sudo pecl install gnupg
echo "extension=gnupg.so" > /etc/php.d/gnupg.ini
Ekstensi PHP GnuPG telah diinstal.
Konfigurasi Nginx Virtual Host
Buka direktori '/etc/nginx/conf.d' dan buat file host virtual baru 'passbolt.conf'.
cd /etc/nginx/conf.d/
sudo vim passbolt.conf
Tempelkan konfigurasi di bawah.
server { listen 443; server_name passbolt.hakase.io; ssl on; ssl_certificate /etc/letsencrypt/live/passbolt.hakase.io/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/passbolt.hakase.io/privkey.pem; ssl_protocols TLSv1.2; ssl_prefer_server_ciphers on; ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS; ssl_session_tickets off; root /var/www/passbolt; location / { try_files $uri $uri/ /index.php?$args; index index.php; } location ~ \.php$ { fastcgi_index index.php; fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_split_path_info ^(.+\.php)(.+)$; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SERVER_NAME $http_host; } location ~* \.(jpe?g|woff|woff2|ttf|gif|png|bmp|ico|css|js|json|pdf|zip|htm|html|docx?|xlsx?|pptx?|txt|wav|swf|svg|avi|mp\d)$ { access_log off; log_not_found off; try_files $uri /webroot/$uri /index.php?$args; } }
Simpan dan keluar.
Uji konfigurasi nginx dan pastikan tidak ada kesalahan.
sudo nginx -t
Sekarang restart layanan Nginx dan PHP-FPM.
sudo systemctl restart nginx
sudo systemctl restart php-fpm
Konfigurasi server web Nginx dan PHP-FPM telah berhasil diselesaikan.
Langkah 6 - Unduh Passbolt dan Buat Kunci OpenPGP
Pada langkah ini, kita akan mengunduh aplikasi web passbolt dan membuat kunci OpenPGP baru yang akan digunakan untuk API Passbolt.
Buka direktori '/var/www' dan klon aplikasi web passbolt.
cd /var/www/
git clone https://github.com/passbolt/passbolt_api.git passbolt/
Sekarang instal paket 'haveged' dan mulai layanan.
sudo yum -y install haveged
sudo systemctl start haveged
Buat kunci OpenPGP baru menggunakan perintah gpg di bawah ini.
gpg --gen-key
Ketik detail Anda seperti email, hari kedaluwarsa, dll.
Catatan:
- Ekstensi PHP GnuPG tidak mendukung frasa sandi Kunci OpenPGP, jadi biarkan frasa sandi tetap kosong.
Setelah selesai, centang semua kunci yang tersedia dan tulis 'sidik jari' kunci Anda.
gpg --list-keys --fingerprint
Sekarang ekspor kunci publik dan pribadi ke direktori '/var/www/passbolt'.
gpg --armor --export-secret-keys [email protected] > /var/www/passbolt/config/gpg/serverkey_private.asc
gpg --armor --export [email protected] > /var/www/passbolt/config/gpg/serverkey.asc
Dan ubah semua izin kunci tersebut dan pemilik direktori '/var/www/passbolt'.
sudo chmod 640 /var/www/passbolt/config/gpg/serverkey*
sudo chown -R nginx:nginx /var/www/passbolt
Aplikasi web Passbolt telah diunduh, dan kunci OpenPGP telah dibuat.
Langkah 7 - Instal Passbolt
Sebelum menginstal semua dependensi untuk 'Passbolt', kita perlu menginisialisasi keyring kunci gpg untuk pengguna nginx.
Jalankan perintah di bawah ini.
sudo su -s /bin/bash -c "gpg --list-keys" nginx
Sekarang login ke pengguna 'nginx' dan pergi ke direktori '/var/www/passbolt'.
su -s /bin/bash nginx
cd /var/www/passbolt/
Instal semua dependensi passbolt menggunakan perintah composer di bawah ini.
composer install --no-dev
Setelah selesai, salin file konfigurasi default aplikasi dan edit dengan vim.
cp config/passbolt.default.php config/passbolt.php
vim config/passbolt.php
Di bagian 'Aplikasi', ubah nama domain dengan nama domain Anda sendiri.
'App' => [ // A base URL to use for absolute links. // The url where the passbolt instance will be reachable to your end users. // This information is need to render images in emails for example 'fullBaseUrl' => 'https://passbolt.hakase.io', ],
Dalam konfigurasi 'Sumber data', ketik info database detail Anda.
// Database configuration. 'Datasources' => [ 'default' => [ 'host' => 'localhost', //'port' => 'non_standard_port_number', 'username' => 'passbolt', 'password' => 'hakase-labs', 'database' => 'passbolt', ], ],
Di bawah konfigurasi database, tambahkan konfigurasi 'ssl' baru untuk memaksa semua koneksi mengamankan https.
'ssl' => [ 'force' => true, ],
Untuk konfigurasi email SMTP, ubah semuanya dengan detail Anda.
// Email configuration. 'EmailTransport' => [ 'default' => [ 'host' => 'localhost', 'port' => 25, 'username' => 'user', 'password' => 'secret', // Is this a secure connection? true if yes, null if no. 'tls' => null, //'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', ], ],
Dan terakhir, tempel 'sidik jari' kunci OpenPGP Anda dan batalkan komentar pada baris konfigurasi publik dan pribadi tersebut.
'serverKey' => [ // Server private key fingerprint. 'fingerprint' => '63BA4EBB65126A6BE334075DD210E985E2ED02E5', 'public' => CONFIG . 'gpg' . DS . 'serverkey.asc', 'private' => CONFIG . 'gpg' . DS . 'serverkey_private.asc', ],
Simpan dan keluar.
Sekarang instal 'Passbolt' menggunakan perintah di bawah ini.
./bin/cake passbolt install
Anda akan diminta untuk membuat pengguna dan kata sandi admin baru - ketikkan detail Anda.
Dan pada akhirnya kamu akan diberikan link 'pendaftaran', tulis di note kamu.
Langkah 8 - Pasca-Instalasi Passbolt
Buka browser web Anda dan instal ekstensi 'Passbolt' browser web Anda.
Berikut ini adalah tautan ekstensi passbolt untuk browser Chrome. Pasang ekstensi.
https://chrome.google.com/webstore/detail/passbolt-extension
Sekarang buka tab baru dan tempel tautan 'pendaftaran' yang diberikan ke bilah alamat. Milik saya adalah:
https://passbolt.hakase.io/setup/install/b830cc87-1aa5-4f6f-95f4-9be21accdefa/103001a4-39a1-4bb9-866c-822ac0f7c76f
Dan Anda akan mendapatkan halaman yang mirip dengan yang ditunjukkan di bawah ini.
Centang kotak di bagian bawah dan klik tombol 'Berikutnya'. Sekarang Anda akan diminta untuk membuat kunci baru untuk pengguna.
Klik tombol 'Berikutnya'.
Siapkan 'Frase Sandi', ketikkan frasa sandi Anda yang kuat.
Klik tombol 'Berikutnya'. Cadangkan kunci Anda dengan menekan tombol 'Unduh' dan klik 'Berikutnya' lagi.
Untuk token keamanan, biarkan default dan klik 'Berikutnya'.
Dan Anda akan diarahkan ke halaman login Passbolt.
Ketik 'Frase Sandi' Anda dan klik 'Masuk'. Dan Anda akan melihat Dashboard pengguna Passbolt seperti di bawah ini.
Instalasi pengelola kata sandi sumber terbuka Passbolt pada CentOS 7 telah berhasil diselesaikan.
Langkah 9 - Pengaturan Server Keamanan Tambahan
- Siapkan Firewalld
Buka port HTTP, HTTPS, dan SMTP baru di server.
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-service=https --permanent
sudo firewall-cmd --add-service=smtp --permanent
Sekarang muat ulang konfigurasi firewalld.
sudo firewall-cmd --reload
- Siapkan Izin Selinux
Izin untuk direktori webroot 'Passbolt'.
sudo semanage fcontext -a -t httpd_sys_content_t '/var/www(/.*)?'
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/passbolt/tmp(/.*)?'
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/passbolt/logs(/.*)?'
sudo restorecon -Rv /var/www
Izin untuk direktori keyring Nginx gnupg.
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/lib/nginx/.gnupg(/.*)?'
sudo restorecon -Rv /var/lib/nginx/.gnupg