Orange PIでPassboltを動かそう企画

passbolt 導入ガイド その他
スポンサーリンク

はじめに

Orange PIでPassboltを動かそう企画という事で……

って、これが、中々動かないんだ
何度か試して動くには動くが、インストール手順が確立できなくって、動く時もあれば、動かない時もある…
何度も何度も繰り返して
いろいろと試すなか、やっと導入手順が確立できたのであった!

この通りにやれば動くハズです

準備

まずは、Orange PI に ubuntu を入れていきたいと思う
今回のターゲットは 2017年10月に購入した Prange Pi PC2  です。こちらに入れていきたいと思います。
という事なので、ローカルネットワークに環境を作ります!

まずは、OSイメージをダウンロードします
https://drive.google.com/drive/folders/1NluVqvOlKXeGHsRF3tICpzdIdHfPaJaK
Orangepipc2_2.1.2_ubuntu_focal_server_linux5.4.65.7z
今回はOrangepipc2_2.1.2_ubuntu_focal_server_linux5.4.65.7zを利用する事にします。focal_server ってあるので、Ubuntu 20.04 LTS でしょうかね。Desktopは使わないので、serverです。

解凍してイメージファイルをmicroSDカードに書き込みます。
今回は、Rufusを使っています
https://github.com/pbatard/rufus/releases

Rufus
書き込みが終わったら、SDカードを Orange PI 本体に差し込んで、起動します

ユーザー:root
パスワード:orangepi
で、無事にログインする事ができました。めちゃ簡単w

基本的な設定

とりあえず、ターミナルからも接続できると作業も非常に楽であるので、ターミナルから接続しておく
取り急ぎタイムゾーンを変えておくことに

timedatectl set-timezone Asia/Tokyo

お約束のパッケージの更新とアップデートをしておく

apt update && apt upgrade -y

