在Debian 10上安裝Passbolt Password Manager

在本教程中,您將學習如何在Debian 10上安裝Passbolt密碼管理器。 密碼 是一個免費的,開源的,自託管的,可擴展的,基於OpenPGP的密碼管理器,使團隊能夠安全地存儲其個人信息並共享其通用憑據。它提供了基於訂閱的版本和社區版本。本教程重點介紹社區版的設置。

在撰寫本文時,尚無用於在Debian 10上設置Passbolt的官方指南發行版。因此,我們將從源代碼安裝Passbolt。

在Debian 10上安裝Passbolt Password Manager

先決條件

  • 安裝新的Vanilla Debian 10服務器。
  • 分配服務器至少2 GB RAM和2個vCPU
  • 服務器的可解析主機名或IP地址。
  • 在Debian 10上安裝LEMP / LAMP堆棧

在Debian 10上安裝LAMP / LEMP Stack

假設已滿足上述前三個前提條件,請繼續在Debian 10服務器上安裝LEMP / LAMP堆棧。請注意,Passbolt是用PHP編寫的,因此它需要運行LEMP或LAMP堆棧。

在Debian 10上安裝PHP 7.3

注意: 默認情況下,Debian 10在其默認主存儲庫中隨附了PHP 7.4。

apt-cache policy php
php:
  Installed: (none)
  Candidate: 2:7.4+79+0~20201210.30+debian10~1.gbpedaf15
  Version table:
     2:7.4+79+0~20201210.30+debian10~1.gbpedaf15 500
        500 https://packages.sury.org/php buster/main amd64 Packages
     2:7.3+69 500
        500 http://deb.debian.org/debian buster/main amd64 Packages

Passbolt尚不完全支持PHP 7.4。因此,請確保您安裝了PHP 7.3。下面的LAMP / LEMP指南使用PHP 7.4。確保安裝PHP 7.3及其模塊。

安裝PHP 7.3;

apt install php7.3 php7.3-mysql

請通過以下任一鏈接在Debian 10上設置LAMP或LEMP堆棧。

在Debian上安裝LAMP Stack

在Debian 10上安裝LEMP Stack

在本教程中,我們使用LAMP堆棧運行Passbolt。

創建密碼數據庫和數據庫用戶

登錄到MariaDB / MySQL數據庫服務器;

mysql

上面的命令假定您的MySQL / MariaDB數據庫正在使用 unix_socket 進行身份驗證,並且您以root用戶身份執行命令。如果您不是root用戶並且具有sudo權限,則只需使用; sudo mysql -u root。否則,您可以使用 mysql -u root -p 命令。

替換數據庫名稱,您認為合適的數據庫用戶名和密碼。

創建支持非拉丁字符和表情符號的Passbolt數據庫。

CREATE DATABASE passbolt CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

創建一個Passbolt數據庫用戶並授予該Passbolt數據庫的所有特權。

grant all on passbolt.* to [email protected] identified by '[email protected]';

重新加載特權表並退出數據庫;

flush privileges;
quit

將Passbolt Github存儲庫克隆到Apache Web根目錄

由於我們將從源代碼安裝Passbolt,因此您需要將其Gtihub存儲庫克隆到您的Web根目錄。

在本教程中,我們正在使用 /var/www/passbolt 作為Web根目錄。

mkdir /var/www/passbolt
apt install git
git clone https://github.com/passbolt/passbolt_api.git /var/www/passbolt

由於我們將Apache用作Web服務器,因此需要將Passbolt Web根目錄的所有權(用戶和組)設置為Apache用戶和組。

chown -R www-data: /var/www/

安裝其他必需的依賴項和PHP模塊/擴展

要成功安裝和運行Passbolt,還需要其他工具和PHP擴展。運行以下命令以安裝它們。

apt install composer gnupg2 git php7.3-{gnupg,intl,mbstring,gd,imagick,xml,common,curl,json,ldap} zlib1g

接下來,導航到Passbolt Web根目錄,並使用以下命令安裝其他必需的依賴項 composer

cd /var/www/passbolt

以非特權用戶身份運行composer。在這種情況下,我們使用Passbolt目錄的所有者(Apache Web用戶,www-data)。

sudo -u www-data composer install --no-dev

在安裝過程中,系統會提示您是否調整目錄權限。接受並繼續。

> AppConsoleInstaller::postInstall
Created `config/app.php` file
Created `/var/www/passbolt/logs` directory
Created `/var/www/passbolt/tmp/cache/models` directory
Created `/var/www/passbolt/tmp/cache/persistent` directory
Created `/var/www/passbolt/tmp/cache/views` directory
Created `/var/www/passbolt/tmp/sessions` directory
Created `/var/www/passbolt/tmp/tests` directory
Set Folder Permissions ? (Default to Y) [Y,n]? y

