Passboltは、チーム向けの無料のオープンソースパスワードマネージャーです。これにより、チームメンバーは資格情報/パスワードを安全に保存および共有できます。 PassboltはPHPで作成され、LEMPスタックの下で実行することも、Dockerコンテナーとして実行することもできます。
このチュートリアルでは、CentOS7サーバーにオープンソースのパスワードマネージャー「Passbolt」をインストールして構成する手順を説明します。 PassboltはPHPで開発されたWebアプリケーションであり、LEMP(Linux、Nginx、MySQL / MariaDB、およびPHP-FPM)で実行します。
- CentOS 7
- root権限
何をしますか?
- 依存関係のインストール
- MariaDBデータベースのインストールと構成
- NginxとPHP-FPMをインストールします
- SSLLetsencryptを生成する
- NginxとPHP-FPMを構成する
- PassboltをダウンロードしてOpenPGPキーを生成する
- パスボルトをインストールする
- パスボルトのインストール後
- 追加のセキュリティサーバーの設定
このガイドで最初に行うことは、Passboltのインストールに必要なすべてのパッケージ依存関係をインストールすることです。これには、EPELおよびRemi PHPリポジトリ、php Composer、gccなどのインストールが含まれます。
EPELリポジトリを追加します。
sudo yum -y install yum-utils epel-release
RemiPHPリポジトリを追加して有効にします。
sudo yum -y install 'http://rpms.remirepo.net/enterprise/remi-release-7.rpm'>
sudo yum-config-manager --enable 'remi-php72'
次に、以下のyumコマンドを使用して、パッケージの依存関係コンポーザー、gitgccなどをインストールします。
sudo yum -y install unzip wget composer policycoreutils-python git gcc
すべてのパッケージがインストールされるのを待ちます。
このステップでは、MariaDBデータベースをインストールしてから、Passboltインストール用の新しいデータベースとユーザーを作成します。
以下のyumコマンドを使用してMariaDBサーバーをインストールします。
sudo yum -y install mariadb-server
インストールが完了したら、MariaDBサービスを開始し、システムの起動時に毎回起動できるようにします。
sudo systemctl start mariadb
sudo systemctl enable mariadb
次に、MariaDBの「root」パスワードを構成する必要があります。以下の「mysql_secure_installation」コマンドを実行します。
mysql_secure_installation
新しいルートパスワードを入力します。
そして、MariaDBルートパスワードが構成されました。
次に、「root」ユーザーを使用してMySQLシェルにログインします。
mysql -u root -p
パスワード「hakase-labs」を使用して「passbolt」という名前の新しいデータベースとユーザーを作成し、以下のMySQLクエリを実行します。
create database passbolt;
grant all on passbolt.* to 'passbolt'@'localhost' identified by 'hakase-labs';
flush privileges;
quit;
MariaDBサーバーがCentOS7サーバーにインストールされ、「Passbolt」インストール用のデータベースが作成されました。
MariaDBサーバーをインストールした後、EPELリポジトリからNginxをインストールし、Remiリポジトリを使用してPHP-FPMパッケージをインストールします。
NginxWebサーバーをインストールします。
sudo yum -y install nginx
インストールが完了したら、Nginxサービスを開始し、システムの起動時に毎回起動できるようにします。
sudo systemctl start nginx
sudo systemctl enable nginx
次に、以下のyumコマンドを使用して、必要なすべての拡張機能を備えたPHP-FPMをインストールします。
sudo yum -y install php-fpm php-intl php-gd php-mysql php-mcrypt php-pear php-devel php-mbstring php-fpm gpgme-devel
インストールが完了したら、PHP-FPMサービスを開始し、システムの起動時に毎回起動できるようにします。
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
NginxWebサーバーとPHP-FPMがインストールされました。
certbotツールをシステムにインストールします。
sudo yum -y install certbot
次に、nginxサービスを停止します。
sudo systemctl stop nginx
そして、passboltドメイン名'passbolt.hakase.io'のSSLLetsencryptを生成します。
以下のcertbotコマンドを実行します。
sudo certbot certonly --standalone --agree-tos --no-eff-email --email [email protected] -d passbolt.hakase.io
certbotツールは、検証のために一時的なWebサーバーを実行します。
完了すると、「/ etc /letsencrypt /live/」ディレクトリで証明書を取得します。
このステップでは、Passboltの新しい仮想ホスト構成を作成してNginx Webサーバーを構成し、PHP-FPMを構成してPHPGnuPGサポートをインストールします。
PHP-FPMを構成する
'/etc/php-fpm.d'ディレクトリに移動し、vimエディターを使用してデフォルトのプール構成'www.conf'を編集します。
cd /etc/php-fpm.d/
sudo vim www.conf
デフォルトのユーザーとグループを「nginx」ユーザーに変更します。
user = nginx group = nginx
PHP-FPMをリッスンするポートを以下のようにsockファイルに変更します。
listen = /var/run/php-fpm/php-fpm.sock
以下の行のコメントを解除し、sockファイルのlisten.ownerとlisten.groupを「nginx」に変更します。
listen.owner = nginx listen.group = nginx listen.mode = 0660
保存して終了します。
次に、PHPセッションディレクトリの所有者を変更し、PHPGnuPG拡張サポートをインストールする必要があります。
phpセッションディレクトリの権限を変更します。
sudo chgrp nginx /var/lib/php/session
peclコマンドを使用してPHPGnuPG拡張機能をインストールし、アクティブ化します。
sudo pecl install gnupg
echo "extension=gnupg.so" > /etc/php.d/gnupg.ini
PHPGnuPG拡張機能がインストールされました。
Nginx仮想ホストを構成する
'/etc/nginx/conf.d'ディレクトリに移動し、新しい仮想ホストファイル'passbolt.conf'を作成します。
cd /etc/nginx/conf.d/
sudo vim passbolt.conf
以下に構成を貼り付けます。
server {
listen 443;
server_name passbolt.hakase.io;
ssl on;
ssl_certificate /etc/letsencrypt/live/passbolt.hakase.io/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/passbolt.hakase.io/privkey.pem;
ssl_protocols TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS;
ssl_session_tickets off;
root /var/www/passbolt;
location / {
try_files $uri $uri/ /index.php?$args;
index index.php;
}
location ~ \.php$ {
fastcgi_index index.php;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(.+)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SERVER_NAME $http_host;
}
location ~* \.(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構成をテストし、エラーがないことを確認します。
sudo nginx -t
次に、NginxサービスとPHP-FPMサービスの両方を再起動します。
sudo systemctl restart nginx
sudo systemctl restart php-fpm
NginxWebサーバーとPHP-FPMの構成が正常に完了しました。
このステップでは、passbolt Webアプリケーションをダウンロードし、PassboltAPIに使用される新しいOpenPGPキーを生成します。
'/ var / www'ディレクトリに移動し、passboltWebアプリケーションのクローンを作成します。
cd /var/www/
git clone https://github.com/passbolt/passbolt_api.git passbolt/
次に、「haveged」パッケージをインストールして、サービスを開始します。
sudo yum -y install haveged
sudo systemctl start haveged
以下のgpgコマンドを使用して新しいOpenPGPキーを生成します。
gpg --gen-key
メールアドレス、有効期限などの詳細を入力します。
注:
- PHP GnuPG拡張機能はOpenPGPキーパスフレーズをサポートしていないため、パスフレーズは空白のままにします。
完了したら、使用可能なすべてのキーを確認し、キーの「指紋」を書き留めます。
gpg --list-keys --fingerprint
次に、公開鍵と秘密鍵を「/ var / www/passbolt」ディレクトリにエクスポートします。
gpg --armor --export-secret-keys [email protected] > /var/www/passbolt/config/gpg/serverkey_private.asc
gpg --armor --export [email protected] > /var/www/passbolt/config/gpg/serverkey.asc
そして、これらすべてのキーの権限と「/ var / www/passbolt」ディレクトリの所有者を変更します。
sudo chmod 640 /var/www/passbolt/config/gpg/serverkey*
sudo chown -R nginx:nginx /var/www/passbolt
Passbolt Webアプリケーションがダウンロードされ、OpenPGPキーが作成されました。
'Passbolt'のすべての依存関係をインストールする前に、nginxユーザーのgpgキーのキーリングを初期化する必要があります。
以下のコマンドを実行します。
sudo su -s /bin/bash -c "gpg --list-keys" nginx
次に、「nginx」ユーザーにログインし、「/ var / www/passbolt」ディレクトリに移動します。
su -s /bin/bash nginx
cd /var/www/passbolt/
以下のcomposerコマンドを使用して、すべてのパスボルト依存関係をインストールします。
composer install --no-dev
完了したら、アプリのデフォルトの構成ファイルをコピーして、vimで編集します。
cp config/passbolt.default.php config/passbolt.php
vim config/passbolt.php
[アプリ]セクションで、ドメイン名を独自のドメイン名に変更します。
'App' => [
// A base URL to use for absolute links.
// The url where the passbolt instance will be reachable to your end users.
// This information is need to render images in emails for example
'fullBaseUrl' => 'https://passbolt.hakase.io',
],などの電子メールで画像をレンダリングするために必要です。 「データソース」構成で、詳細データベース情報を入力します。
// Database configuration.
'Datasources' => [
'default' => [
'host' => 'localhost',
//'port' => 'non_standard_port_number',
'username' => 'passbolt',
'password' => 'hakase-labs',
'database' => 'passbolt',
],
], データベース構成の下に、新しい「ssl」構成を追加して、すべての接続を安全なhttpsに強制します。
'ssl' => [
'force' => true,
], SMTPメール構成の場合は、すべてを詳細に変更します。
// Email configuration.
'EmailTransport' => [
'default' => [
'host' => 'localhost',
'port' => 25,
'username' => 'user',
'password' => 'secret',
// Is this a secure connection? true if yes, null if no.
'tls' => null,
//'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',
],
], 最後に、OpenPGPキーの「フィンガープリント」を貼り付けて、これらのパブリックおよびプライベート構成行のコメントを解除します。
'serverKey' => [
// Server private key fingerprint.
'fingerprint' => '63BA4EBB65126A6BE334075DD210E985E2ED02E5',
'public' => CONFIG . 'gpg' . DS . 'serverkey.asc',
'private' => CONFIG . 'gpg' . DS . 'serverkey_private.asc',
], 保存して終了します。
次に、以下のコマンドを使用して「Passbolt」をインストールします。
./bin/cake passbolt install
新しい管理者ユーザーとパスワードを作成するように求められます。詳細を入力してください。
そして最後に、「登録」リンクが表示され、メモに書き留めます。
Webブラウザーを開き、Webブラウザーの「Passbolt」拡張機能をインストールします。
以下は、Chromeブラウザのパスボルト拡張機能のリンクです。拡張機能をインストールします。
https://chrome.google.com/webstore/detail/passbolt-extension
次に、新しいタブを開き、アドレスバーに表示された「登録」リンクを貼り付けます。私のは:
https://passbolt.hakase.io/setup/install/b830cc87-1aa5-4f6f-95f4-9be21accdefa/103001a4-39a1-4bb9-866c-822ac0f7c76f
そして、以下に示すようなページになります。
下部のチェックボックスをオンにして、[次へ]ボタンをクリックします。次に、ユーザーの新しいキーを作成するように求められます。
[次へ]ボタンをクリックします。
「パスフレーズ」を設定し、強力なパスフレーズを入力します。
「次へ」ボタンをクリックします。 [ダウンロード]ボタンを押してキーをバックアップし、もう一度[次へ]をクリックします。
セキュリティトークンについては、デフォルトのままにして、[次へ]をクリックします。
そして、Passboltログインページにリダイレクトされます。
「パスワード」と入力し、「ログイン」をクリックします。そして、以下のようにPassboltユーザーダッシュボードが表示されます。
CentOS7へのPassboltオープンソースパスワードマネージャーのインストールが正常に完了しました。
-Firewalldをセットアップする
サーバーで新しいHTTP、HTTPS、およびSMTPポートを開きます。
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-service=https --permanent
sudo firewall-cmd --add-service=smtp --permanent
次に、firewalld構成をリロードします。
sudo firewall-cmd --reload
-Selinuxパーミッションのセットアップ
'Passbolt'webrootディレクトリの権限。
sudo semanage fcontext -a -t httpd_sys_content_t '/var/www(/.*)?'
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/passbolt/tmp(/.*)?'
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/passbolt/logs(/.*)?'
sudo restorecon -Rv /var/www
Nginxgnupgキーリングディレクトリの権限。
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/lib/nginx/.gnupg(/.*)?'
sudo restorecon -Rv /var/lib/nginx/.gnupg