Cách cài đặt Passbolt Self-Hosted Password Manager trên CentOS 7

theanh

Administrator
Nhân viên
Passbolt là trình quản lý mật khẩu mã nguồn mở và miễn phí cho các nhóm. Nó cho phép các thành viên trong nhóm lưu trữ và chia sẻ thông tin xác thực/mật khẩu một cách an toàn. Passbolt được tạo bằng PHP và có thể chạy dưới ngăn xếp LEMP hoặc chạy dưới dạng vùng chứa docker.

Trong hướng dẫn này, chúng tôi sẽ hướng dẫn bạn từng bước cài đặt và cấu hình trình quản lý mật khẩu mã nguồn mở 'Passbolt' trên máy chủ CentOS 7. Passbolt là một ứng dụng web được phát triển bằng PHP và chúng tôi sẽ chạy nó dưới LEMP (Linux, Nginx, MySQL/MariaDB và PHP-FPM).

Điều kiện tiên quyết​

  • CentOS 7
  • Quyền root

Chúng ta sẽ làm gì?​

  1. Cài đặt Dependencies
  2. Cài đặt và cấu hình cơ sở dữ liệu MariaDB
  3. Cài đặt Nginx và PHP-FPM
  4. Tạo SSL Letsencrypt
  5. Cấu hình Nginx và PHP-FPM
  6. Tải xuống Passbolt và tạo khóa OpenPGP
  7. Cài đặt Passbolt
  8. Passbolt sau khi cài đặt
  9. Thiết lập máy chủ bảo mật bổ sung

Bước 1 - Cài đặt Dependencies​

Điều đầu tiên chúng ta sẽ Hướng dẫn này yêu cầu cài đặt tất cả các gói phụ thuộc cần thiết cho quá trình cài đặt Passbolt, bao gồm cài đặt kho lưu trữ EPEL và Remi PHP, php composer, gcc, v.v.

Thêm kho lưu trữ EPEL.
Mã:
sudo yum -y install yum-utils epel-release
Thêm và kích hoạt kho lưu trữ Remi PHP.
Mã:
sudo yum -y install 'http://rpms.remirepo.net/enterprise/remi-release-7.rpm'
sudo yum-config-manager --enable 'remi-php72'
Bây giờ hãy cài đặt các gói phụ thuộc composer, git gcc, v.v. bằng lệnh yum bên dưới.
Mã:
sudo yum -y install unzip wget composer policycoreutils-python git gcc
Đợi tất cả các gói cài đặt.

Bước 2 - Cài đặt và cấu hình MySQL/MariaDB​

Trong bước này, chúng ta sẽ cài đặt cơ sở dữ liệu MariaDB rồi tạo cơ sở dữ liệu và người dùng mới để cài đặt Passbolt.

Cài đặt máy chủ MariaDB bằng lệnh yum bên dưới.
Mã:
sudo yum -y install mariadb-server
Sau khi cài đặt hoàn tất, hãy khởi động dịch vụ MariaDB và cho phép dịch vụ này khởi chạy mọi lúc khi khởi động hệ thống.
Mã:
sudo systemctl start mariadb
sudo systemctl enable mariadb
Bây giờ chúng ta cần cấu hình mật khẩu 'root' cho MariaDB. Chạy lệnh 'mysql_secure_installation' bên dưới.
Mã:
mysql_secure_installation
Nhập mật khẩu gốc mới của bạn.



Và mật khẩu gốc MariaDB đã được cấu hình.

Tiếp theo, đăng nhập vào shell MySQL bằng người dùng 'root'.
Mã:
mysql -u root -p
Tạo cơ sở dữ liệu và người dùng mới có tên 'passbolt' với mật khẩu 'hakase-labs', chạy các truy vấn MySQL bên dưới.
Mã:
create database passbolt;
cấp tất cả trên passbolt.* cho 'passbolt'@'localhost' được xác định bởi 'hakase-labs';
xóa quyền;
thoát;


Máy chủ MariaDB đã được cài đặt trên máy chủ CentOS 7 và cơ sở dữ liệu để cài đặt 'Passbolt' đã được tạo.

Bước 3 - Cài đặt Nginx và PHP-FPM​

