Raspberry Pi 4Bの初期設定(ssh/ファイアウォール/HDDマウント)

数年前に購入したRaspberry Piを真面目に運用しようかと思い立ち改めて初期設定をしていた際に少し詰まったため、手順をメモとして残します。普段は解説記事等を参考にさせていただくことが多いですが、最終的には公式ドキュメントしか勝たん、と思う機会も多いです。

OSのインストール

まず、micro SDカードにOSを入れます。Raspberry Pi Imagerをお手元のパソコンにダウンロードし、指示にしたがって進めていくと、micro SDカードにOSをインストールすることができます。OSインストール時にWi-Fiの設定やSSH接続の有無、公開鍵の登録などをまとめて行うことができます。便利ですね。今回はGUIを使う予定がないため、Raspberry Pi OS Lite (64-bit)をインストールしました。

SSH設定の変更

こちらのサイトを参考にしました。

Raspberry Piに公開鍵を登録する

(OSインストール時に設定した場合は不要です)

  1. ssh接続もとのパソコン(ノートPCなど)で秘密鍵・公開鍵を生成する
    例えばssh-keygen -t ed25519 -f ~/.ssh/id_ed25519など
  2. 生成した公開鍵(~/.ssh/id_ed25519.pubなど)をRaspberry Piに転送する
    scp -P 22 ~/.ssh/id_ed25519.pub <raspberrypi-username>@raspberrypi.local:~/
  3. Raspberry Piのホームディレクトリ(/home/<raspberrypi-username>)に.sshディレクトリを作成する
  4. .sshディレクトリの権限を700に変更する(chmod 700 /home/<raspberrypi-username>/.ssh
  5. 公開鍵id_ed25519.pub/home/<raspberrypi-username>/.ssh/authorized_keysに登録する
    cat id_ed25519.pub >> /home/<raspberrypi-username>/.ssh/authorized_keys
  6. /home/<raspberrypi-username>/.ssh/authorized_keysの権限を600に変更する
    chmod 600 /home/<raspberrypi-username>/.ssh/authorized_keys

SSH設定の変更

セキュリティ上の理由で、以下のようにssh接続の設定を変更する必要があります。

  • rootでのログインを禁止
  • パスワードを用いたログイン(認証)を禁止し、公開鍵認証のみ許可する
  • sshに用いるポート番号を変更する
  1. sudo nano /etc/ssh/sshd_configsshd_configファイルを開く(エディタはnanoでなくても良い)
  2. PermitRootLoginnoにする(rootでのログインを禁止)
  3. PasswordAuthentification, PermitEmptyPasswordsnoにする(パスワード認証を禁止)
  4. PubkeyAuthentificationyesに、AuthorizedKeyFile.ssh/authorized_keysに設定する(公開鍵認証を許可)
  5. Portを任意の数字(49152~65535のどれか)に設定する(ssh接続に用いるポートを変更)
  6. ssh設定の変更を反映させる(sudo /etc/init.d/ssh restart

ファイアウォールの設定

ufwを用いてファイアウォールを設定します。

  1. ufwをインストールする(sudo apt install ufw
  2. ファイアウォールの状態を確認する(sudo ufw status
  3. 全ポートのアクセスを拒否する(sudo ufw default deny
  4. 必要なポートへのアクセスを許可する(sudo ufw allow <port number>
    VNC: 5900/tcp
    ssh: 設定したPortの値/tcp
    インターネット通信の標準: 80/tcp
    SSL通信の標準ポート: 443/tcp
    NTPサーバー時刻同期に使うポート: 123/udp
  5. ファイアウォールを有効化する(sudo ufw enable
  6. 再起動して設定を反映させる(sudo reboot

外付けHDDのマウント

今回一番詰まったのはHDDの自動マウントです。/etc/fstabをいじって再起動したらOSが起動しなくなりました。(類似事例)ひとまず手動マウントから手順を説明します。

HDD(USB接続できる外部ストレージ)の手動マウント

  1. Raspberry Piが認識している外部ストレージ一覧を取得する
    sudo fdisk -lを実行すると、接続されているストレージ情報が、Device      Start        End    Sectors   Size Typeの順番で表示されます。私の場合は/dev/sda2がマウントしたいHDDでした。
  2. (HDDがフォーマット前の場合)HDDを<format type>でフォーマットする
    sudo mkfs -t <format type> /dev/sda2
    Raspberry Pi OSがデフォルトでサポートしていないファイルシステム(exFATやNTFS)でフォーマットする場合は、対応するドライバをインストールする必要があります。
    exFAT: sudo apt install exfat-fuse
    NTFS: sudo apt install nfts-3g
  3. マウント先のディレクトリを作成する
    例えばsudo mkdir /mnt/dataなどでディレクトリを作成したのち、権限を777に変更(sudo chmod 777 /mnt/data)する
  4. マウントする
    sudo mount -t exfat -o rw /dev/sda2 /mnt/data/

Raspberry Pi起動時に自動マウントされるよう設定する

/etc/fstabを編集します。正しく設定できていないとOSが起動しない場合があるので注意。

  1. sudo blkidを実行してディスクパーティションの情報(特にUUIDfstype)を取得する
  2. sudo nano /etc/fstabを実行してファイルを開く
  3. /etc/fstabUUID=xxxx-xxxx /mnt/data <fstype> defaults,auto,users,rw,nofail 0 0を追加する。UUID=xxxx-xxxxにはステップ1で調べたUUIDの値を入れてください。
  4. 正しく設定できているか確認
    sudo umount /mnt/dataでマウントを解除したのち、sudo mount -aを実行することで正しく設定できているか確かめることができます。このコマンドを実行して何らかのエラーが発生した場合、再起動した際にOSが起動しない可能性が高いです。公式ドキュメント等を参考に、間違いがないか見直しましょう。
  5. 正しくマウントできたら、書き込み・読み込みが正常に行えるか確認
    mkdir /mnt/data/test等のコマンドが実行できればよし。

マウントしたディレクトリにフォルダを作成できない場合

/mnt/dataの所有者をrootから/mnt/dataにアクセスしたいユーザーやそのユーザーが所属するグループに変更する必要があります。このサイトで紹介されているように、chownコマンドを用いるもあります。

chownコマンドでうまくいかない場合は、/etc/fstabの内容を見直すことになります。解決策として、こちらのサイトで記述されているようにmountオプションにuidgidを追加することでうまくいく可能性があります。オプションの追加によって、マウントしたディレクトリ/mnt/dataの所有者がrootでなく、オプションで指定したユーザー・グループになることが期待されます。

ユーザーidやグループidはidコマンドで確認できます。グループについてはgroupsコマンドやcat /etc/groupでも確認することができます。

この記事は役に立ちましたか?

もし参考になりましたら、下記のボタンで教えてください。

関連記事

コメント

この記事へのコメントはありません。

CAPTCHA