Passboltは、オープンソースのセルフホストパスワードマネージャーであり、Webサイトのログイン資格情報、ルーターパスワード、Wi-Fiパスワードなどを安全に保存および共有できます。このチュートリアルでは、Passbolt Community Edition(CE)のインストール方法を説明します。 Ubuntu20.04でApacheまたはNginxWebサーバーを使用します。
パスボルト機能
- 無料でオープンソース
- パスワードは、実績のある暗号化標準であるOpenPGPで暗号化されます。
- ブラウザ拡張機能はFirefoxとGoogleChromeで利用できます。
- セキュリティを損なうことなく、ログイン資格情報をチームと簡単に共有できます。
- クリーンでユーザーフレンドリーなインターフェース。
- パスワードをインポートおよびエクスポートします。パスワードを
.kdbx
にエクスポートできます または.csv
KeepassX、LastPass、または1passwordで使用するファイル形式。 - ログイン資格情報を手動で追加できます。
Ubuntu20.04サーバーにPassboltをインストールするための前提条件
PassboltはPHPで記述されており、MySQL/MariaDBデータベースサーバーに依存しています。したがって、Passboltをインストールする前に、LAMPスタックまたはLEMPスタックを設定する必要があります。 Apache Webサーバーを使用する場合は、LAMPスタックを設定します。
- Ubuntu20.04にLAMPスタックをインストールする方法
Nginx Webサーバーを使用する場合は、LEMPスタックを設定します。
- Ubuntu20.04にLEMPスタックをインストールする方法
ドメイン名も必要なので、Webブラウザを使用してどこからでもPassboltに安全にアクセスできます。 NameCheapからドメイン名を登録したのは、価格が安く、whoisのプライバシー保護が一生無料になるからです。
上記の要件が満たされたら、以下の手順に従ってPassboltをインストールします。
ステップ1:PassboltをUbuntu20.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
次のコマンドを実行して、Passboltが必要または推奨するPHPモジュールをインストールします
sudo apt install php-imagick php-gnupg php7.4-common php7.4-mysql php7.4-fpm php7.4-ldap php7.4-gd php7.4-imap php7.4-json php7.4-curl php7.4-zip php7.4-xml php7.4-mbstring php7.4-bz2 php7.4-intl php7.4-gmp php7.4-xsl
次に、Apacheを再起動します。 (Nginxを使用している場合は、Nginxを再起動する必要はありません。)
sudo systemctl restart apache2
ディレクトリを変更します。
cd /var/www/passbolt/
Composer –PHP依存関係マネージャーをインストールします。
sudo apt install composer
Composerのキャッシュディレクトリを作成します。
sudo mkdir /var/www/.composer
www-data
を作成します 所有者として。
sudo chown -R www-data:www-data /var/www/.composer
Composerを使用して依存関係をインストールします。
sudo -u www-data composer install --no-dev
フォルダのアクセス許可を設定するように求められた場合は、Y
を選択します 。
ステップ2:Passbolt用の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:OpenPGPキーを生成する
VPS(Virtual Private Server)を使用している場合は、 havegedをインストールすることをお勧めします 十分なエントロピーを生成するためのパッケージ。
sudo apt install haveged
haveged.service
インストール後に自動的に起動します。次のコマンドでステータスを確認できます:
sudo systemctl status haveged
次に、次のコマンドを実行して、新しいキーペアを生成します。
gpg --gen-key
名前とメールアドレスの入力を求められます。パスフレーズを設定するように求められた場合は、タブキーを押して[OK]を選択してスキップします。これは、現在php-gnupgモジュールがパスフレーズの使用をサポートしていないためです。
秘密鍵をパスボルト構成の場所にコピーします。 [email protected]
を置き換えます PGPキーを生成するときに電子メールアドレスを使用します。
gpg --armor --export-secret-keys [email protected] | sudo tee /var/www/passbolt/config/gpg/serverkey_private.asc > /dev/null
また、公開鍵もコピーします。
gpg --armor --export [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
ステップ4:パスボルトを構成する
/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をhttps://passbolt.yourdomain.com
などの独自のURLに置き換えます 。 DNSレコードマネージャーでこのサブドメインのDNSAレコードを作成することを忘れないでください。
database configuration
セクションに、手順2で作成したデータベース名、データベースユーザー名、およびパスワードを入力します。
// Database configuration. 'Datasources' => [ 'default' => [ 'host' => 'localhost', //'port' => 'non_standard_port_number', 'username' => 'user', 'password' => 'secret', 'database' => 'passbolt', ], ],
email configuration
セクション、
- SMTPホスト名、ポート番号、ログイン資格情報を指定して、パスボルトが電子メールを送信できるようにします。通常、リモートSMTPサーバーに電子メールをsumbitするには、ポート587を使用する必要があります。必ず
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', ], ],
独自のメールサーバーを簡単に設定するには、次のチュートリアルをご覧ください。
- iRedMailを使用してUbuntu20.04で独自のメールサーバーを簡単にセットアップする方法
注 :パスボルトがメールサーバーと同じボックスにインストールされている場合は、EmailTransport
でユーザー名とパスワードを指定する必要はありません。 。 //
を使用するだけです これらの2行をコメントアウトします。次のスクリーンショットは、このシナリオの構成例を示しています。
gpgセクションに、以下のようにGPGキーのフィンガープリントを入力します。指紋の空白をすべて削除する必要があります。
'fingerprint' => '2FC8945833C51946E937F9FED47B0811573EE67E',
次のコマンドを使用して、キーの指紋を取得できます。 [email protected]
を置き換えます PGPキーペアを生成するときにメールアドレスを使用します。
gpg --list-keys --fingerprint | grep -i -B 2 '[email protected]'
指紋を入力したら、次の2行のコメントを解除します。
'public' => CONFIG . 'gpg' . DS . 'serverkey.asc', 'private' => CONFIG . 'gpg' . DS . 'serverkey_private.asc',
ファイルを保存して閉じます。
ステップ5:インストールスクリプトを実行する
インストールスクリプトをwww-data
として実行します ユーザー。
sudo su -s /bin/bash -c "./bin/cake passbolt install --force" www-data
インストール中に、管理者アカウントを作成するように求められます。
アカウントを作成すると、ウェブブラウザでのインストールを完了するためのURLが提供されます 。その前に、ApacheまたはNginxを使用してWebサーバーを構成する必要があります。
ステップ6:Passbolt用のApache仮想ホストまたはNginx構成ファイルを作成する
Apache
Apache Webサーバーを使用する場合は、Passboltの仮想ホストを作成します。
sudo nano /etc/apache2/sites-available/passbolt.conf
次のテキストをファイルに入れます。 passbolt.example.com
を置き換えます 実際のドメイン名を使用して、DNSAレコードを設定することを忘れないでください。また、PassboltのWebルートは/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のWebルートは/var/www/passbolt/webroot/
であることに注意してください。 、/var/www/passbolt/
ではありません 。
server { listen 80; 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.4-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
ステップ7:HTTPSを有効にする
HTTPトラフィックを暗号化するには、Let’sEncryptから発行された無料のTLS証明書をインストールしてHTTPSを有効にします。次のコマンドを実行して、Let’s Encryptクライアント(certbot)をUbuntu20.04サーバーにインストールします。
sudo apt install certbot
Nginxを使用する場合は、CertbotNginxプラグインもインストールする必要があります。
sudo apt install python3-certbot-nginx
次に、次のコマンドを実行してTLS証明書を取得してインストールします。
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d passbolt.example.com
Apacheを使用する場合は、CertbotApacheプラグインをインストールしてください。
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
:すべてのHTTP応答にStrict-Transport-Securityヘッダーを追加します。ドメインに常にTLSを使用するようにブラウザを強制します。 SSL/TLSストリッピングから防御します。 -
--staple-ocsp
:OCSPステープリングを有効にします。有効なOCSP応答は、TLS中にサーバーが提供する証明書にホチキス止めされます。
これで、証明書が取得され、自動的にインストールされます。
ステップ8:Webブラウザでのパスボルトのインストールを終了する
まず、FirefoxまたはGoogleChromeブラウザにPassbolt拡張機能をインストールする必要があります。
- Firefox用のパスボルト拡張機能
- GoogleChromeのパスボット拡張機能
次に、インストールスクリプトの実行後に取得したURLをコピーして、ブラウザのアドレスバーに貼り付けます。 Webベースのセットアップウィザードが表示されます。最初のステップは、ドメインとサーバーのキーの指紋が正しいことを確認することです。
2番目のステップでは、[次へ]ボタンをクリックして、新しいキーを作成します。
3番目のステップで、パスフレーズを作成します。
次に、暗号化された秘密鍵をダウンロードして、安全な場所に保管します。このキーは、パスフレーズを使用してのみ復号化できます。
4番目のステップで、セキュリティトークンを設定します。
最後に、パスフレーズを使用してログインできます。
これで、パスワードを作成し、csvまたはkdbxファイルからパスワードをインポートできます。
ステップ8:メールを自動的に送信するようにcronジョブを設定する
システムメールを送信するには、次のコマンドを実行します。
sudo -u www-data /var/www/passbolt/bin/cake EmailQueue.sender
www-dataユーザーのCrontabファイルにコマンドを追加して、メールを自動的に処理できます。
sudo crontab -u www-data -e
ファイルに次の行を追加して、1分ごとにメールを処理します。
* * * * * /var/www/passbolt/bin/cake EmailQueue.sender
ファイルを保存して閉じます。
(オプション)ModSecurityの設定
ModSecurityを設定することもできます PHPWebアプリケーションをハッキングから保護するためのWebアプリケーションファイアウォール。 Debian /UbuntuでApacheWebサーバーを使用している場合は、次のチュートリアルをお読みください。
- Debian/UbuntuでApacheを使用してModSecurityを設定する方法
Debian /UbuntuでNginxWebサーバーを使用している場合は、次のチュートリアルをお読みください。
- 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"
そして、Webサーバーを再起動します。
sudo systemctl restart apache2
または
sudo systemctl restart nginx