生成用於驗證JSON請求的OpenPGP密鑰

為了驗證和簽名傳出的JSON請求,Passbolt API使用PGP密鑰。因此,請運行以下命令來生成密鑰。

gpg --full-generate-key

當提示您輸入密碼時, 不要 設置它。只需按ENTER並確認您不想設置它。也, 不要設置到期日期。

更換 你的名字YOUR_EMAIL_ID 加上您的姓名和電子郵件ID。

Please select what kind of key you want:
   (1) RSA and RSA (default)
   (2) DSA and Elgamal
   (3) DSA (sign only)
   (4) RSA (sign only)
  (14) Existing key from card
Your selection? 1
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (3072) 4096
Requested keysize is 4096 bits
Please specify how long the key should be valid.
         0 = key does not expire
      <n>  = key expires in n days
      <n>w = key expires in n weeks
      <n>m = key expires in n months
      <n>y = key expires in n years
Key is valid for? (0) 0
Key does not expire at all
Is this correct? (y/N) y

GnuPG needs to construct a user ID to identify your key.

Real name: YOUR_NAME
Email address: ENTER_YOUR_EMAIL_ID
Comment: 
You selected this USER-ID:
    "YOUR_NAME <YOUR_EMAIL_ID>"

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
...
gpg: key 85EB40BA1D5DE890 marked as ultimately trusted
gpg: revocation certificate stored as '/root/.gnupg/openpgp-revocs.d/C503E615618B34331BA1D26D85EB40BA1D5DE890.rev'
public and secret key created and signed.

pub   rsa4096 2020-07-15 [SC]
      C503E615618B34331BA1D26D85EB40BA1D5DE890
uid                      YOUR_NAME <YOUR_EMAIL_ID>
sub   rsa4096 2020-07-15 [E]

記下密鑰指紋並將其保存在某個地方,因為稍後在設置中將需要使用它。

將公共密鑰和私有密鑰導出並存儲在Passbolt配置目錄中。

gpg --armor --export-secret-keys YOUR_EMAIL_ID > /var/www/passbolt/config/gpg/serverkey_private.asc
gpg --armor --export YOUR_EMAIL_ID > /var/www/passbolt/config/gpg/serverkey.asc

接下來,為Apache Web服務器用戶初始化gpg密鑰環,以便Passbolt身份驗證可以工作。

sudo su -s /bin/bash -c "gpg --list-keys" www-data

在Debian 10上配置Passbolt

複製樣本Passbolt配置文件,將其重命名,如下所示;

cp /var/www/passbolt/config/passbolt{.default,}.php

接下來,打開配置文件進行修改;

vim /var/www/passbolt/config/passbolt.php

設置應用程序URL

通過替換以下網址的值,將應用程序網址設置為您的Passbolt應用程序的網址 fullBaseUrl 參數適當。

        // 'fullBaseUrl' => 'https://www.passbolt.test',
        'fullBaseUrl' => 'https://passbolt.kifarunix-demo.com',

定義數據庫連接設置

配置Passbolt數據庫連接設置;

    // Database configuration.
    'Datasources' => [
        'default' => [
            'host' => 'localhost',
            //'port' => 'non_standard_port_number',
            'username' => 'passman',
            'password' => '[email protected]',
            'database' => 'passbolt',
        ],
    ],

配置密碼電子郵件設置

配置Passbolt電子郵件服務器設置。我們正在使用Gmail SMTP作為中繼服務器。

    // Email configuration.
    'EmailTransport' => [
        'default' => [
            'host' => 'smtp.gmail.com',
            'port' => 587,
            'username' => '[email protected]',
            'password' => 'secretpassword',
            // 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]' => 'Kifarunix-demo Passbolt'],
            //'charset' => 'utf-8',
            //'headerCharset' => 'utf-8',
        ],
    ],

指定GPG密鑰指紋

提取GPG密鑰指紋並將其設置為 fingerprint 參數。

gpg --list-keys --fingerprint | grep -i -B 2 YOUR_EMAIL_ID 
pub   rsa4096 2020-07-15 [SC]
      C503 E615 618B 3433 1BA1  D26D 85EB 40BA 1D5D E890
uid           [ultimate] <YOUR_NAME> <YOUR_EMAIL_ID>
sub   rsa4096 2020-07-15 [E]

複製突出顯示的字符串並刪除空格並將其粘貼為 fingerprint 參數。另外,通過刪除行和行下方的兩個正斜杠來取消注釋下面的公用和專用行。

...
            'serverKey' => [
                // Server private key fingerprint.
                'fingerprint' => 'C503E615618B34331BA1D26D85EB40BA1D5DE890',
                'public' => CONFIG . 'gpg' . DS . 'serverkey.asc',
                'private' => CONFIG . 'gpg' . DS . 'serverkey_private.asc',
            ],

