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