Sau khi cài đặt máy chủ MariaDB, chúng ta sẽ cài đặt Nginx từ kho lưu trữ EPEL và các gói PHP-FPM bằng kho lưu trữ Remi.

Cài đặt máy chủ web Nginx.
Mã:
sudo yum -y install nginx
Sau khi cài đặt hoàn tất, hãy khởi động dịch vụ Nginx và cho phép dịch vụ này khởi chạy mọi lúc khi khởi động hệ thống.
Mã:
sudo systemctl start nginx
sudo systemctl enable nginx


Bây giờ hãy cài đặt PHP-FPM với tất cả các tiện ích mở rộng cần thiết bằng lệnh yum bên dưới.
Mã:
sudo yum -y install php-fpm php-intl php-gd php-mysql php-mcrypt php-pear php-devel php-mbstring php-fpm gpgme-devel
Và nếu quá trình cài đặt hoàn tất, hãy khởi động dịch vụ PHP-FPM và bật dịch vụ này mỗi khi khởi động hệ thống.
Mã:
sudo systemctl start php-fpm
sudo systemctl enable php-fpm


Máy chủ web Nginx và PHP-FPM đã được cài đặt.

Bước 4 - Tạo SSL Letsencrypt​

Cài đặt công cụ certbot trên hệ thống.
Mã:
sudo yum -y install certbot
Bây giờ hãy dừng dịch vụ nginx.
Mã:
sudo systemctl stop nginx
Và tạo SSL Letsencrypt cho tên miền passbolt 'passbolt.hakase.io'.

Chạy certbot lệnh bên dưới.
Mã:
sudo certbot certonly --standalone --agree-tos --no-eff-email --email [emailprotected] -d passbolt.hakase.io
Công cụ certbot sẽ chạy một máy chủ web tạm thời để xác minh.

Khi hoàn tất, bạn sẽ nhận được chứng chỉ của mình trong thư mục '/etc/letsencrypt/live/'.

Bước 5 - Cấu hình Nginx và PHP-FPM​

Trong bước này, chúng ta sẽ cấu hình máy chủ web Nginx bằng cách tạo cấu hình máy chủ ảo mới cho Passbolt, cấu hình PHP-FPM và cài đặt hỗ trợ PHP GnuPG.

Cấu hình PHP-FPM​

Đi tới thư mục '/etc/php-fpm.d' và chỉnh sửa cấu hình nhóm mặc định 'www.conf' bằng trình soạn thảo vim.
Mã:
cd /etc/php-fpm.d/
sudo vim www.conf
Thay đổi người dùng và nhóm mặc định thành người dùng 'nginx'.
Mã:
user = nginxgroup = nginx
Thay đổi cổng lắng nghe cho PHP-FPM thành tệp sock như bên dưới.
Mã:
listen = /var/run/php-fpm/php-fpm.sock
Bỏ chú thích các dòng bên dưới và thay đổi listen.owner và listen.group cho tệp sock thành 'nginx'.
Mã:
listen.owner = nginxlisten.group = nginxlisten.mode = 0660
Lưu và thoát.

Bây giờ chúng ta cần thay đổi chủ sở hữu của thư mục phiên PHP và cài đặt hỗ trợ tiện ích mở rộng PHP GnuPG.

Thay đổi quyền của thư mục phiên php.
Mã:
sudo chgrp nginx /var/lib/php/session
Cài đặt tiện ích mở rộng PHP GnuPG bằng lệnh pecl và kích hoạt nó.
Mã:
sudo pecl install gnupg
echo "extension=gnupg.so" > /etc/php.d/gnupg.ini


Phần mở rộng PHP GnuPG đã được cài đặt.

Cấu hình Nginx Virtual Host​

Đi tới thư mục '/etc/nginx/conf.d' và tạo một tệp máy chủ ảo mới 'passbolt.conf'.
Mã:
cd /etc/nginx/conf.d/
sudo vim passbolt.conf
Dán cấu hình bên dưới.
Mã:
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 bật; 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 tắt; root /var/www/passbolt; vị trí / { try_files $uri $uri/ /index.php?$args; chỉ mục index.php; } vị trí ~ \.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 TỆP_KẾ_PHẦN $document_root$fastcgi_script_name; fastcgi_param TÊN_SERVER $http_host; } vị trí ~* \.(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)$ { tắt access_log; tắt log_not_found; try_files $uri /webroot/$uri /index.php?$args; }}
Lưu và thoát.

