GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Memasang Pengelola Kata Sandi Passbolt di Server Ubuntu 20.04

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 untuk 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 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

Ubuntu
  1. Cara Menginstal Desktop (GUI) di Server Ubuntu

  2. Cara Menginstal MySQL di Ubuntu 20.04

  3. Cara Menginstal CS-Cart di Ubuntu 18.04

  1. Cara Menginstal MySQL di Ubuntu 18.04

  2. Cara Menginstal Pengelola Kata Sandi TeamPass di Ubuntu 20.04

  3. Instal dan Konfigurasi Pengelola Kata Sandi Tim Passbolt di Ubuntu 20.04

  1. Cara Menginstal KeeWeb Password Manager di Ubuntu 20.04

  2. Cara Mengatur Pengelola Kata Sandi Teampass di Ubuntu 16.04

  3. Cara menginstal KeyPass Password Manager di Ubuntu 20.04