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

theanh

Administrator
Nhân viên
Passbolt là trình quản lý mật khẩu nguồn mở cho phép bạn lưu trữ và chia sẻ mật khẩu của mình một cách an toàn. Nó được thiết kế cho các tổ chức vừa và nhỏ để lưu trữ và chia sẻ thông tin đăng nhập giữa các thành viên trong nhóm. Nó được tự lưu trữ và có sẵn trong cả phiên bản cộng đồng và phiên bản đăng ký.

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt trình quản lý mật khẩu Passbolt với Nginx và Let's Encrypt SSL trên CentOS 8.

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

  • Máy chủ chạy CentOS 8.
  • Tên miền hợp lệ được trỏ bằng IP máy chủ của bạn.
  • Mật khẩu gốc được cấu hình trên máy chủ của bạn.

Cài đặt LEMP Server​

Trước tiên, hãy cài đặt Nginx và máy chủ cơ sở dữ liệu MariaDB bằng lệnh sau:
Mã:
dnf install nginx mariadb-server -y
Tiếp theo, bạn sẽ cần cài đặt phiên bản PHP mới nhất và các tiện ích mở rộng PHP bắt buộc khác trong máy chủ của mình. Theo mặc định, phiên bản PHP mới nhất không có trong kho lưu trữ mặc định của CentOS. Vì vậy, bạn sẽ cần thêm kho EPEL và REMI vào hệ thống của mình.

Bạn có thể thêm cả hai kho bằng lệnh sau:
Mã:
dnf install epel-release -y
dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm -y
Tiếp theo, vô hiệu hóa kho PHP mặc định và kích hoạt kho REMI bằng lệnh sau:
Mã:
dnf module reset php
dnf module enable php:remi-7.4
Tiếp theo, cài đặt PHP với các phụ thuộc bắt buộc khác bằng cách chạy lệnh sau:
Mã:
dnf install php php-fpm php-intl php-gd php-mysqli php-json php-pear php-devel php-mbstring php-fpm git make unzip -y
Sau khi cài đặt tất cả các gói, bạn sẽ cần chỉnh sửa tệp cấu hình PHP-FPM và thay đổi người dùng và nhóm thành Nginx.
Mã:
nano /etc/php-fpm.d/www.conf
Thay đổi các dòng sau:
Mã:
user = nginxgroup = nginx
Lưu và đóng tệp sau đó thay đổi quyền sở hữu của thư mục phiên:
Mã:
chgrp nginx /var/lib/php/session
Tiếp theo, khởi động dịch vụ Nginx, MariaDB và PHP-FPM và cho phép chúng khởi động khi khởi động lại hệ thống bằng lệnh sau:
Mã:
systemctl start mariadb nginx php-fpm
systemctl enable mariadb nginx php-fpm
Tiếp theo, bạn sẽ cần cài đặt tiện ích mở rộng GNUPG vào hệ thống của mình. Bạn có thể cài đặt bằng cách chạy các lệnh sau:
Mã:
dnf config-manager --set-enabled powertools
dnf install gpgme-devel
pecl install gnupg
echo "extension=gnupg.so" > /etc/php.d/gnupg.ini
Tiếp theo, khởi động lại dịch vụ PHP-FPM để áp dụng các thay đổi:
Mã:
systemctl restart php-fpm

Cài đặt Composer​

Composer là trình quản lý phụ thuộc cho PHP. Bạn sẽ cần cài đặt nó trong hệ thống của mình.

Đầu tiên, tải xuống tệp thiết lập Composer bằng lệnh sau:
Mã:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
Tiếp theo, cài đặt Composer bằng lệnh sau:
Mã:
php composer-setup.php --install-dir=/usr/local/bin --filename=composer
Bạn sẽ nhận được kết quả sau:
Mã:
Tất cả các thiết lập đều chính xác để sử dụng ComposerĐang tải xuống...Composer (phiên bản 2.0.11) đã được cài đặt thành công vào: /usr/local/bin/composerSử dụng: php /usr/local/bin/composer
Tiếp theo, xác minh phiên bản Composer bằng lệnh sau:
Mã:
composer -V
Bạn sẽ nhận được kết quả sau đầu ra:
Mã:
Phiên bản Composer 2.0.11 2021-02-24 14:57:23

Tạo Cơ sở dữ liệu​

Tiếp theo, bạn sẽ cần tạo cơ sở dữ liệu và người dùng cho Passbolt.

Đầu tiên, hãy kết nối với MariaDB bằng lệnh sau:
Mã:
mysql
Sau khi kết nối, hãy tạo cơ sở dữ liệu và người dùng bằng lệnh sau:
Mã:
MariaDB [(none)]> CREATE DATABASE passbolt DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
MariaDB [(none)]> GRANT ALL ON passbolt.* TO 'passbolt'@'localhost' IDENTIFIED BY 'password';
Tiếp theo, flush các đặc quyền và thoát khỏi MariaDB bằng lệnh sau:
Mã:
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

