Passboltは、PHP、MySQL、およびOpenPGPに基づく無料のオープンソースパスワードマネージャーです。これは自己ホスト型のアプリケーションサーバーであり、サーバーにインストールできます。 Passboltは主にチーム向けに設計されていますが、個人のパスワードマネージャーとしても使用できます。
PassboltはOpenPGP上に構築されており、拡張可能なAPIを備えています。クライアント側では、暗号化機能のためにOpenPGP.js上に構築されたPassboltブラウザー拡張機能を使用できます。サーバー側では、PassboltはGnuPG PHP拡張機能とopenpgp-phpを使用して、キーの検証とユーザー認証を実行します。 Passboltは、ユーザー認証にGPGAuthプロトコルを使用します。
この記事では、PassboltセルフホストパスワードマネージャーをRockyLinuxサーバーにインストールする方法を学習します。 PHP 7.4、MariaDBサーバー、およびNginxWebサーバーを使用してPassboltをインストールします。
この例では、次のサーバーの詳細を使用します。
- オペレーティングシステム: Rocky Linux 8.4(緑の黒曜石)
- IPアドレス: 192.168.1.10
- ドメイン名、この例では使用します:https://pass.example.io
それでは、Passboltのインストールを開始しましょう。
まず、新しいリポジトリを追加し、いくつかのパッケージの依存関係をRockyLinuxシステムにインストールします。
1.次のコマンドを実行して、「PowerTools」リポジトリを有効にし、Enterprise Linux(EPEL)リポジトリ用の追加パッケージをインストールします。
sudo dnf config-manager --set-enabled powertools
sudo dnf install epel-release -y
2.次のコマンドを実行して、PHP7.4リポジトリを有効にします。
sudo dnf module enable php:7.4 -y
3.次に、以下のDNFコマンドを使用して、PHP-FPM、MariaDB、Nginx、およびいくつかの追加パッケージをインストールします。
sudo dnf install -y nginx mariadb-server mariadb php php-intl php-gd php-mysqlnd php-pear php-devel php-mbstring php-fpm php-json php-ldap gcc gpgme gpgme-devel git policycoreutils-python -utils unzip haveged make gcc
4.すべてのインストールが完了したら、次のコマンドを実行してPHPComposerインストーラースクリプトをダウンロードします。
php -r "copy('https://getcomposer.org/installer'、'composer-setup.php');"
php -r "if(hash_file('sha384'、'composer- setup.php')===' 906a84df04cea2aa72f40b5f787e49f22d4c2f19492ac310e8cba5b96ac8b64115ac402c8cd292b8a03482574915d1a8'){echo'インストーラー検証済み';} else {echo'インストーラー破損';unlink('composer;次に、次のコマンドを再度実行して、PHPコンポーザーをシステム全体の環境にインストールします。
php composer-setup.php
sudo mv composer.phar / usr / bin / composer以下のようにPHPcomposerコマンドを確認してください。
sudo -u nginx composer --version以下のような出力が得られます。
作曲家バージョン2.1.122021-11-0916:02:045.次に、PHP Extension Community Library(PECL)リポジトリからGnuPGPHPExtensionsをインストールします。
pecl install gnupgその後、次のコマンドを使用してGnuPGPHP拡張機能を有効にします。
echo "extension =gnupg.so"> /etc/php.d/gnupg.ini6.次に、以下のsystemctlコマンドを使用して、いくつかのサービスを開始して有効にします。
sudo systemctl enable --now nginx
sudo systemctl enable --now mariadb
sudo systemctl enable --now php-fpm
sudo systemctl enable --now havegedこれで、Passboltのパッケージ依存関係のインストールが完了しました。
MariaDBとPHP-FPMの構成
このステップでは、MariaDBルートパスワードとPHP-FPMサービスを設定します。
1.次のコマンドを実行して、MariaDBルートパスワードを設定します。
mysql_secure_installationMariaDB rootユーザーの新しい強力なパスワードを入力して繰り返し、「Y」と入力します すべてのMariaDB構成に同意します。
2.次に、' /etc/php.iniを編集します 'nanoエディターを使用した構成ファイル。
nano /etc/php.ini'date.timezone'オプションのコメントを解除し、サーバーのタイムゾーンで値を変更します。
date.timezone=ヨーロッパ/パリ構成を保存して終了します。
3.PHP-FPM構成を編集します'/etc/php-fpm.d/www.conf 'nanoエディターを使用します。
nano /etc/php-fpm.d/www.confPHP-FPMのデフォルトのユーザーとグループを'nginxに変更します '。
user =nginx
group =nginx' listen.ownerのコメントを解除します 'および'listen.group '、値をユーザー' nginxに変更します '。
listen.owner =nginx
listen.group =nginx構成を保存して終了します。
次に、以下のsystemctlコマンドを使用してPHP-FPMサービスを再起動し、新しいPHP-FPM構成を適用します。
sudo systemctl restart php-fpmこれで、PHP-FPMの基本構成が完了し、MariaDBrootユーザーの新しいパスワードが作成されました。
Passboltの新しいデータベースを作成する
Passboltインストール用の新しいデータベースを作成するには、「 mysql」を使用してMariaDBシェルにログインします。 '以下のコマンド。
mysql -u root -p1.次のクエリを使用して、新しいデータベース「passdb」を作成します。
CREATE DATABASE passdb;2.データベースのすべての権限を付与します'passdb '新しいユーザーに。次のクエリは、新しいMariaDBユーザー' passboltを自動的に作成します。 '。
GRANT ALLONpassdb。*[email protected] IDENTIFIED BY'PassboltdbPass';3.すべてのテーブルの権限を再読み込みします。
FLUSH PRIVILEGES;次に、「 EXIT」と入力します 'を押して'Enter 'MariaDBシェルからログアウトします。
![]()
次の手順に進み、Passboltのインストールを開始します。
PassboltをダウンロードしてPHPの依存関係をインストールする
このステップでは、Passboltソースコードをサーバーにダウンロードし、PHPコンポーザーを使用してPHP依存関係をインストールします。
1.現在の作業ディレクトリを「/var/ www」に変更し、以下のコマンドを使用してPassboltソースのクローンを作成します。
cd / var / www /
git clone https://github.com/passbolt/passbolt_api.git passboltパスボルトのインストールは'/var / www / passbolt'
2.Passboltインストールディレクトリの所有権をユーザー'nginxに変更します '。
sudo chown -R nginx:nginx / var / www / passbolt3. Passboltインストールディレクトリに移動し、PHPcomposerコマンドを使用してPHP依存関係をインストールします。また、PHPコンポーザーコマンドをユーザーとして実行してください' nginx '。
cd / var / www / passbolt
sudo -u nginx composer install --no-devすべてのPHP依存関係のインストールが完了したら、次の手順に進んでGPGキーを生成します。
サーバーのGPGキーを生成 このステップでは、Passboltサーバー用の新しいGPGキーを生成します。
現在のPHP拡張機能openpgp-phpとGnuPGPHPはまだパスフレーズをサポートしていないため、パスフレーズなしで新しいGPGキーを作成します。
1. GPGキーを生成するには、以下のgpgコマンドを実行します。
gpg --gen-key名前とメールアドレスを入力し、パスフレーズは使用しないでください。
gpg(GnuPG)2.2.20; Copyright(C)2020 Free Software Foundation、Inc.
これはフリーソフトウェアです。自由に変更および再配布できます。
法律で許可されている範囲で、保証はありません。
注:フル機能のキー生成ダイアログには「gpg--full-generate-key」を使用してください。
GnuPGは、キーを識別するためにユーザーIDを作成する必要があります。
本名:johndoe
メールアドレス:[メール保護]
このユーザーIDを選択しました:
"johndoe<[メール保護]>"
変更(N)ame、(E)mail、または(O)kay /(Q)uit? O
ランダムなバイトをたくさん生成する必要があります。プライム生成中に
他のアクション(キーボードでの入力、マウスの移動、
ディスクの利用)を実行することをお勧めします。これにより、乱数ジェネレーターが十分なエントロピーを取得できる可能性が高くなります。
多くのランダムバイトを生成する必要があります。プライム生成中に
他のアクション(キーボードでの入力、マウスの移動、
ディスクの利用)を実行することをお勧めします。これにより、乱数ジェネレーターが十分なエントロピーを取得できる可能性が高くなります。
gpg:最終的に信頼できるとマークされたキー14F31ED1FBEBAD9A
gpg:'/root/.gnupg/openpgp-revocsとして保存された失効証明書.d / BCD52DF829FF8F9408A2F1B214F31ED1FBEBAD9A.rev'
公開鍵と秘密鍵が作成され、署名されました。
pub rsa2048 2021-11-16 [SC] [有効期限:2023-11-16]
BCD52DF829FF8F9408A2F1B214F31ED1FBEBAD9A
uid johndoe
sub rsa2048 2021-11-16 [E] [expires:2023-11-16]また、新しいキーのフィンガープリントをメモします。この例では、キーのフィンガープリントは' BCD52DF829FF8F9408A2F1B214F31ED1FBEBAD9A '。
2.次に、GPGキーをpassboltインストールディレクトリにエクスポートします' / var / www / passbolt / config / gpg / '。
gpg --armor--export-secret-keys[メール保護]>/var/www/passbolt/config/gpg/serverkey_private.asc
gpg --armor--export[メール保護]>/ var / www / passbolt / config / gpg / serverkey.ascこの時点で、以下のようなGPGキー情報についてメモする必要があります。
- 指紋: BCD52DF829FF8F9408A2F1B214F31ED1FBEBAD9A
- メール:[メールで保護]
- 公開鍵: serverkey.asc
- 秘密鍵: serverkey_private.asc
3.次に、次のコマンドを使用して、ユーザーnginxのGNUPGディレクトリを生成する必要があります。
sudo su -s / bin / bash -c "gpg --list-keys" nginx以下のような出力が表示されます。
gpg:ディレクトリ'/var/lib/nginx/.gnupg'が作成されました
gpg:キーボックス'/var/lib/nginx/.gnupg/pubring.kbx'が作成されました
gpg:/ var / lib / nginx / .gnupg / trustdb.gpg:trustdbが作成されましたこれで、PassboltのGPGキー構成が完了しました。 Passbolt構成の次のステップに進みます。
PassboltおよびNginxサーバーブロックの構成
このステップでは、Passboltのインストールドメイン名、データベース、およびGPGキーを構成します。
開始する前に、作業ディレクトリを'/ var / www / passbolt'に変更します。 ディレクトリ。
export PASSBOLT =/ var / www / passbolt /
cd $ PASSBOLT1.デフォルト設定を「passbolt.php」にコピーしてから、nanoエディターを使用して編集します。
cp config / passbolt.default.php config / passbolt.php
nano config / passbolt.php' fullBaseUrlを変更します 'Passboltドメイン名をインストールするオプション。この例は「https://pass.example.io」
です。'アプリ'=>[
//コメント
'fullBaseUrl' =>'https://pass.example.io'、
/ /コメント..
]、以下のMariaDBユーザーとパスワードを使用してデータベース構成を変更します。
//データベース構成。
'データソース'=>[
'default' => [
'host' =>'localhost'、
//'port' =>'non_standard_port_number'、
'username' =>'passbolt'、
'password' =>'PassboltdbPass'、
'database' =>'passdb'、
、
]、GPGフィンガープリントをコピーして貼り付け、「パブリック」オプションと「プライベート」オプションのコメントを解除します。
'gpg' => [
//
//コメントが削除されました
//
フィンガープリント'serverKey'=> [
'fingerprint' => '38E3736DD02860F8CBA57BB99C8B82A2C3A6959F'、
'public'=>CONFIG。 'gpg'。 DS。 'serverkey.asc'、
'private'=>CONFIG。 'gpg'。 DS。 'serverkey_private.asc'、
]、構成を保存して終了します。
2.次に、新しいNginxサーバーブロック構成を作成します' /etc/nginx/conf.d/passbolt.conf 'nanoエディターを使用します。
nano /etc/nginx/conf.d/passbolt.conf次の構成をコピーして貼り付け、SSL証明書のドメイン名とパスを必ず変更してください。
server {
listen 80;
server_name pass.example.io;
return 302 https:// $ server_name $ request_uri;
}
server {
listen 443 ssl http2;
server_name pass.example.io;
root / var / www / passbolt;
ssl_certificate /etc/letsencrypt/live/pass.example.io/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/pass.example.io/privkey.pem;
ssl_protocols TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384;
ssl_ecdh_curve secp384r1; #nginxが必要> =1.1.0
ssl_session_timeout 10m;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off; #nginxが必要> =1.5.9
#ssl_stapling on; #nginxが必要> =1.3.7
#ssl_stapling_verify on; #nginxが必要=> 1.3.7
resolver 8.8.8.8 8.8.4.4 valid =300s;
resolver_timeout 5s;
add_header X-Frame-Options DENY;
add_header X-Content -Type-Options nosniff;
add_header X-XSS-Protection "1; mode =block";
location / {
try_files $ uri $ uri / /index.php? $ args;
index index.php;
}
location〜 \ .php $ {
fastcgi_index index.php;
fastcgi_pass unix:/ var /run/php-fpm/www.sock;
fastcgi_split_path_info ^(。+ \。php)(。+)$;
include fastcgi_params;
document SC root $ SC /> fastcgi_param SERVER_NAME $ http_host;
}
場所〜* \。(jpe?g | woff | woff2 | ttf | gif | png | bmp | ico | css | js | json | pdf | zip | htm | html | docx?| xlsx?| pptx?| txt | wav | swf | svg | avi | mp \ d)$ {
access_log off;
log_not_found off;
try_files $ uri / webroot / $ uri /index.php?$args;
}
}構成を保存して終了します。
次に、Nginxの構成を確認し、エラーが発生しないことを確認してから、Nginxサービスを再起動します。
nginx -t
sudo systemctl restart nginx
![]()
3.次に、作業ディレクトリを' / var / www / passboltに変更します。 'そして、以下のコマンドを使用してPassboltのインストールを開始します。
cd / var / www / passbolt
sudo su -s / bin / bash -c "./bin/cake passbolt install" nginxPassboltのインストールプロセスの最後に、Passboltの新しい管理者ユーザーを作成します。
メールアドレス、名、名前を入力します。次に、Passboltインストールリンクをコピーします。
![]()
WebブラウザからPassboltにアクセスする
Webブラウザーを開き、Passboltインストーラーによって生成されたPassboltインストールリンクをアドレスバーに貼り付けます。
https://pass.example.io/setup/install/8383584c-2eca-496a-a0ca-4fe35a157d24/fc5ad911-9409-416a-8175-a18cd19dcb20
1. Passboltは、Webブラウザーを自動的に検出し、Passboltブラウザー拡張機能のインストールリンクを表示します。
ボタンをクリックします'拡張機能をダウンロード '、Passboltブラウザ拡張機能をインストールします。
![]()
2.新しい強力なパスフレーズを入力し、[次へ]をクリックします 'ボタン。
![]()
3.リカバリキットをローカルコンピュータにダウンロードし、[次へ]をクリックします ' ボタン。リカバリキットを使用して、パスボルトパスフレーズをリセットできます。
![]()
4. Passboltセキュリティトークンの色を選択し、これらの3文字を忘れないようにしてください。 '次へをクリックします 'ボタンをもう一度。
![]()
5.これで、以下のようにPassboltユーザーダッシュボードにリダイレクトされます。
![]()
6.パスボルトリストのユーザー。
![]()
これで、Passboltパスワードマネージャーのインストールが完了しました。
結論 おめでとうございます!これで、PassboltパスワードマネージャーがPHP-FPM、MariaDBサーバー、およびNginxWebサーバーとともにRockyLinuxに正常にインストールされました。
次のステップでは、チームの新しいパスボルトユーザーを作成できます。
Rocky Linux