Kiểm tra cấu hình nginx và đảm bảo không có lỗi.
Mã:
sudo nginx -t
Bây giờ hãy khởi động lại cả dịch vụ Nginx và PHP-FPM.
Mã:
sudo systemctl restart nginx
sudo systemctl restart php-fpm


Cấu hình máy chủ web Nginx và PHP-FPM đã hoàn tất thành công.

Bước 6 - Tải xuống Passbolt và tạo khóa OpenPGP​

Trong bước này, chúng ta sẽ tải xuống ứng dụng web passbolt và tạo khóa OpenPGP mới sẽ được sử dụng cho API Passbolt.

Đi tới thư mục '/var/www' và sao chép ứng dụng web passbolt.
Mã:
cd /var/www/
git clone https://github.com/passbolt/passbolt_api.git passbolt/


Bây giờ hãy cài đặt gói 'haveged' và khởi động dịch vụ.
Mã:
sudo yum -y install haveged
sudo systemctl start haveged
Tạo khóa OpenPGP mới bằng lệnh gpg bên dưới.
Mã:
gpg --gen-key
Nhập thông tin chi tiết của bạn như email, ngày hết hạn, v.v.



Lưu ý:
  • Các tiện ích mở rộng PHP GnuPG không hỗ trợ cụm mật khẩu Khóa OpenPGP, vì vậy hãy để cụm mật khẩu trống.
Sau khi hoàn tất, hãy kiểm tra tất cả các khóa có sẵn và ghi lại 'dấu vân tay' của bạn key.
Mã:
gpg --list-keys --fingerprint


Bây giờ hãy xuất khóa công khai và khóa riêng tư vào thư mục '/var/www/passbolt'.
Mã:
gpg --armor --export-secret-keys [emailprotected] > /var/www/passbolt/config/gpg/serverkey_private.asc
gpg --armor --export [emailprotected] > /var/www/passbolt/config/gpg/serverkey.asc
Và thay đổi tất cả các quyền khóa và chủ sở hữu của thư mục '/var/www/passbolt'.
Mã:
sudo chmod 640 /var/www/passbolt/config/gpg/serverkey*
sudo chown -R nginx:nginx /var/www/passbolt


Ứng dụng web Passbolt đã được tải xuống và khóa OpenPGP đã được tạo.

Bước 7 - Cài đặt Passbolt​

Trước khi cài đặt tất cả các phụ thuộc cho 'Passbolt', chúng ta cần khởi tạo vòng khóa của khóa gpg cho người dùng nginx.

Chạy lệnh bên dưới.
Mã:
sudo su -s /bin/bash -c "gpg --list-keys" nginx
Bây giờ hãy đăng nhập vào người dùng 'nginx' và đi đến thư mục '/var/www/passbolt'.
Mã:
su -s /bin/bash nginx
cd /var/www/passbolt/


Cài đặt tất cả các phụ thuộc passbolt bằng lệnh composer bên dưới.
Mã:
composer install --no-dev


