2021年6月30日水曜日

おひとり様Misskey鯖をラズパイ4で構築する《10》

 今回はCloudFlareの設定から始めていきます。

「サイトを入力してください」のところで取得したドメインを入力して、次の画面で左上に表示された自分のドメインをクリックし、料金プランを選択(今回は無料プラン)する。

DNSレコードについて調査した結果、IPv6の場合はタイプをAAAAに設定し、名前はドメインの上に来るモノ(今回のケースではMisskey鯖の名前になるもの)、アドレスには自分のグローバルIPアドレスを入力すれば良さそうです。

この記事によると、AAAAレコードを作っておけば自動的にIPv4にも変換してくれるみたいですね。


Cloudflareからメールが来てアクティブになったとのこと。
最大48時間掛かる更新がもう終わったと解釈していいのかな?

とりあえず他の設定を進めることにする。

ラズパイにCertbot(Let's Encrypt)の設定。
certbotとCloudFlareプラグインをインストールします。

CloudFlareの情報を記載した設定ファイル/etc/cloudflare/cloudflare.iniを作成します。

dns_cloudflare_emailにはCloudflareに登録しているメールアドレスを入力します。
dns_cloudflare_api_keyには・・・

1.Cloudflareのサイトにログイン
2.ダッシュボードの概要欄の右下にある「APIトークンを取得」をクリック。
3.APIトークンタブの中にあるGlobal API Keyを表示する。
4.Cloudflareのパスワードを入力し、reCAPTCHAを解除し表示する。

これで表示されたAPI Keyをコピペします。

cloudflare.iniを保存して終了します。
パーミッションを600に設定します。


上記のコマンドを入力します。example.tldは自分のドメインに変更します。

メールアドレスの入力を求められたので入力。
コマンドを入力して1,2分待つと上記のようなメッセージが表示されるので「A」を入力してエンター。
その後、上記のようなメッセージが表示されたので「Y」を入力したけど、落ち着いて翻訳してみたら「キャンペーンなどのメールを送っても良いか?」という内容だったので「N」でも良かったかも。

そのあと、IMPOTANT NOTESというメッセージが表示され、「Congratulations!」とあれば成功です。
.pemのファイルが生成されるので、後で使うようなのでパスを保存しておくこと。

cronの設定はインストールと同時に設定されているので不要とのことです。

今回はここまで。
次回からいよいよMisskeyのインストールに入ります。

2021年6月26日土曜日

おひとり様Misskey鯖をラズパイ4で構築する《9》

 前回の記事ではGitをインストールしたところまで書きました。

次はファイアウォールの設定。

ufwというファイアウォールをインストールします。

インストール後にファイアウォールの設定。

sudo ufw statusで設定の確認。


ポート番号制限したらVNC繋がらなくならないのかな、と思ってrebootしたら案の定繋がらなくなりました・・・。

SSHは参考記事の通り制限付きで開放していたので繋がりました。

VNCのポート番号を開放するか、もしくは変更するか。

VNCサーバ側(ラズパイ側)ではVNCのポート番号は変更できたのですが、VNC Viewer側でポート番号が変更出来ないっぽいので、VNCのポートをlimitで開放することにします。

ufwのポートを設定し直してreboot

VNCが繋がることを確認。

ファイアウォールの設定はここまで。

次の記事はCloudFlareの設定から始めます。

おひとり様Misskey鯖をラズパイ4で構築する《8》

 今回の記事からいよいよMisskey鯖構築を始めていきます。

こちらの記事を参考に進めて行きます。

環境と条件という所で「独自のドメイン購入」とあるので、Google Domainsで良さげなドメインを取得しました。

セキュリティ的にも怖いのでまだドメイン名は公開しないでおきます。

手始めにNode.jsをインストールします。

上記の記事にあるようにコマンドを叩くと「権限が無い」と怒られてしまうので、各コマンドの先頭にsudoを付けたら上手くいきました。

Node.jsがインストール出来ました。

次にPostgreSQLをインストールします。

インストールが完了しActiveであることを確認。

psqlを起動し、ユーザ名とパスワード、データベース名を設定。
psqlを抜ける。

次にRedisをインストールします。

デーモンの状態もOK。

次にnginxをインストールします。

デーモンの状態もOK。
ラズパイのブラウザを開いて、http://localhostと入力する。

この画面になったのでOK。

次にGitとbuild-essentialをインストールします。
インストール完了しました。

この先は次の記事で。

2021年6月12日土曜日

おひとり様Misskey鯖をラズパイ4で構築する《7》

 前回はpiユーザを削除し、新たなユーザに環境を構築し、公開鍵認証の設定までを終えました。

次なる目標はSSDブートかな。

まずブートローダーのバージョンを確認します。

vcgencmd bootloader_version

Apr 29 2021 17:11:25となっていたので、多分updateは不要でしょう。

この記事を読んだところ、2020年8月20日版でUSBからのブートが可能になっているようです。

私がラズパイを購入した「ソリノベ研究所」によると、ブートローダーをupdateして文鎮化したケースがあるとのことなので、ブートローダーは出来るだけ触らない方が良さそうです。

それではSSDを繋いでみます。

SSDやケース、USBハブの選び方については《1》に書いたので、そっちをまず読んでください。

SSDをそのままラズパイ4に繋ぐと電力不足に陥る可能性が高いので、給電可能なUSBハブを取り付けます。

SSDを入れるケースを開封したらスポンジが入っていました。

何に使うのかなと思い検索した結果、スポンジを蓋に貼り付けるとケースの中でSSDがガタつかなくなるようです。

ただ私が選んだケースは2.5インチ用でSSDは2.5インチなので、スポンジを貼らなくてもカタつきは無かったので貼らなくても良いかもしれません。

さて、SSDをラズパイに接続したので、USBブートにする前にMicroSDの内容を丸ごとSSDにコピーします。

ドライブを丸ごとコピーする為のソフトがRaspberry Pi OSにはプリインストールされています。「SD Card Copier」です。

VNCでラズパイのデスクトップを開いて、メニュー → アクセサリ → SD Card Copier。


上がMicroSDで下がSSDです。

新しいSSDなのでNew Partition UUIDsにチェックを入れます。

コピー開始です。しばらく掛かります。

コピーが完了したら、起動をUSBブートに変更します。

raspi-configコマンド実行。

6 Advances Options → A6 Boot Orderへ。



この画面に遷移したら、USB Bootを選択。
その後、一旦再起動させます(この時点ではまだMicroSDを抜かない)。これでconfigが適用されます。
再起動後、シャットダウンさせます。
シャットダウン完了後にMicroSDカードをラズパイから抜きます。
MicroSDカードを抜いてから、再びラズパイを立ち上げます。

MicroSDが差さっていない状態でRaspberry Pi OSが立ち上がればSSDブート成功です。

これで鯖構築の作業に移ることが出来ます。

2021年6月7日月曜日

おひとり様Misskey鯖をラズパイ4で構築する《6》

 起動時ユーザを新ユーザに変更するところから再開。

この記事を参考に進めていきます。

秘密鍵と公開鍵を作成します。

「公開鍵認証での接続を確認」までは記事の通り出来ました。

rootでのログインも不可にしました。

ここまでの作業はWinSCPでは上手く行かなかったのでWindows10にプリインストールされているOpenSSHで行っていました。

この記事を参考にOpenSSHを使いました。

公開鍵認証は出来ましたが毎回

ssh [RaspberryPiのユーザ名]@[RaspberryPiのIP] -i [秘密鍵のパス] -p [ポート番号]

という長いコマンドを入力するのは手間なのでconfigファイルを作ります。

これで

ssh [RaspberryPiのユーザ名]

と入力して公開鍵認証のパスワードを入力すればログイン出来ます。

以上で公開鍵認証の設定とroot封印を終了します。

次回はいよいよ鯖構築に入れる・・・かな?

おひとり様Misskey鯖をラズパイ4で構築する《5》

 前回、piユーザのユーザ名を変更しようと奮闘しましたが、上手く行かなかったのでこの記事を参考にpiユーザを削除する方向で進めてみます。

新ユーザを作成してpiユーザから新ユーザにフォルダコピーまで進めました。

しかし、GUI入りのOSで削除しようとすると、起動時に自動でpiユーザにログインしてしまっているので、

ps aux | grep 570

このコマンドでプロセスを確認します。

すると、piユーザのプロセスが起動しているのですが、これが上手くkill出来ませんでした。

一度、rootに切り替えてプロセスを確認するとpiユーザのプロセスが消えました。

それからrebootして、新ユーザ名でログインしてプロセスを確認すると新ユーザのプロセスのみになっていたので改めて・・・

[新ユーザー名]@raspberrypi:~ $ sudo userdel -r pi

userdel: グループ pi には他のメンバーがいるので削除しませんでした

userdel: pi のメールスプール (/var/mail/pi) がありません


でも・・・

$ id -a pi 

id: `pi': no such user

ちゃんと消えてました。

以前の作業で作成した仮ユーザも同じ要領で消しておきました。


一旦、ラズパイの方をSSHではなく、直接見てstartxすると、見事GUIでも起動できました。

piユーザで行った設定の一部が消えているのでやり直します(文字の大きさとか)。


まだ作業は続きますが、とりあえずpiユーザを消せたのでこの記事はここまでとします。

次回は起動時認証ユーザの変更からやっていきます。

2021年6月6日日曜日

おひとり様Misskey鯖をラズパイ4で構築する《4》

 SDカードに上手くOSイメージが書き込めないという状況でしたが、とりあえずラズパイを立ち上げてみることにしました。


ラズパイをヒートシンクケースに入れました。

サーバとして使用するので夜間でもファンの音が気にならないようにするため、ヒートシンクケースを選びました。

初回なので、キーボードやマウスも繋いで起動してみました。

上手くいったようです。

やはりベリファイのみの失敗で書き込み自体は成功しているようですね。


キーボードやマウス、モニタを毎回切り替えていると面倒なのでVNCの設定をします。

この記事を参考に設定していきます。

クライアントはVNC Viewerを使います。



SSHの設定が完了したところで、デフォルトのpiユーザを使い続けることがセキュリティ的に危険だということが判明しました。

piユーザは削除派と変更派が対立しているようです。
私は消してしまうのは怖いと思うので、ユーザ名を変更することにしました。

この記事を参考に作業をしてみます。
piユーザにログインした状態でユーザ名を変更することは出来ないので仮ユーザを作ります。
vimエディタを使ってみたのですが、どうも勝手が分からないのでnanoというエディタを使ってみることにしました。

nanoの使い方はこの記事を参考にしています。
nanoはRaspberry Pi OSにプリインストールされていました。

仮ユーザを作って進めて行き、自動ログイン設定を変更しようとしたのですが、

/etc/systemd/system/getty@tty1.service.d/autologin.conf

このファイルが書き込み禁止になっていて作業が進められなくなりました。

書き込み権限を付与すればいいらしいので、

sudo chmod o+rw /etc/systemd/system/getty@tty1.service.d/autologin.conf

これで書き込み権限を付与し、改めて自動ログイン設定を変更したら成功しました。

rebootすると自動ログインはされないようになっていましたが、仮ユーザでのログインが出来ませんでした。
色々と調べた結果、GUIが使用できないだけで、CUIは使用できるのではという仮説が立ったのでSSHで仮ユーザにログインしてみたところ入れました。

仮ユーザでpiユーザのユーザ名を変更しようとしたら、

「端末 (tty) が存在せず、パスワードを尋ねる (askpass) プログラムが指定されていません」

というエラーメッセージが出てしまいました。

rootでログインして設定するのが早いようなのですが、ラズパイのrootにパスワードを付与すると、外部からrootにログインされてしまう可能性があり危険です。そこで・・・

この記事を参考に仮ユーザをpiユーザと同じグループに入れてみることにしました。

まずpiユーザにSSHで入り、piユーザがどのグループに所属しているのかを調べます。

groups pi

このコマンドで分かります。

pi : pi adm dialout cdrom sudo audio video plugdev games users input netdev spi i2c gpio lpadmin

以上のグループに所属していることが判明したので、仮ユーザも上記のグループに所属させます。

usermodコマンドはカンマ区切りでしか入力出来ないので、

pi,adm,dialout,cdrom,sudo,audio,video,plugdev,games,users,input,netdev,spi,i2c,gpio,lpadmin

上記のように書き換えて入力します。

グループに所属させたのですが、sudoコマンドが使えません・・・

色々調べましたが分かりませんでした。

新規ユーザーを作って、piユーザを無効化するという記事を見つけたのでこれを試してみようと思います。


おひとり様Misskey鯖をラズパイ4で構築する《3》

新しいSDカードリーダが届いたので作業再開。
しかし、MicroSDを直接カードリーダに差しても認識されず、SDカードアダプタに入れてカードリーダに差したところドライブとして認識されました。

しかし、このMicroSDにはRaspberry Pi OS(32bit)が書き込まれているので、フォーマットしなさい!との警告メッセージが出てしまいます。

そこで登場するのがRaspberry Pi Imagerです。
これを使ってMicroSDをとりあえずフォーマットしました。
次にDLした64bit版OSを書き込みたいので、提案されているOSではなく、use customを選択します。
DL済の64bitOSが入っているzipファイルを指定して書き込みます。
何故かベリファイで失敗しました・・・。

こちらの症状と似ています。
上記の記事ではbalena Etcherというソフトが紹介されています。
色々と参考にしているこちらの記事ではApplePiBakerというソフトが紹介されていて、使いやすそうに見えたのですが、ソフト名称からも分かる通りMacOS版のみです。

balena Etcherを試してみましょう。


インストールするとこの画面になります。

また、改めてOSダウンロードサーバを見ていたら2021/5/28に最新バージョンがリリースされていたので、こちらもダウンロードしておきました。

balena EtcherにはSDカードのフォーマット機能が無いようなので、Raspberry pi Imagerでフォーマットしておきました。

しかし・・・


こちらでも失敗。
原因が分かりません・・・。

こちらの記事を参照すると、windowsのセキュリティが強化されたため書き込みが上手くいかなくなっているようです。
上記の記事にもあるように、あくまで失敗しているのはベリファイなので、書き込み自体は成功しているかもしれません。
現状でラズパイ4を起動してみることにします。

ラズパイにMisskey鯖を構築する《まとめ》

 前回まで15回に分けて記事にしてきたラズパイでのMisskey鯖構築方法を簡潔にまとめます。 ・買ったもの Raspberry Pie 4 model B 4GB RAM バージョン RS (OKdo)版 LANケーブル マイクロHDMI → HDMI変換ケーブル 有線マウス ...