Cài đặt và cấu hình Passbolt​

Trước tiên, hãy thay đổi thư mục thành thư mục gốc web Nginx và tải xuống phiên bản Passbolt mới nhất bằng lệnh sau:
Mã:
cd /var/www
git clone https://github.com/passbolt/passbolt_api.git passbolt
Sau khi tải xuống hoàn tất, hãy thay đổi thư mục thành passbolt và cài đặt tất cả các phụ thuộc cần thiết bằng lệnh sau:
Mã:
cd passbolt
composer install --no-dev
Tiếp theo, bạn sẽ cần cài đặt haveged để tạo khóa GPG. Trước tiên, hãy cài đặt haveged bằng lệnh sau:
Mã:
dnf install haveged
Tiếp theo, hãy khởi động dịch vụ haveged bằng lệnh sau:
systemctl start haveged

Tiếp theo, hãy tạo khóa GPG bằng lệnh sau:
Mã:
gpg --full-generate-key
Trả lời cẩn thận tất cả các câu hỏi. Để trống trường mật khẩu khi được yêu cầu đặt mật khẩu:
Mã:
gpg (GnuPG) 2.2.9; Bản quyền (C) 2018 Free Software Foundation, Inc.Đây là phần mềm miễn phí: bạn được tự do thay đổi và phân phối lại.KHÔNG CÓ BẢO HÀNH, trong phạm vi được pháp luật cho phép.gpg: thư mục '/root/.gnupg' đã tạogpg: hộp khóa '/root/.gnupg/pubring.kbx' đã tạoVui lòng chọn loại khóa bạn muốn: (1) RSA và RSA (mặc định) (2) DSA và Elgamal (3) DSA (chỉ ký) (4) RSA (chỉ ký)Lựa chọn của bạn?Khóa RSA có thể dài từ 1024 đến 4096 bit.Bạn muốn kích thước khóa nào? (2048)Kích thước khóa được yêu cầu là 2048 bitVui lòng chỉ định thời hạn hiệu lực của khóa. 0 = khóa không hết hạn  = khóa hết hạn sau n ngày w = khóa hết hạn sau n tuần m = khóa hết hạn sau n tháng y = khóa hết hạn sau n nămKhóa có hiệu lực trong bao lâu? (0)Khóa không hết hạnĐiều này có đúng không? (y/N) yGnuPG cần tạo ID người dùng để xác định khóa của bạn.Tên thật: HiteshĐịa chỉ email: [emailprotected]Bình luận: Chào mừngBạn đã chọn ID người dùng này: "Hitesh (Chào mừng) "Thay đổi (N)ame, (C)omment, (E)mail hoặc (O)kay/(Q)uit? OChúng ta cần tạo ra nhiều byte ngẫu nhiên. Tốt nhất là thực hiệnmột số hành động khác (gõ trên bàn phím, di chuyển chuột, sử dụngcác đĩa) trong quá trình tạo số nguyên tố; điều này giúp trình tạo số ngẫu nhiên có cơ hội tốt hơn để đạt được đủ entropy.Chúng ta cần tạo ra nhiều byte ngẫu nhiên. Tốt nhất là thực hiệnmột số hành động khác (gõ trên bàn phím, di chuyển chuột, sử dụngcác đĩa) trong quá trình tạo số nguyên tố; điều này giúp trình tạo số ngẫu nhiên có cơ hội tốt hơn để đạt được đủ entropy.gpg: /root/.gnupg/trustdb.gpg: trustdb đã tạogpg: khóa 1A0448FECA43E1F9 được đánh dấu là đáng tin cậygpg: thư mục '/root/.gnupg/openpgp-revocs.d' đã tạogpg: chứng chỉ thu hồi được lưu trữ dưới dạng '/root/.gnupg/openpgp-revocs.d/40733A5076D11E86EF2FE5B51A0448FECA43E1F9.rev'khóa công khai và bí mật đã được tạo và ký.pub rsa2048 2021-03-12 [SC] 40733A5076D11E86EF2FE5B51A0448FECA43E1F9uid Hitesh (Chào mừng) sub rsa2048 2021-03-12 [E]
Lưu ý: Hãy nhớ khóa bí mật được tạo ở trên.