保存並退出配置文件。

創建用於Passbolt的Apache VirtualHost配置並啟用HTTPS

接下來,為Passbolt創建專用的Apache虛擬主機配置文件。

vim /etc/apache2/sites-available/passbolt.conf 
<VirtualHost *:80>

        ServerAdmin passbolt.kifarunix-demo.com
        DocumentRoot /var/www/passbolt

	Redirect / https://passbolt.kifarunix-demo.com
</VirtualHost>
#SSLStaplingCache "shmcb:logs/stapling-cache(150000)"
ServerSignature Off
ServerTokens Prod
<VirtualHost _default_:443>
        ServerAdmin passbolt.kifarunix-demo.com
        DocumentRoot /var/www/passbolt


        ErrorLog ${APACHE_LOG_DIR}/passbolt_error.log
        CustomLog ${APACHE_LOG_DIR}/passbolt_access.log combined


        SSLEngine on
        SSLCertificateFile      /etc/ssl/certs/ssl-cert-passbolt.pem
        SSLCertificateKeyFile /etc/ssl/private/ssl-cert-passbolt.key
        SSLCACertificateFile /etc/ssl/private/ssl-cacert-passbolt.pem

        SSLCipherSuite EECDH+AESGCM:EDH+AESGCM
        SSLProtocol -all +TLSv1.3 +TLSv1.2
        SSLOpenSSLConfCmd Curves X25519:secp521r1:secp384r1:prime256v1
        SSLHonorCipherOrder On
        Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
        Header always set X-Frame-Options DENY
        Header always set X-Content-Type-Options nosniff
        SSLCompression off
        #SSLUseStapling on
        SSLSessionTickets Off

	<Directory /var/www/passbolt/>
  		Options FollowSymLinks MultiViews
  		AllowOverride All
		Require all granted
	</Directory>


        <FilesMatch ".(cgi|shtml|phtml|php)$">
                        SSLOptions +StdEnvVars
        </FilesMatch>
        <Directory /usr/lib/cgi-bin>
                        SSLOptions +StdEnvVars
        </Directory>

</VirtualHost>

保存並退出配置文件。

生成TLS證書

如果您注意到,我們在配置中啟用了HTTP> HTTPS重定向。

獲取您的商業信任的CA證書,並將它們安裝在Apache配置中指定的目錄上。

禁用Apache默認站點;

a2dissite 000-default.conf

啟用密碼站點;

a2ensite passbolt.conf

啟用Apache rewritesslheaders 模塊

a2enmod rewrite ssl headers

運行Apache配置語法檢查。

apachectl -t
Syntax OK

如果沒有問題,請重新啟動Apache;否則,請重新啟動。

systemctl restart apache2

運行Passbolt安裝腳本

接下來,執行Passbolt安裝腳本。

cd /var/www/passbolt
sudo su -s /bin/bash -c "./bin/cake passbolt install --no-admin" www-data

默認情況下,運行腳本時,它會提示您創建一個管理用戶。我們通過添加 --no-admin 選項。稍後我們將創建管理員帳戶。


     ____                  __          ____  
    / __ ____  _____ ____/ /_  ____  / / /_ 
   / /_/ / __ `/ ___/ ___/ __ / __ / / __/ 
  / ____/ /_/ (__  |__  ) /_/ / /_/ / / /    
 /_/    __,_/____/____/_.___/____/_/__/   

 Open source password manager for teams
---------------------------------------------------------------

Running baseline checks, please wait...
Critical healthchecks are OK

Cleaning up existing tables if any.
---------------------------------------------------------------
0 tables dropped

Install the schema and default data.
---------------------------------------------------------------
using migration paths 
 - /var/www/passbolt/config/Migrations
using seed paths 
 - /var/www/passbolt/config/Seeds
using environment default
using adapter mysql
using database passbolt
ordering by creation time
...
All Done. Took 111.3186s

Import the server private key in the keyring
---------------------------------------------------------------
Importing /var/www/passbolt/config/gpg/serverkey_private.asc
Keyring init OK

Passbolt installation success! Enjoy! ☮

運行運行狀況檢查,以確保一切正常。

cd /var/www/passbolt
sudo su -s /bin/bash -c "./bin/cake passbolt healthcheck" www-data
...
 Application configuration

 [PASS] Using latest passbolt version (2.13.1).
 [PASS] Passbolt is configured to force SSL use.
 [PASS] App.fullBaseUrl is set to HTTPS.
 [PASS] Selenium API endpoints are disabled.
 [PASS] Search engine robots are told not to index content.
 [PASS] Registration is closed, only administrators can add users.
 [PASS] Serving the compiled version of the javascript app
 [PASS] All email notifications will be sent.

 No error found. Nice one sparky!

從瀏覽器完成密碼設置

現在,您可以按照以下地址從瀏覽器完成Passbolt設置: https://<passbolt-server-hostname>

下載並安裝適用於您特定瀏覽器的插件,在本演示中,我們使用Chrome。因此,請點擊 下載插件 下載以安裝Passbolt Chrome附加擴展程序。


創建密碼管理用戶

您現在可以使用來創建Passbolt管理員用戶 ./bin/cake passbolt register_user 命令。以下是此命令的命令行選項;

cd /var/www/passbolt
./bin/cake passbolt register_user --help
     ____                  __          ____  
    / __ ____  _____ ____/ /_  ____  / / /_ 
   / /_/ / __ `/ ___/ ___/ __ / __ / / __/ 
  / ____/ /_/ (__  |__  ) /_/ / /_/ / / /    
 /_/    __,_/____/____/_.___/____/_/__/   

 Open source password manager for teams