を実行した、こいつが結構時間かかるので覚悟してください(汗
upgradeは途中で聞かれるので、注意する事

そして、固定IPに変更しておきたいので、nmcli connection show コマンドで名称を確認

nmcli connection show
NAME                UUID                                  TYPE      DEVICE
Wired connection 1  6e5af115-6b35-3eb6-b3db-7fa2ff787447  ethernet  eth0

固定IPに設定変更GO!

nmcli connection modify "Wired connection 1" \
ipv4.method manual \
ipv4.addresses 192.168.0.106/24 \
ipv4.gateway 192.168.0.1 \
ipv4.dns "192.168.0.1" \
ipv4.dns-search ""

次に nmcli connection down “Wired connection 1”
と(この時ターミナルから切断される)
nmcli connection up “Wired connection 1”
で有効化するのだが、どのみち切断されるのであれば reboot しちゃうw

reboot

これで指定したIPになって起動してくれるハズである

外も見れるので問題ないでしょうかね

ping www.yahoo.co.jp
PING edge12.g.yimg.jp (124.83.184.124) 56(84) bytes of data.
64 bytes from 124.83.184.124 (124.83.184.124): icmp_seq=1 ttl=55 time=9.13 ms
64 bytes from 124.83.184.124 (124.83.184.124): icmp_seq=2 ttl=55 time=9.87 ms
^C
--- edge12.g.yimg.jp ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 9.134/9.503/9.872/0.369 ms

必要なパッケージ類を準備

次は nginx と MariaDB をインストールしていきましょうか

apt install -y nginx mariadb-server

あと、DBのセキュリティー面について、こいつも流しておきました

mysql_secure_installation

現時点で公式サイトのやり方とは違うのですが、以下のコマンド群でインストールしていく

wget -O- https://download.passbolt.com/pub.key | sudo tee /etc/apt/trusted.gpg.d/passbolt.asc
echo "deb [signed-by=/etc/apt/trusted.gpg.d/passbolt.asc] https://download.passbolt.com/ce/ubuntu focal stable" | sudo tee /etc/apt/sources.list.d/passbolt.list

いよいよpassboltのインストール

いったんアップデートして、passbolt-ce-server パッケージ をインストールします

apt update
apt install passbolt-ce-server -y

ここでCUI画面が表示されて、回答する必要がある

DBは後で作成するので、No を選択する

次に nginx の設定ですが、ここも画面でも No を選択する

しばらくすると、以下の画面が表示され、インストールが終わる

次は DBを作成していく

mysql -u root -p
CREATE DATABASE passboltdb;
CREATE USER 'passboltadmin'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON passboltdb.* TO 'passboltadmin'@'localhost';
FLUSH PRIVILEGES;
EXIT;

あと、nginx を設定していきますが、この辺りは好みで良いですがw
以下のようにしてみました

cd /etc/nginx/sites-enabled
rm default
rm nginx-passbolt.conf

シンボリックリンクを貼って

ln -s /etc/nginx/sites-available/nginx-passbolt.conf nginx-passbolt.conf

いったん、以下のように修正

vi nginx-passbolt.conf
------------------------------
	:
  server_name 192.168.0.106;
	:
    fastcgi_pass             unix:/run/php/php7.4-fpm.sock;
------------------------------

そしてnginxを再起動

systemctl restart nginx

passboltの設定

次はブラウザからの設定なので、http://192.168.0.106/ へアクセスする
SSLの設定していないですが、以下のような画面が表示されれはOKです。設定に進めます。

全部で7つの工程があります
1. System check
2. Database
3. Server keys
4. Options
5. Emails
6. First user
7. Installation
8. That’s it!

最初に System check が走ります、PHPのバージョンやSSLの部分でワーニングになりますが、問題ないでしょうw

次は Database の設定です、先ほど作成したデータベースの情報を入れてあげましょう

Server keys はインポートができるようになっています。別で稼働しているPassbolt Serverから持ってこれるハズです。今度試してみます。

サーバー名とSSLかどうかの設定です、ここは後から設定ファイルでも変更ができる

メールの設定です、今回は外部のメールサーバーを指定しています

アカウントの登録、これは管理者になるのかな

で、設定が始まりまして、以下の画面になります

ただ、私の環境では 7. Installation が一向に終わらない
なので、テーブルの件数を見て以下のような感じだったらOKです(多分)

mysql -u root -p
SELECT table_name AS 'Table Name', table_rows AS 'Number of Rows'
FROM information_schema.tables
WHERE table_schema = 'passboltdb';

+---------------------------+----------------+
| Table Name                | Number of Rows |
+---------------------------+----------------+
| resources                 |              0 |
| permissions               |              0 |
| rbacs                     |             20 |
| phinxlog                  |             97 |
| ui_actions                |             20 |
| resource_types            |              4 |
| profiles                  |              1 |
| folders_relations_history |              0 |
| folders                   |              0 |
| email_queue               |              0 |
| secrets_history           |              0 |
| entities_history          |              0 |
| account_settings          |              0 |
| users                     |              1 |
| roles                     |              3 |
| groups                    |              0 |
| permissions_history       |              0 |
| transfers                 |              0 |
| folders_history           |              0 |
| favorites                 |              0 |
| organization_settings     |              1 |
| actions                   |              0 |
| secrets                   |              0 |
| comments                  |              0 |
| authentication_tokens     |              1 |
| secret_accesses           |              0 |
| folders_relations         |              0 |
| groups_users              |              0 |
| avatars                   |              0 |
| action_logs               |              3 |
| gpgkeys                   |              0 |
+---------------------------+----------------+
31 rows in set (0.006 sec)

で、おそらくですが、
/var/log/passbolt/cli-error.log にエラーが1分間隔で吐かれているハズ

2024-10-27 10:00:02 error: [PDOException] SQLSTATE[42S22]: Column not found: 1054 Unknown column 'EmailQueue.to' in 'field list' in /usr/share/php/passbolt/vendor/cakephp/cakephp/src/Database/Statement/MysqlStatement.php on line 39
2024-10-27 10:01:02 error: [PDOException] SQLSTATE[42S22]: Column not found: 1054 Unknown column 'EmailQueue.to' in 'field list' in /usr/share/php/passbolt/vendor/cakephp/cakephp/src/Database/Statement/MysqlStatement.php on line 39
2024-10-27 10:02:01 error: [PDOException] SQLSTATE[42S22]: Column not found: 1054 Unknown column 'EmailQueue.to' in 'field list' in /usr/share/php/passbolt/vendor/cakephp/cakephp/src/Database/Statement/MysqlStatement.php on line 39

そんな時は、キャッシュをクリアすると治まる

cd /usr/share/php/passbolt/
sudo -u www-data ./bin/cake cache clear_all

このあと、再度ブラウザにて、 http://192.168.0.106 へアクセスして進めるわけだが
先に Passboltのプラグインをブラウザに入れておく
passbolt 拡張機能の追加

そして http://192.168.0.106 へアクセスして、メールアドレスを入力して先に進めるのだが、メールが一向に届かない現象が発生する(場合がある)。このキャッシュをクリアすると、正しくメールが送信された!!
何度かやってみたが、このキャッシュクリアする事で 100% メールが届いたのだ

先に設定したメールアドレスを入力して次へ進めると
passbolt 設定完了
メールが届くので、メール内にあるリンクをクリックする

passbolt パスフレーズ入力
パスフレーズを入力します。こちらも忘れないように!

passbolt リカバリーキットDL
リカバリキット(passbolt-recovery-kit.txt)がダウンロードされますので、大切に保管しましょう!

passbolt セキュリティートークン設定
最後にセキュリティートークンを設定します。これは、passbolt ログイン時に使用するので、忘れないで覚えておきましょう

passbolt 無事に完了
これで、設定も完了です!

おわりに

セットアップ中にメールの設定が合っているのに届かない場合は、キャッシュクリアする事をお勧めします!

cd /usr/share/php/passbolt/
sudo -u www-data ./bin/cake cache clear_all

これ発見するまで、かなり苦労した(汗

次回はスマホのpassboltアプリから使えるように設定を追加していきたい

コメント