Tiếp theo, xuất khóa bí mật vào tệp serverkey_private.asc và serverkey.asc bằng lệnh sau:
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
Tiếp theo, thiết lập quyền sở hữu thích hợp cho thư mục passbolt:
Mã:
chown -R nginx:nginx /var/www/passbolt
Tiếp theo, khởi tạo vòng khóa Nginx bằng lệnh sau:
Mã:
sudo su -s /bin/bash -c "gpg --list-keys" nginx
Đầu ra:
Mã:
gpg: thư mục '/var/lib/nginx/.gnupg' đã tạogpg: hộp khóa '/var/lib/nginx/.gnupg/pubring.kbx' đã tạogpg: /var/lib/nginx/.gnupg/trustdb.gpg: trustdb đã tạo
Tiếp theo, đổi tên tệp cấu hình mặc định của Passbolt:
Mã:
cp config/passbolt.default.php config/passbolt.php
Tiếp theo, chỉnh sửa tệp passbolt.php và xác định cài đặt cơ sở dữ liệu và URL cơ sở của bạn:
Mã:
nano config/passbolt.php
Thay đổi các dòng sau:
Mã:
'fullBaseUrl' => 'https://passbolt.linuxbuz.com', // Cấu hình cơ sở dữ liệu. 'Datasources' => [ 'default' => [ 'host' => 'localhost', //'port' => 'non_standard_port_number', 'username' => 'passbolt', 'password' => 'password', 'database' => 'passbolt', 'serverKey' => [ // Dấu vân tay khóa riêng của máy chủ. 'fingerprint' => '40733A5076D11E86EF2FE5B51A0448FECA43E1F9', 'public' => CONFIG. 'gpg' . DS. 'serverkey.asc', 'private' => CONFIG. 'gpg' . DS. 'serverkey_private.asc',
Lưu và đóng tệp, sau đó cài đặt Passbolt bằng lệnh sau:
Mã:
cd /var/www/passbolt
sudo su -s /bin/bash -c "./bin/cake passbolt install --no-admin" nginx
Bạn sẽ nhận được kết quả sau:
Mã:
Tất cả đã xong. Mất 0,9595 giâyNhập khóa riêng của máy chủ vào vòng chìa khóa--------------------------------------------------------------------------Đang nhập /var/www/passbolt/config/gpg/serverkey_private.ascKhởi tạo vòng chìa khóa OKCài đặt Passbolt thành công! Thưởng thức! ?

Cấu hình Nginx cho Passbolt​

Tiếp theo, bạn sẽ cần tạo một tệp cấu hình Nginx cho Passbolt. Bạn có thể tạo tệp này bằng lệnh sau:
Mã:
nano /etc/nginx/conf.d/passbolt.conf
Thêm các dòng sau:
Mã:
server { listen 80; server_name passbolt.linuxbuz.com; 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/www.sock; fastcgi_split_path_info ^(.+\.php)(.+)$; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $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 nhật ký truy cập; tắt nhật ký không tìm thấy; try_files $uri /webroot/$uri /index.php?$args; }}
Lưu và đóng tệp, sau đó kiểm tra Nginx xem có lỗi cú pháp nào không:
Mã:
nginx -t
Đầu ra:
Mã:
nginx: cú pháp tệp cấu hình /etc/nginx/nginx.conf là oknginx: tệp cấu hình /etc/nginx/nginx.conf đã kiểm tra thành công
Tiếp theo, khởi động lại Nginx để áp dụng các thay đổi:
Mã:
systemctl restart nginx

Bảo mật Passbolt bằng Let's Encrypt SSL​

