Passbolt 是一款開源自託管密碼管理器,可讓您安全地共享和存儲您的網站登錄憑據、路由器密碼、Wi-Fi 密碼等。本教程將向您展示如何在 Ubuntu 18.04 上為 Apache 或 Nginx Web 服務器安裝 Passbolt 社區版 (CE)。
通孔螺栓的作用
- 免費和開源
- 密碼使用已建立的加密標準 OpenPGP 進行加密。
- Firefox 和 Google Chrome 中可用的瀏覽器擴展。
- 您可以輕鬆地與您的團隊共享您的登錄憑據,而不會影響安全性。
- 乾淨且用戶友好的界面。
- 導入和導出密碼。
- 您可以手動添加登錄憑據。
您可能聽說過其他自託管密碼管理器,例如 Bitwarden,但它們僅適用於 64 位機器,因為它們需要安裝 Docker。此 Passbolt 教程適用於 32 位和 64 位計算機。
在 Ubuntu 18.04 服務器上安裝 Passbolt 的先決條件
Passbolt 是用 PHP 編寫的,依賴於 MySQL / MariaDB 數據庫服務器。因此,您需要設置 LAMP 堆棧或 LEMP 堆棧。 如果您需要 Apache Web 服務器,請設置 LAMP 堆棧。
- 如何在 Ubuntu 18.04 服務器/桌面上安裝 LAMP 堆棧
如果您需要 Nginx Web 服務器,請設置 LEMP 堆棧。
- 如何在 Ubuntu 18.04 LTS 上安裝 LEMP 堆棧(Nginx、MariaDB、PHP7.2)
您還需要一個域名,以便您可以使用 Web 瀏覽器從任何地方訪問 Passbolt。我從 NameCheap 註冊了我的域名。這是由於其低廉的價格和免費的whois隱私保護。
第 1 步:將 Passbolt 下載到 Ubuntu 18.04 服務器
如果您訪問官方網站下載 Passbolt,則需要輸入您的姓名和電子郵件地址。如果您不喜歡這樣,請在您的服務器上運行以下命令以從 Github 下載最新的穩定版本。
sudo apt install git cd /var/www/ sudo git clone https://github.com/passbolt/passbolt_api.git
文件保存在 passbolt_api
目錄。重命名 passbolt
..
sudo mv passbolt_api passbolt
接下來,創建一個 Web 服務器用戶 (www-data
) 作為該目錄的所有者。
sudo chown -R www-data:www-data /var/www/passbolt/
更改目錄。
cd /var/www/passbolt/
安裝 Composer-PHP 依賴管理器。
sudo apt install composer
使用 Composer 安裝依賴項。
sudo -u www-data composer install --no-dev
如果系統要求您設置文件夾權限, Y
..
第 2 步:為 Passbolt 創建 MariaDB 數據庫和用戶
接下來,您需要登錄 MariaDB 控制台並創建 Passbolt 數據庫和用戶。默認情況下,Ubuntu 的 MaraiDB 包使用 unix_socket 來驗證用戶登錄。這基本上意味著您可以使用您的操作系統用戶名和密碼登錄到 MariaDB 控制台。因此,您可以通過運行以下命令在不指定 MariaDB 根密碼的情況下登錄:
sudo mysql -u root
然後使用以下命令創建一個新的 Passbolt 數據庫:在本教程中為其命名 passbolt
, 您可以為數據庫使用任何名稱。還要指定 utf8mb4
作為支持非拉丁語和表情符號的字符集。
CREATE DATABASE passbolt DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
以下命令創建數據庫用戶和密碼,授予新用戶對新數據庫的所有權限,並允許 Passbolt 稍後寫入數據庫。將紅色文本替換為所需的數據庫名稱、用戶名和密碼。
GRANT ALL ON passbolt.* TO 'passboltuser'@'localhost' IDENTIFIED BY 'password';
更新權限表並退出 MariaDB 控制台。
FLUSH PRIVILEGES; EXIT;
第 3 步:安裝所需和推薦的 PHP 模塊。
運行以下命令安裝 Passbolt 需要或推薦的 PHP 模塊
sudo apt install php-imagick php-gnupg php7.2-common php7.2-mysql php7.2-fpm php7.2-ldap php7.2-gd php7.2-imap php7.2-json php7.2-curl php7.2-zip php7.2-xml php7.2-mbstring php7.2-bz2 php7.2-intl php7.2-gmp php7.2-xsl
然後重啟 Apache(如果你使用的是 Nginx,你不需要重啟 Nginx)。
sudo systemctl restart apache2
第 4 步:生成 OpenPGP 密鑰
如果您使用的是 VPS(虛擬專用服務器),我們建議您安裝它。 已經死了 產生足夠熵的包。
sudo apt install haveged
然後運行以下命令生成新的密鑰對。
gpg --gen-key
系統將提示您輸入姓名和電子郵件地址。如果系統提示您設置密碼,請按 Tab[OK]只需選擇。這是因為 php-gnupg 模塊目前不支持使用密碼。
將私鑰複製到密碼配置的位置。
gpg --armor ---secret-keys [email protected] | sudo tee /var/www/passbolt/config/gpg/serverkey_private.asc > /dev/null
複製公鑰。
gpg --armor -- [email protected] | sudo tee /var/www/passbolt/config/gpg/serverkey.asc > /dev/null
初始化 www-data
用戶的密鑰環。
sudo su -s /bin/bash -c "gpg --list-keys" www-data
第 5 步:配置 pass bolt
確保你是 /var/www/passbolt/
目錄。
cd /var/www/passbolt/
將示例配置文件複製到生產配置文件。
sudo cp config/passbolt.default.php config/passbolt.php
使用命令行文本編輯器(例如 Nano)編輯配置文件。
sudo nano config/passbolt.php
首先,找到以下行:
'fullBaseUrl' => 'https://www.passbolt.test',
將 URL 替換為您自己的 URL。例子: https://passbolt.yourdomain.com
.. 請記住在 DNS 記錄管理器中為此子域創建 DNSA 記錄。
裡面 database configuration
在該部分中,輸入您之前創建的數據庫名稱、數據庫用戶名和密碼。
// Database configuration. 'Datasources' => [ 'default' => [ 'host' => 'localhost', //'port' => 'non_standard_port_number', 'username' => 'user', 'password' => 'secret', 'database' => 'passbolt', ], ],
裡面 email configuration
部門,
- 指定 SMTP 主機名、端口號和登錄憑據,以便密碼可以發送電子郵件。通常,您應該使用端口 587 將電子郵件發送到遠程 SMTP 服務器。 確保 tls 設置為 true,以便加密 SMTP 事務。
- 還設置
From:
電子郵件地址和發件人姓名。
// 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', ], ],
查看以下教程以輕鬆設置您自己的電子郵件服務器。
- 如何使用 Modoboa 在 Ubuntu 18.04 上快速設置自己的郵件服務器
注意:如果 Pathbolt 與您的郵件服務器安裝在同一個框中,則無需在內部指定您的用戶名和密碼。 EmailTransport
..只需用 // 註釋掉這兩行。下面的屏幕截圖顯示了此方案的示例配置。
在 gpg 部分,輸入 GPG 密鑰指紋,如下所示。應刪除所有空格。
'fingerprint' => '2FC8945833C51946E937F9FED47B0811573EE67E',
您可以使用以下命令獲取密鑰指紋:交換 [email protected]
生成 PGP 密鑰對時使用您的電子郵件地址。
sudo gpg --list-keys --fingerprint | grep -i -B 2 '[email protected]'
輸入指紋後,取消註釋接下來的兩行。
'public' => CONFIG . 'gpg' . DS . 'serverkey.asc', 'private' => CONFIG . 'gpg' . DS . 'serverkey_private.asc',
保存並關閉文件。
第六步:運行安裝腳本
運行安裝腳本如下 www-data
用戶。
sudo su -s /bin/bash -c "./bin/cake passbolt install --force" www-data
在安裝過程中,系統會提示您創建管理員帳戶。
創建帳戶後 您將獲得一個 URL,以在您的 Web 瀏覽器中完成安裝..在此之前,您需要使用 Apache 或 Nginx。
第 7 步:創建 Apache Passbolt 虛擬主機或 Nginx 配置文件
阿帕奇
如果您使用 Apache Web 服務器,請創建 Passbolt 虛擬主機。
sudo nano /etc/apache2/sites-available/passbolt.conf
將以下文本放入文件中。交換 passbolt.example.com
請記住使用實際域名並設置 DNSA 記錄。此外,Passbolt 網絡路由是 /var/www/passbolt/webroot/
, 數字 /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>
保存並關閉文件。然後使用以下命令啟用此虛擬主機:
sudo a2ensite passbolt.conf
要使更改生效,請重新加載 Apache。
sudo systemctl reload apache2
nginx
如果您使用 Nginx Web 服務器,請創建 Passbolt 虛擬主機。
sudo nano /etc/nginx/conf.d/passbolt.conf
將以下文本放入文件中。交換 passbolt.example.com
請記住使用實際域名並設置 DNSA 記錄。此外,Passbolt 網絡路由是 /var/www/passbolt/webroot/
, 數字 /var/www/passbolt/
..
server {
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.2-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;
}
}
保存並關閉文件。接下來,測試您的 Nginx 配置。
sudo nginx -t
如果測試成功,請重新加載 Nginx 以使更改生效。
sudo systemctl reload nginx
第 8 步:啟用 HTTPS
要加密 HTTP 流量,請安裝 Let’s Encrypt 頒發的免費 TLS 證書並啟用 HTTPS。通過運行以下命令在 Ubuntu 18.04 服務器上安裝 Let’s Encrypt 客戶端 (certbot):
sudo apt install certbot
如果要使用 Nginx,還需要安裝 Certbot Nginx 插件。
sudo apt install python3-certbot-nginx
然後運行以下命令獲取並安裝 TLS 證書。
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d passbolt.example.com
如果您使用 Apache,請安裝 Certbot Apache 插件。
sudo apt install python3-certbot-apache
運行此命令以獲取並安裝 TLS 證書。
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d passbolt.example.com
在哪裡
--nginx
: 使用 nginx 插件。--apache
: 使用 Apache 插入。--agree-tos
: 我接受使用條款。--redirect
: 301 通過重定向強制 HTTPS。--hsts
:將 Strict-Transport-Security 標頭添加到所有 HTTP 響應。強制瀏覽器始終對域使用 TLS。 防止 SSL / TLS 剝離。--staple-ocsp
:啟用 OCSP 訂書釘。有效的 OCSP 響應被裝訂到 TLS 期間服務器提供的證書。
現在將自動獲取並安裝證書。
第 9 步:在 Web 瀏覽器中完成密碼安裝
首先,您需要在 Firefox 或 Google Chrome 瀏覽器中安裝 Passbolt 擴展程序。
- Firefox 的密碼擴展
- Google Chrome Passbot 擴展程序
接下來,複製運行安裝腳本後獲得的 URL,並將其粘貼到瀏覽器的地址欄中。 將顯示基於 Web 的設置嚮導。第一步是確保您的域和服務器密鑰指紋是正確的。
在第二步[次へ]單擊按鈕以導入現有密鑰。
第三步是創建密碼。
然後下載加密密鑰並將其存儲在安全的地方。此密鑰只能使用密碼解密。
第四步是設置安全令牌。
最後,您可以使用密碼登錄。
您現在可以創建密碼並將其從 csv 或 kdbx 文件導入。
設置 cron 作業以自動發送電子郵件
要發送系統電子郵件,請運行以下命令:
sudo -u www-data /var/www/passbolt/bin/cake EmailQueue.sender
您可以將此命令添加到 www-data 用戶的 crontab 文件以自動執行電子郵件處理。
sudo crontab -u www-data -e
將以下行添加到文件中以每分鐘處理一次電子郵件。
* * * * * /var/www/passbolt/bin/cake EmailQueue.sender
保存並關閉文件。
(可選)設置 ModSecurity
也可以設置 模塊安全 用於保護 PHP Web 應用程序免受黑客攻擊的 Web 應用程序防火牆。 如果您正在使用帶有 Apache Debian / Ubuntu 的 Web 服務器,請閱讀以下教程。
- 如何在 Debian / Ubuntu 上配置 ModSecurity Apache
如果您在 Debian / Ubuntu 上使用 Nginx Web 服務器,請閱讀以下教程。
- 如何在 Debian / Ubuntu 上使用 Nginx 設置 ModSecurity
故障排除
我正在嘗試創建密碼,但是“深呼吸,享受這一刻……該屏幕可能是由於物理 Apache 或 Nginx 配置文件問題。 如果您從 Apache 文章中復制了 /Nginx 配置,則創建密碼沒有問題。
如果您啟用了 ModSecurity Web 應用程序防火牆,您應該會看到如下內容: 無法驗證服務器密鑰 錯誤。
接下來,您需要將以下自定義規則排除添加到 ModSecurity。
SecRule REQUEST_URI "@streq /auth/verify.json?api-version=v2" "id:1060,phase:2,ctl:ruleRemoveById=942100"
重新啟動您的網絡服務器。
sudo systemctl restart apache2
還
sudo systemctl restart nginx
包起來
我們希望本教程能幫助您在 Ubuntu 18.04 上安裝 Passbolt。與往常一樣,如果您覺得這篇文章有用,請訂閱我們的免費時事通訊以獲取更多提示和技巧。照顧好自己?