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).
Thêm kho lưu trữ EPEL.
Thêm và kích hoạt kho lưu trữ Remi PHP.
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.
Đợi tất cả các gói cài đặt.
Cài đặt máy chủ MariaDB bằng lệnh yum bên dưới.
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.
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.
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'.
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á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.
Cài đặt máy chủ web 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.
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.
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áy chủ web Nginx và PHP-FPM đã được cài đặt.
Bây giờ hãy dừng dịch vụ nginx.
Và tạo SSL Letsencrypt cho tên miền passbolt 'passbolt.hakase.io'.
Chạy certbot lệnh bên dưới.
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/'.
Thay đổi người dùng và nhóm mặc định thành người dùng 'nginx'.
Thay đổi cổng lắng nghe cho PHP-FPM thành tệp sock như bên dưới.
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'.
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.
Cài đặt tiện ích mở rộng PHP GnuPG bằng lệnh pecl và kích hoạt nó.
Phần mở rộng PHP GnuPG đã được cài đặt.
Dán cấu hình bên dưới.
Lưu và thoát.
Kiểm tra cấu hình nginx và đảm bảo không có lỗi.
Bây giờ hãy khởi động lại cả dịch vụ Nginx và PHP-FPM.
Cấu hình máy chủ web Nginx và PHP-FPM đã hoàn tất thành công.
Đi tới thư mục '/var/www' và sao chép ứng dụng web passbolt.
Bây giờ hãy cài đặt gói 'haveged' và khởi động dịch vụ.
Tạo khóa OpenPGP mới bằng lệnh gpg bên dưới.
Nhập thông tin chi tiết của bạn như email, ngày hết hạn, v.v.
Lưu ý:
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'.
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'.
Ứng dụng web Passbolt đã được tải xuống và khóa OpenPGP đã được tạo.
Chạy lệnh bên dưới.
Bây giờ hãy đăng nhập vào người dùng 'nginx' và đi đến thư mục '/var/www/passbolt'.
Cài đặt tất cả các phụ thuộc passbolt bằng lệnh composer bên dưới.
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.
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.
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.
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.
Đố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.
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ư đó.
Lưu và thoát.
Bây giờ hãy cài đặt 'Passbolt' bằng lệnh bên dưới.
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.
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ây giờ hãy tải lại cấu hình firewalld.
Quyền cho thư mục khóa gnupg Nginx.
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ì?
- Cài đặt Dependencies
- Cài đặt và cấu hình cơ sở dữ liệu MariaDB
- Cài đặt Nginx và PHP-FPM
- Tạo SSL Letsencrypt
- Cấu hình Nginx và PHP-FPM
- Tải xuống Passbolt và tạo khóa OpenPGP
- Cài đặt Passbolt
- Passbolt sau khi cài đặt
- 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
Mã:
sudo yum -y install 'http://rpms.remirepo.net/enterprise/remi-release-7.rpm'
sudo yum-config-manager --enable 'remi-php72'
Mã:
sudo yum -y install unzip wget composer policycoreutils-python git gcc
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
Mã:
sudo systemctl start mariadb
sudo systemctl enable mariadb
Mã:
mysql_secure_installation
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
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
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
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
Mã:
sudo systemctl stop nginx
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
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
Mã:
user = nginxgroup = nginx
Mã:
listen = /var/run/php-fpm/php-fpm.sock
Mã:
listen.owner = nginxlisten.group = nginxlisten.mode = 0660
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
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
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; }}
Kiểm tra cấu hình nginx và đảm bảo không có lỗi.
Mã:
sudo nginx -t
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
Mã:
gpg --gen-key
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.
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
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
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
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', ],
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', ], ],
Mã:
'ssl' => [ 'force' => true, ],
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', ], ],
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', ],
Bây giờ hãy cài đặt 'Passbolt' bằng lệnh bên dưới.
Mã:
./bin/cake passbolt install
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
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
Mã:
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/lib/nginx/.gnupg(/.*)?'
sudo restorecon -Rv /var/lib/nginx/.gnupg