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

在安裝過程中,系統會提示您創建管理員帳戶。

安裝 passboltubuntu

創建帳戶後 您將獲得一個 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 期間服務器提供的證書。

現在將自動獲取並安裝證書。

passbot 自託管密碼管理器

第 9 步:在 Web 瀏覽器中完成密碼安裝

首先,您需要在 Firefox 或 Google Chrome 瀏覽器中安裝 Passbolt 擴展程序。

  • Firefox 的密碼擴展
  • Google Chrome Passbot 擴展程序

接下來,複製運行安裝腳本後獲得的 URL 並將其粘貼到瀏覽器的地址欄中。 將顯示基於 Web 的設置嚮導。第一步是確保您的域和服務器密鑰指紋是正確的。

密碼安裝嚮導密碼管理器

在第二步[次へ]單擊按鈕以導入現有密鑰。

passbolt-import-private-key-ubuntu

第三步是創建密碼。

密碼登錄密碼短語 ubuntu

然後下載加密密鑰並將其存儲在安全的地方。此密鑰只能使用密碼解密。

備份-密碼-密鑰-ubuntu

第四步是設置安全令牌。

密碼安全令牌

最後,您可以使用密碼登錄。

passbolt-nginx-config-加密-密碼

您現在可以創建密碼並將其從 csv 或 kdbx 文件導入。

passbolt 導入密碼

設置 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 應用程序防火牆,您應該會看到如下內容: 無法驗證服務器密鑰 錯誤。

passbolt 無法驗證服務器密鑰

接下來,您需要將以下自定義規則排除添加到 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。與往常一樣,如果您覺得本文有用,請訂閱我們的免費新聞通訊以獲取更多提示和技巧。照顧好自己?