---------------------------------------------------------------
Register a new user.

Usage:
cake passbolt register_user [options]

Options:

--first-name, -f        The user first name
--help, -h              Display this help.
--interactive, -i       Enable interactive mode
--interactive-loop      Enable interactive mode (default:
                        3)
--last-name, -l         The user last name
--quiet, -q             Enable quiet output.
--role, -r              The User role, such as "admin" or "user"
--username, -u          The user email aka username
--verbose, -v           Enable verbose output.

因此,讓我們創建一個管理員用戶;

cd /var/www/passbolt
sudo su -s /bin/bash -c "./bin/cake passbolt register_user -u [email protected] -f Kifarunix -l Demo -r admin" www-data
     ____                  __          ____  
    / __ ____  _____ ____/ /_  ____  / / /_ 
   / /_/ / __ `/ ___/ ___/ __ / __ / / __/ 
  / ____/ /_/ (__  |__  ) /_/ / /_/ / / /    
 /_/    __,_/____/____/_.___/____/_/__/   

 Open source password manager for teams
---------------------------------------------------------------
User saved successfully.
To start registration follow the link provided in your mailbox or here: 
https://passbolt.kifarunix-demo.com/setup/install/4dbe1c54-79bc-48b5-9ab3-705afd5af097/e34ea69b-0954-401b-8232-946ce721eda9

複製用戶註冊時提供的鏈接,並將其粘貼到瀏覽器地址欄上,以便您可以使用它來完成Passbolt的設置。

該鏈接將您帶到“歡迎”頁面以完成Passbolt設置。 如果加載Passbolt URL後出現空白頁,則表明您尚未安裝Passbolt瀏覽器擴展

在Debian URL檢查上安裝Passbolt密碼管理器

確認URL和GPG密鑰指紋正確,然後單擊 下一個 進行設置。

在下一步中,您需要生成密鑰。但是,您只需單擊 進口 導入現有密鑰。

導入生成密碼鍵

設置一個複雜的密碼,您可以輕鬆記住該密碼來保護您的秘密密鑰。

在Debian 10上安裝Passbolt Password Manager

現在,您的密鑰已使用密碼生成並加密,並存儲在Passbolt附件中。通過下載並將其存儲在其他位置,確保複製該密鑰。

在Debian 10上安裝Passbolt Password Manager

單擊下一步生成您的安全令牌。

在Debian 10上安裝Passbolt Password Manager

您現在已經成功設置了密碼。

單擊“下一步”進入“登錄”頁面。

在Debian 10上安裝Passbolt Password Manager

然後你去。

在Debian 10上安裝Passbolt Password Manager

您現在可以開始使用Passbolt來存儲密碼/根據需要共享密碼。

配置密碼發送電子郵件

最後但並非最不重要的一點是,您現在可以將Passbolt配置為能夠在創建,共享,修改新密碼時發送電子郵件通知。

在此之前,請確保已配置Passbolt電子郵件設置。

cd /var/www/passbolt
./bin/cake EmailQueue.sender

執行上述操作時,您應該能夠收到有關激活帳戶以及歡迎您使用Passbolt的電子郵件。

創建一個cron作業以執行此腳本,以自動發送電子郵件。

以Apache Web服務器用戶身份安裝cron作業, www-data

crontab -u www-data -e

創建一個始終運行的cron作業。

* * * * * /var/www/passbolt/bin/cake EmailQueue.sender >> /var/log/passbolt-mails.log

保存並退出cron作業文件。

您可以列出已安裝的cronjobs。

crontab -u www-data -l

您的Passbolt密碼管理器現已準備就緒。這標誌着我們關於如何在Debian 10上安裝Passbolt Password Manager的指南的結尾。

參考

從源代碼安裝Passbolt

Sidebar