Tiếp theo, bạn sẽ cần cài đặt ứng dụng khách Certbot để cài đặt Let's Encrypt SSL cho Passbolt. Bạn có thể cài đặt bằng lệnh sau:
Mã:
dnf install letsencrypt python3-certbot-nginx
Tiếp theo, hãy lấy và cài đặt chứng chỉ SSL cho tên miền lets của bạn bằng lệnh sau:
Mã:
certbot --nginx -d passbolt.linuxbuz.com
Bạn sẽ được yêu cầu cung cấp địa chỉ email và chấp nhận điều khoản dịch vụ:
Mã:
Lưu nhật ký gỡ lỗi vào /var/log/letsencrypt/letsencrypt.logCác plugin đã chọn: Authenticator nginx, Installer nginxNhập địa chỉ email (dùng để gia hạn khẩn cấp và thông báo bảo mật) (Nhập 'c' để hủy): [emailprotected]- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Vui lòng đọc Điều khoản dịch vụ tạihttps://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. Bạn phảiđồng ý để đăng ký với máy chủ ACME. Bạn có đồng ý không?- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -(C)es/(K)o: C- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Bạn có đồng ý, sau khi chứng chỉ đầu tiên của bạn được cấp thành công,chia sẻ địa chỉ email của bạn với Electronic Frontier Foundation, mộtđối tác sáng lập của dự án Let's Encrypt và tổ chức phi lợi nhuậnphát triển Certbot không? Chúng tôi muốn gửi cho bạn email về công việc mã hóa web,tin tức EFF, các chiến dịch và cách hỗ trợ tự do kỹ thuật số.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -(C)ó/(K)o: CTài khoản đã đăng ký.Đang yêu cầu chứng chỉ cho passbolt.linuxbuz.comThực hiện các thử thách sau:Thử thách http-01 cho passbolt.linuxbuz.comĐang chờ xác minh...Đang dọn dẹp các thử tháchTriển khai chứng chỉ cho VirtualHost /etc/nginx/conf.d/passbolt.confĐang chuyển hướng tất cả lưu lượng trên cổng 80 sang ssl trong /etc/nginx/conf.d/passbolt.conf- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Xin chúc mừng! Bạn đã bật thành công https://passbolt.linuxbuz.com- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Đăng ký danh sách gửi thư EFF (email: [emailprotected]).LƯU Ý QUAN TRỌNG: - Xin chúc mừng! Chứng chỉ và chuỗi của bạn đã được lưu tại: /etc/letsencrypt/live/passbolt.linuxbuz.com/fullchain.pem Tệp khóa của bạn đã được lưu tại: /etc/letsencrypt/live/passbolt.linuxbuz.com/privkey.pem Chứng chỉ của bạn sẽ hết hạn vào ngày 09-06-2021. Để có phiên bản mới hoặc đã chỉnh sửa của chứng chỉ này trong tương lai, chỉ cần chạy lại certbot với tùy chọn "certonly". Để gia hạn không tương tác *tất cả* chứng chỉ của bạn, hãy chạy "certbot renew" - Nếu bạn thích Certbot, vui lòng cân nhắc hỗ trợ công việc của chúng tôi bằng cách: Quyên góp cho ISRG / Let's Encrypt: https://letsencrypt.org/donate Quyên góp cho EFF: https://eff.org/donate-le

Đăng ký người dùng cho Passbolt​

Tiếp theo, bạn sẽ cần đăng ký người dùng cho Passbolt. Bạn có thể thực hiện bằng lệnh sau:
Mã:
cd /var/www/passbolt
sudo su -s /bin/bash -c "./bin/cake passbolt register_user -u [emailprotected] -f howtoforge -l Demo -r admin" nginx
Bạn sẽ nhận được kết quả sau:
Mã:
____ __ ____ / __ \____ _____ ____/ /_ ____ / /_ / /_/ / __ `/ ___/ ___/ __ \/ __ \/ / __/ / ____/ /_/ (__ |__ ) /_/ /_/ / / /_/ \__,_/____/____/_.___/\____/_/\__/ Trình quản lý mật khẩu nguồn mở cho nhóm------------------------------------------------------------------Đã lưu người dùng thành công.Để bắt đầu đăng ký, hãy làm theo liên kết được cung cấp trong hộp thư của bạn hoặc tại đây:https://passbolt.linuxbuz.com/setup/install/f81227bc-b0b6-44b5-99a7-6b490a4ba262/5a112de0-6ca4-4e1b-97c8-26453ef3828b
Bạn có thể sử dụng liên kết trên để truy cập Paabolt.

Cấu hình Tường lửa​

Tiếp theo, bạn sẽ cần cho phép các cổng 80 và 443 đi qua tường lửa. Bạn có thể thực hiện bằng lệnh sau:
Mã:
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp
Bây giờ, hãy tải lại firewalld để áp dụng các thay đổi:
Mã:
firewall-cmd --reload

Giao diện người dùng web Access Passbolt​

Bây giờ, hãy mở trình duyệt web của bạn và nhập URL . Bạn sẽ được chuyển hướng đến trang sau:



Tại đây, bạn sẽ cần tải xuống tiện ích mở rộng trình duyệt Passbolt và làm mới trang sau khi cài đặt. Bạn sẽ thấy trang sau:



Chỉ định mật khẩu an toàn và nhấp vào nút Tiếp theo. Bạn sẽ thấy trang sau:



Chọn một màu, nhập mã thông báo bảo mật và nhấp vào nút Tiếp theo. Bạn sẽ được chuyển hướng đến bảng điều khiển Passbolt ở trang sau:


Kết luận​

Xin chúc mừng! Bạn đã cài đặt thành công trình quản lý mật khẩu Passbolt với Nginx và Let's Encrypt SSL trên CentOS 8. Bây giờ bạn có thể triển khai Passbolt trong tổ chức của mình và bắt đầu lưu trữ và chia sẻ thông tin đăng nhập giữa các thành viên trong nhóm một cách an toàn.
 
Back
Bên trên