Khi hoàn tất, hãy sao chép tệp cấu hình mặc định của ứng dụng và chỉnh sửa bằng vim.
Mã:
cp config/passbolt.default.php config/passbolt.php
vim config/passbolt.php
Trong phần 'Ứng dụng', hãy thay đổi tên miền bằng tên miền của riêng bạn.
Mã:
'Ứng dụng' => [ // URL cơ sở để sử dụng cho các liên kết tuyệt đối. // URL mà người dùng cuối của bạn có thể truy cập được phiên bản passbolt. // Thông tin này cần thiết để hiển thị hình ảnh trong email, ví dụ: 'fullBaseUrl' => 'https://passbolt.hakase.io', ],
Trong cấu hình 'Nguồn dữ liệu', hãy nhập thông tin cơ sở dữ liệu chi tiết của bạn.
Mã:
// Cấu hình cơ sở dữ liệu. 'Nguồn dữ liệu' => [ 'mặc định' => [ 'máy chủ' => 'localhost', // 'cổng' => 'số cổng không chuẩn', 'tên người dùng' => 'passbolt', 'password' => 'hakase-labs', 'database' => 'passbolt', ], ],
Trong cấu hình cơ sở dữ liệu, hãy thêm cấu hình 'ssl' mới để buộc mọi kết nối phải bảo mật https.
Mã:
'ssl' => [ 'force' => true, ],
Đối với cấu hình thư SMTP, hãy thay đổi mọi thứ bằng thông tin chi tiết của bạn.
Mã:
// Cấu hình email. 'EmailTransport' => [ 'default' => [ 'host' => 'localhost', 'port' => 25, 'username' => 'user', 'password' => 'secret', // Đây có phải là kết nối bảo mật không? true nếu có, null nếu không. 'tls' => null, //'timeout' => 30, //'client' => null, //'url' => null, ], ], 'Email' => [ 'default' => [ // Xác định tên và email mặc định của người gửi email. 'from' => ['passbolt@your_organization.com' => 'Passbolt'], //'charset' => 'utf-8', //'headerCharset' => 'utf-8', ], ],
Cuối cùng, dán 'dấu vân tay' của khóa OpenPGP của bạn và bỏ chú thích các dòng cấu hình công khai và riêng tư đó.
Mã:
'serverKey' => [ // Dấu vân tay khóa riêng của máy chủ. 'fingerprint' => '63BA4EBB65126A6BE334075DD210E985E2ED02E5', 'public' = > CẤU HÌNH . 'gpg' . DS . 'serverkey.asc', 'private' = > CẤU HÌNH . 'gpg' . DS . 'serverkey_private.asc', ],
Lưu và thoát.



Bây giờ hãy cài đặt 'Passbolt' bằng lệnh bên dưới.
Mã:
./bin/cake passbolt install
Bạn sẽ được yêu cầu tạo người dùng quản trị và mật khẩu mới - hãy nhập thông tin chi tiết của bạn.



Và cuối cùng, bạn sẽ được cung cấp liên kết 'đăng ký', hãy viết liên kết đó vào ghi chú của bạn.

Bước 8 - Passbolt sau khi cài đặt​

Mở trình duyệt web của bạn và cài đặt tiện ích mở rộng 'Passbolt' của trình duyệt web.

Sau đây là liên kết của tiện ích mở rộng passbolt cho trình duyệt Chrome. Cài đặt tiện ích mở rộng.

https://chrome.google.com/webstore/detail/passbolt-extension

Bây giờ hãy mở một tab mới và dán liên kết 'đăng ký' được cung cấp vào thanh địa chỉ. Của tôi là:


Và bạn sẽ thấy một trang tương tự như trang hiển thị bên dưới.



Đánh dấu vào ô ở cuối và nhấp vào nút 'Tiếp theo'. Bây giờ bạn sẽ được yêu cầu tạo khóa mới cho người dùng.



Nhấp vào nút 'Tiếp theo'.

Thiết lập 'Mật khẩu', nhập mật khẩu mạnh của bạn.



Nhấp vào nút 'Tiếp theo'. Sao lưu khóa của bạn bằng cách nhấn nút 'Tải xuống' và nhấp vào 'Tiếp theo' một lần nữa.



Đối với mã thông báo bảo mật, hãy để mặc định và nhấp vào 'Tiếp theo'.



Và bạn sẽ được chuyển hướng đến trang đăng nhập Passbolt.



Nhập 'Mật khẩu' của bạn và nhấp vào 'Đăng nhập'. Và bạn sẽ thấy Bảng điều khiển người dùng Passbolt như bên dưới.



Cài đặt trình quản lý mật khẩu nguồn mở Passbolt trên CentOS 7 đã hoàn tất thành công.

Bước 9 - Thiết lập Máy chủ bảo mật bổ sung​

- Thiết lập Tường lửa

Mở các cổng HTTP, HTTPS và SMTP mới trên máy chủ.
Mã:
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-service=https --permanent
sudo firewall-cmd --add-service=smtp --permanent
Bây giờ hãy tải lại cấu hình firewalld.
Mã:
sudo firewall-cmd --reload

- Thiết lập Quyền Selinux​

Quyền cho thư mục gốc web 'Passbolt'.
Mã:
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
Quyền cho thư mục khóa gnupg Nginx.
Mã:
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/lib/nginx/.gnupg(/.*)?'
sudo restorecon -Rv /var/lib/nginx/.gnupg

Tham khảo​

 
Back
Bên trên