はじめに
今回はラズパイでサーバ構築をしてみた備忘録です
この記事ではOSや各種アプリのインストール、SSH接続の設定手順を載せています
使用したのはこちらです
さすがに基盤むき出しで置いとくわけにもいかないので、ケースも用意しました
起動してみる
まずは起動してみます
電源:USB
映像出力:mirco HDMI
ですがOSを入れていないのでこれ以上画面は変わりません。
なので次はOSを入れていきます
OSのインストール
Raspberry Pi ImagerというソフトからOSをmicroSDカードへ書き込みます
ソフトを起動したらデバイス、OS、ストレージを選択してきます。
今回は以下を選択しました。
デバイス:Raspberry Pi 5
OS:Raspberry Pi OS (64-bit)
ストレージ:microSDカードを選択
次へを押すと、設定の確認ウィンドウが出てくるので設定を編集します。
とりあえずユーザ名、パスワード、ロケール設定を追加しました。
microSDカードのデータが削除される警告が表示されるのではいを選択
書き込みが完了しました!ではこのSDカードを差してもう一度起動してみます。
初期設定
OSが起動してデスクトップがでてきたら、まずは日本語化しようと思います。
Raspberry Pi Configuration > Localisationから設定を変更していきます
Language:ja (Japanese)
Country:JP (Japan)
Character Set:UTF-8
・・・とここでスクリーンショットを撮影しようとしたところ、真っ黒の画像が撮影されてしまったので、次にスクリーンショットの設定をしていこうと思います。
撮影には「scrot」コマンドを使用していましたが、どうやらRaspberry Pi 5ではウィンドウマネージャーがWaylandを使用している影響で画面が黒くなってしまうようです。
なので、今回は別のソフトをインストールしようと思います。
インストールするのは「gnome-screenshot」です。以下コマンドでインストールします。
$ sudo apt install gnome-screenshot
インストールしたので実行したところなぜか撮影できないエラー、、、
ターミナルで実行すると「Unable to use GNOME Shell's builtin screenshot interface, resorting to fallback X11」とのこと
色々調べましたが、最終的にはX11に切り替えることで対応できました。。
手順はこちらが参考になりました。
各種インストール・設定
次にサーバーとして使うために諸々設定をしていきます。
Apacheインストール
sudo apt install apache2
インストールできたか確認
sudo systemctl status apache2
動作していることが確認できたら、ブラウザでアクセスしてみる
IPアドレスを確認して192.168.xxx.xxxのIPアドレスをブラウザで入力
hostname -I
rootパスワード変更
$ sudo passwd root
このコマンドを実行した後に新しいパスワードを入力して設定します
ファイアウォール設定
まずはファイアウォールをインストールします
$ sudo apt install ufw
インストールできたか確認
$ sudo ufw status
以下の出力になっていればOK
Status: inactive
すべての接続を拒否する設定
$ sudo ufw default deny
一旦ローカルからの接続のみ許可するので、以下コマンドを実行
$ sudo ufw allow from 192.168.xxx.0/24 to any port 22
$ sudo ufw allow from 192.168.xxx.0/24 to any port 80
設定したら、ファイアウォールを有効化
sudo ufw enable
設定が2行出力されていればOK
To Action From
-- ------ ----
22 ALLOW 192.168.xxx.0/24
80 ALLOW 192.168.xxx.0/24
ネットワーク内の他のブラウザからアクセスしてみる
ブラウザで192.168.xxx.xxxにアクセスすると、以下の画面が表示できました。
SSH接続の設定
SSHの有効化
以下コマンドで設定画面を開いて設定を進める
sudo raspi-config
公開鍵認証にする
まず接続元のPCで以下コマンドを入力(今回はwindows環境で実施)
$ ssh-keygen -t rsa -b 4096
C:\Users\ユーザ名.ssh配下にid_rsaとid_rsa.pubが作成される
作成できたらscpコマンドでラズパイにファイルを送信
$ cd <.sshフォルダのパス>
$ ./id_rsa.pub <ラズパイのユーザ名>@<ラズパイのIPアドレス>:~/
※パスワードが要求されるので、OS書き込み時に設定したパスワードを入力
ファイルが送信できたら、ラズパイ側で以下コマンドを入力して公開鍵を登録する
$ cd ~
$ mkdir .ssh
$ cat id_rsa.pub >> .ssh/authorized_keys
$ chmod 700 .ssh
$ chmod 600 .ssh/authorized_keys
設定ファイルを修正して公開鍵認証を有効化
$ sudo vi /etc/ssh/sshd_config
以下の行のコメントアウトを削除
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2
最後に再起動
$ sudo shutdown -r now
これで設定完了!
TeraTermで接続できるか確認
今回はここまで
次回はサーバ上にアプリを配置するところまでやってみたいと思います。
ここまでできたら色々なことができそうなので、何をするか悩みますね。。。