Passbolt是一個免費(fèi)的開源密碼管理器,適用于團(tuán)隊。 它允許團(tuán)隊成員安全地存儲和共享憑據(jù)/密碼。 Passbolt是使用PHP創(chuàng)建的,可以在LEMP堆棧下運(yùn)行或作為docker容器運(yùn)行。
在本教程中,我們將向您展示逐步安裝并在CentOS 7服務(wù)器上配置開源密碼管理器“Passbolt”。 Passbolt是一個用PHP開發(fā)的Web應(yīng)用程序,我們將在LEMP(Linux,Nginx,MySQL/MariaDB和PHP-FPM)下運(yùn)行它。
必要條件
- CentOS 7
- Root權(quán)限
我們將要做什么?
- 安裝依賴項
- 安裝和配置MariaDB數(shù)據(jù)庫
- 安裝Nginx和PHP-FPM
- 生成SSL Letsencrypt
- 配置Nginx和PHP-FPM
- 下載Passbolt并生成OpenPGP密鑰
- 安裝Passbolt
- Passbolt安裝后
- 其他安全服務(wù)器設(shè)置
第1步 – 安裝依賴項
我們將為本指南做的第一件事是安裝Passbolt安裝所需的所有包依賴項,包括安裝EPEL和Remi PHP存儲庫,php composer,gcc等。
添加EPEL存儲庫。
sudo yum -y install yum-utils epel-release
添加并啟用Remi PHP存儲庫。
sudo yum -y install ‘http://rpms.remirepo.net/enterprise/remi-release-7.rpm’
sudo yum-config-manager –enable ‘remi-php72’
現(xiàn)在使用下面的yum命令安裝包依賴項composer,git gcc等。
sudo yum -y install unzip wget composer policycoreutils-Python git gcc
等待所有軟件包安裝。
第2步 – 安裝和配置MySQL / MariaDB
在此步驟中,我們將安裝MariaDB數(shù)據(jù)庫,然后為Passbolt安裝創(chuàng)建新的數(shù)據(jù)庫和用戶。
使用下面的yum命令安裝MariaDB服務(wù)器。
sudo yum -y install mariadb-server
安裝完成后,啟動MariaDB服務(wù)并使其在系統(tǒng)引導(dǎo)時每次啟動。
sudo systemctl start mariadb
sudo systemctl enable mariadb
現(xiàn)在我們需要為MariaDB配置“root”密碼。 運(yùn)行下面的’mysql_secure_installation’命令。
mysql_secure_installation
輸入新的root密碼。
并且已配置MariaDB root密碼。
Remove anonymous users? [Y/n] 這里生產(chǎn)環(huán)境建議輸入y
Disallow root login remotely? [Y/n] 遠(yuǎn)程登陸
Remove test database and access to it? [Y/n] 刪除測試數(shù)據(jù)庫并訪問它?[Y/ N]
Reload privilege tables now? [Y/n] Y
All done! If you’ve completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
接下來,使用“root”用戶登錄MySQL shell。
mysql -u root -p
使用密碼’password-linuxidc’創(chuàng)建一個名為’linuxidccom’的新數(shù)據(jù)庫和用戶,在下面運(yùn)行MySQL查詢。
create database passbolt;
grant all on passbolt.* to ‘linuxidccom’@’localhost’ identified by ‘password-linuxidc’;
flush privileges;
quit;
MariaDB服務(wù)器已安裝在CentOS 7服務(wù)器上,并且已創(chuàng)建用于“Passbolt”安裝的數(shù)據(jù)庫。
第3步 – 安裝Nginx和PHP-FPM
安裝MariaDB服務(wù)器后,我們將使用Remi存儲庫從EPEL存儲庫和PHP-FPM軟件包安裝Nginx。
安裝Nginx Web服務(wù)器。
sudo yum -y install nginx
安裝完成后,啟動Nginx服務(wù)并使其在系統(tǒng)引導(dǎo)時每次啟動。
sudo systemctl start nginx
sudo systemctl enable nginx
現(xiàn)在使用下面的yum命令安裝PHP-FPM以及所需的所有擴(kuò)展。
sudo yum -y install php-fpm php-intl php-gd php-mysql php-mcrypt php-pear php-devel php-mbstring php-fpm gpgme-devel
如果安裝完成,請啟動PHP-FPM服務(wù)并在系統(tǒng)引導(dǎo)時每次啟動它。
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
已安裝Nginx Web服務(wù)器和PHP-FPM。
第4步 – 生成SSL Letsencrypt
在系統(tǒng)上安裝certbot工具。
sudo yum -y install certbot
現(xiàn)在停止nginx服務(wù)。
sudo systemctl stop nginx
并為passbolt域名’linux.linuxidc.com’生成SSL Letsencrypt。
運(yùn)行下面的certbot命令。
sudo certbot certonly –standalone –agree-tos –no-eff-email –email linuxidc@linuxidc.com -d linux.linuxidc.com
certbot工具將運(yùn)行臨時Web服務(wù)器進(jìn)行驗證。
完成后,您將在’/etc/letsencrypt/live/’目錄中獲取證書。
第5步 – 配置Nginx和PHP-FPM
在此步驟中,我們將通過為Passbolt創(chuàng)建新的虛擬主機(jī)配置來配置Nginx Web服務(wù)器,并配置PHP-FPM并安裝PHP GnuPG支持。
配置PHP-FPM
轉(zhuǎn)到’/etc/php-fpm.d’目錄并使用vim編輯器編輯默認(rèn)池配置’www.conf’。
cd /etc/php-fpm.d/
sudo vim www.conf
將默認(rèn)用戶和組更改為“nginx”用戶。
user = nginx
group = nginx
將端口偵聽PHP-FPM更改為sock文件,如下所示。
listen = /var/run/php-fpm/php-fpm.sock
取消注釋下面的這些行,并將sock文件的listen.owner和listen.group更改為’nginx’。
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
Save and exit.
現(xiàn)在我們需要更改PHP會話目錄的所有者并安裝PHP GnuPG擴(kuò)展支持。
更改php會話目錄的權(quán)限。
sudo chgrp nginx /var/lib/php/session
使用pecl命令安裝PHP GnuPG擴(kuò)展并激活它。
sudo pecl install gnupg
echo “extension=gnupg.so” > /etc/php.d/gnupg.ini
配置Nginx和PHP-FPM
已安裝PHP GnuPG擴(kuò)展。
配置Nginx虛擬主機(jī)
轉(zhuǎn)到’/etc/nginx/conf.d’目錄并創(chuàng)建一個新的虛擬主機(jī)文件’passbolt.conf’。
cd /etc/nginx/conf.d/
sudo vim passbolt.conf
粘貼配置如下。
server {
listen 443;
server_name linux.linuxidc.com;
ssl on;
ssl_certificate /etc/letsencrypt/live/linux.linuxidc.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/linux.linuxidc.com/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|mpd)$ {
access_log off;
log_not_found off;
try_files $uri /webroot/$uri /index.php?$args;
}
}
保存并退出。
測試nginx配置并確保沒有錯誤。
sudo nginx -t
現(xiàn)在重啟Nginx和PHP-FPM服務(wù)。
sudo systemctl restart nginx
sudo systemctl restart php-fpm
配置Nginx虛擬主機(jī)
Nginx Web服務(wù)器和PHP-FPM的配置已成功完成。
第6步 – 下載Passbolt并生成OpenPGP密鑰
在此步驟中,我們將下載passbolt Web應(yīng)用程序并生成將用于Passbolt API的新OpenPGP密鑰。
轉(zhuǎn)到’/var/www’目錄并克隆passbolt Web應(yīng)用程序。
cd /var/www/
git clone https://github.com/passbolt/passbolt_api.git passbolt/
下載Passbolt并生成OpenPGP密鑰
現(xiàn)在安裝’hasged’包并啟動服務(wù)。
sudo yum -y install haveged
sudo systemctl start haveged
使用下面的gpg命令生成新的OpenPGP密鑰。
gpg –gen-key
輸入您的詳細(xì)信息,例如電子郵件,到期日等。
注意:
- PHP GnuPG擴(kuò)展不支持OpenPGP密鑰密碼,因此讓密碼保持空白。
完成后,檢查所有可用密鑰并記下密鑰的“指紋”。
gpg –list-keys –fingerprint
列出gpg密鑰
現(xiàn)在將公鑰和私鑰導(dǎo)出到’/var/www/passbolt’目錄。
gpg –armor –export-secret-keys hakase@hakase.io > /var/www/passbolt/config/gpg/serverkey_private.asc
gpg –armor –export hakase@hakase.io > /var/www/passbolt/config/gpg/serverkey.asc
并更改’/var/www/passbolt’目錄的所有密鑰權(quán)限和所有者。
sudo chmod 640 /var/www/passbolt/config/gpg/serverkey*
sudo chown -R nginx:nginx /var/www/passbolt
已知的gpg鍵
已下載Passbolt Web應(yīng)用程序,并已創(chuàng)建OpenPGP密鑰。
第7步 – 安裝Passbolt
在安裝’Passbolt’的所有依賴項之前,我們需要為nginx用戶初始化gpg密鑰的密鑰環(huán)。
運(yùn)行以下命令。
sudo su -s /bin/bash -c “gpg –list-keys” nginx
現(xiàn)在登錄’nginx’用戶并轉(zhuǎn)到’/var/www/passbolt’目錄。
su -s /bin/bash nginx
cd /var/www/passbolt/
安裝Passbolt
使用下面的composer命令安裝PassboltInstall所有passbolt依賴項。
composer install –no-dev
Composer install
完成后,復(fù)制應(yīng)用程序的默認(rèn)配置文件并使用vim進(jìn)行編輯。
cp config/passbolt.default.php config/passbolt.php
vim config/passbolt.php
在“應(yīng)用”部分,用你自己的域名改變域名。
‘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://linux.linuxidc.com’,
],
在“數(shù)據(jù)源”配置中,鍵入詳細(xì)信息數(shù)據(jù)庫信息。
// Database configuration.
‘Datasources’ => [
‘default’ => [
‘host’ => ‘localhost’,
//’port’ => ‘non_standard_port_number’,
‘username’ => ‘linuxidccom’,
‘password’ => ‘password-linuxidc’,
‘database’ => ‘linuxidccom’,
],
],
在數(shù)據(jù)庫配置下,添加新的’ssl’配置以強(qiáng)制所有連接到安全https。
‘ssl’ => [
‘force’ => true,
],
對于SMTP郵件配置,請使用您的詳細(xì)信息更改所有內(nèi)容。
// 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’ => [‘passbolt@your_organization.com’ => ‘Passbolt’],
//’charset’ => ‘utf-8’,
//’headerCharset’ => ‘utf-8’,
],
],
最后,粘貼OpenPGP密鑰的“指紋”并取消注釋那些公共和私有配置行。
‘serverKey’ => [
// Server private key fingerprint.
‘fingerprint’ => ’63BA4EBB65126A6BE334075DD210E985E2ED02E5′,
‘public’ => CONFIG . ‘gpg’ . DS . ‘serverkey.asc’,
‘private’ => CONFIG . ‘gpg’ . DS . ‘serverkey_private.asc’,
],
保存并退出。
Passbolt配置文件
現(xiàn)在使用以下命令安裝’Passbolt’。
./bin/cake passbolt install
系統(tǒng)將要求您創(chuàng)建新的管理員用戶和密碼 – 輸入您的詳細(xì)信息。
最后,您將獲得“注冊”鏈接,將其寫在您的筆記上。
第8步 – Passbolt安裝后
打開Web瀏覽器并安裝Web瀏覽器的“Passbolt”擴(kuò)展。
以下是Chrome瀏覽器的passbolt擴(kuò)展程序鏈接。 安裝擴(kuò)展。
https://chrome.google.com/webstore/detail/passbolt-extension
現(xiàn)在打開一個新選項卡并粘貼給地址欄的“注冊”鏈接。 我的是:
https://linux.linuxidc.com/setup/install/b830ec28-1cc5-6f5f-95f8-9be56acrfefa/103991n4-3971-4bb8-886c-856ac0f8c76f
選中底部的框,然后點(diǎn)擊“下一步”按鈕。 現(xiàn)在,系統(tǒng)會要求您為用戶創(chuàng)建新密鑰。
單擊“下一步”按鈕。
設(shè)置“密碼短語”,輸入您的強(qiáng)密碼。
設(shè)置密碼
單擊“下一步”按鈕。 按“下載”按鈕備份您的密鑰,然后再次單擊“下一步”。
下載備份密鑰
對于安全令牌,請將其保留為默認(rèn)值,然后單擊“下一步”。
設(shè)置安全令牌
您將被重定向到Passbolt登錄頁面。
Passbolt登錄頁面
輸入您的“密碼短語”,然后點(diǎn)擊“登錄”。 您將看到Passbolt用戶儀表板。
歡迎來到Passbolt
CentOS 7上的Passbolt開源密碼管理器安裝已成功完成。
步驟9 – 其他安全服務(wù)器設(shè)置
– 設(shè)置Firewalld
在服務(wù)器上打開新的HTTP,HTTPS和SMTP端口。
sudo firewall-cmd –add-service=http –permanent
sudo firewall-cmd –add-service=https –permanent
sudo firewall-cmd –add-service=smtp –permanent
現(xiàn)在重新加載firewalld配置。
sudo firewall-cmd –reload
– 設(shè)置Selinux許可
“Passbolt” webroot目錄的權(quán)限。
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
Nginx gnupg密鑰環(huán)目錄的權(quán)限。
sudo semanage fcontext -a -t httpd_sys_rw_content_t ‘/var/lib/nginx/.gnupg(/.*)?’
sudo restorecon -Rv /var/lib/nginx/.gnupg
參考:https://help.passbolt.com/hosting/install