Raspberry Pi セットアップ

Raspberry PiをSSHで運用する際のセットアップ方法

 

Raspberry Pi の公式OSはRaspberry Pi OS(以前はRaspbianと呼ばれていました)

SSHで運用するのでLite版を使います。

目次

OSイメージをmicroSDカードへ書き込む

Raspberry Pi Imagerで書き込む

書き込む方法は、いくつかありますがRaspberry Pi Imagerの方法がおすすめなのでRaspberry Pi Imager使います。

Raspberry Pi OSのサイトからRaspberry Pi Imagerをダウンロードしインストール。

Raspberry Pi OS(Other)からLite版を選択。

他にUbuntuなども選べます。

右下の歯車からOSの事前設定

    • ホスト名(ルーターなど他の機器から見た際の名前)
    • SSHを有効化(パスワード認証で良い)
    • ユーザーとパスワードの設定
    • Wifiの設定 (Wifiを使う国 JP)
    • ロケール設定 (Asia/Tokyo キーボードレイアウト JP)

microSDカードへ書き込めるソフトを使い書き込む方法

microSDカードへ書き込めるソフトを使う

書き込みソフト

  • balenaEtcher
  • Rufus
  • Win32 Disk Imager

SSHを有効にする

初期状態ではSSHが無効になっているのでSSHを有効にするためにbootボリュームの直下にWindowsなどで、ファイル名「ssh」のファイルを作成する。

wpa_supplicant.conf ファイルを作成

SSHで操作するためには、ネットーワークに繋がっている必要があるため、WiFiを使う場合は、WiFiの設定をあらかじめ設定する。

ファイル名「wpa_supplicant.conf」のファイルを作成しWiFiの設定をする。

wpa_supplicant.conf
country=JP
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="yourwifi_ssid"
psk="wifipassword"
}

あとからWiFiネットワークを追加、変更する時は下記のコマンドで編集できます。

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

SSHクライアント

SSHで操作するためには、SSHクライアントが必要ですが、コマンドプロンプト、PowerShellでも良いので、(Windowsの左下スタートメニューを右クリックから選べます)好きなSSHクライアント選べば良いです。Windows Terminalがおすすめ。

Raspberry Piのデフォルト設定

この項目は古いので次の項目に進んでください。
Raspbianにログインする初期のユーザー、パスワードは下記

  • ユーザー:pi
  • パスワード:raspberry

パスワードは最初に変える

SSHクライアントからのログイン方法

-p がポート番号

ssh ユーザー名@Raspberry Piのアドレス -p ポート番号

ssh [email protected] -p 22

電源

電源をオフ、再起動するコマンド。

電源をオフにする

sudo shutdown -h now
# or
sudo halt

再起動

sudo reboot

言語設定

この項目は古いので次の項目に進んでください。

言語、タイムゾーンが日本になっていないので日本設定にする。

sudo raspi-config

4 Localisation Options

Change Locale

スペースキーで項目を選択する。Tabキーでokに移動。

  • ja_JP.EUC-JP EUC-JP
  • ja_JP.UTF-8 UTF-8
  • en_US.UTF-8 UTF-8

Change Timezone

タイムゾーン

tokyo

ユーザーの設定

この項目は古いので次の項目に進んでください。
初期ユーザーのpiを変更、新しいユーザーを追加する。

いずれか選ぶ

  • 新しいユーザーを追加してpiユーザーを無効(推奨)
  • pi ユーザー名とパスワードを変更
  • pi ユーザーのパスワードを変更

新しいユーザーを追加する

新しいユーザー(alice)を追加するには、次のコマンドを入力

sudo adduser alice

新しいユーザーのホームディレクトリが作られる

/home/alice/
新しいユーザー(alice)に pi ユーザー相当の権限を与える
sudo usermod -a -G adm,dialout,cdrom,sudo,audio,video,plugdev,games,users,input,netdev,gpio,i2c,spi alice

新しいユーザーが動作していることを確認

sudo su - alice

piユーザーを無効、削除する

この項目は古いので次の項目に進んでください。

piユーザーを無効化

# sudoグループから削除
sudo gpasswd -d pi sudo

#sudo権限を無効化
sudo nano /etc/sudoers.d/010_pi-nopasswd
#pi ALL=(ALL) NOPASSWD: ALL
alice ALL=(ALL) PASSWD: ALL
sudo passwd pi

piユーザーを削除する

sudo deluser pi
sudo userdel -r pi

### sudoにパスワードを要求させる

強制的にsudoパスワードを要求するように、次のコマンドを入力

</del>
<del>sudo nano /etc/sudoers.d/010_pi-nopasswd</del>
<del>

ユーザー(またはスーパーユーザー権限を持つユーザー)を次のように変更。

“`alice ALL=(ALL) PASSWD: ALL

root ユーザーについて

デフォルトでは root にパスワードが設定されていなければログインも su も出来ないようになっている。suは、Switch Userの略

デフォルトでroot にパスワードは設定されていないので、そのままパスワードを設定しない。

更新

ファームウェアの更新(任意)不要

https://www.raspberrypi.org/documentation/raspbian/applications/rpi-update.md

sudo apt-get install rpi-update
sudo rpi-update
sudo reboot

パッケージの更新

sudo apt-get update
sudo apt-get upgrade
# or
sudo apt-get dist-upgrade

下記のコマンドがおすすめ

sudo apt-get update && sudo apt-get upgrade -y

(未完成) 設定

sudo raspi-config

セキュリティ設定

https://www.raspberrypi.org/documentation/configuration/security.md

未完成 SSHのセキュリティを改善

SSHの初期22ポートは攻撃対象なのでポート番号を変更する

sshの待ち受けポート番号変更

sudo nano /etc/ssh/sshd_config
sudo nano /etc/ssh/sshd_config
systemctl restart ssh
or
# Terminalからのログイン方法
# -p がポート番号
ssh [email protected] -p 22

SSH鍵生成

鍵ペア認証を使用

Tera TermでSSH鍵生成

公開鍵と秘密鍵の作り方

Tera TermのSCP機能を利用

最初のTera Term新しい接続ウインドウを閉じ、Tera Termのメニューから設定 &gt; SSH鍵生成を選ぶ。

秘密鍵
id_rsa

公開鍵
id_rsa.pub

~/.ssh/id_rsa.pub
mkdir .ssh
cd ~sudo mkdir .sshcat id_rsa.pub >> .ssh/authorized_keyssudo chmod 700 .sshsudo chmod 600 .ssh/authorized_keysrm id_rsa.pub
sudo nano /etc/ssh/sshd_config

ファイアウォールをインストール

UFW

sudo apt install ufw

UFWの設定

UFWを有効にする前に、SSHが使用しているポートのアクセスを許可する

sudo ufw allow ssh

特定のポート(22)のアクセスを許可

sudo ufw allow 22

UFWの現在の設定

sudo ufw status

UFWを有効にする

sudo ufw enable

UFWを無効にする

sudo ufw disable

指定できるアプリケーションを見る

sudo ufw app list

設定を削除

sudo ufw status numberedsudo ufw delete 番号

fail2ban

sudo apt install fail2ban

設定ファイル(jail.conf)をコピーしてjail.localを使う。

jail.local
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.localsudo nano /etc/fail2ban/jail.local
[ssh]enabled = trueport = sshfilter = sshdlogpath = /var/log/auth.logmaxretry = 6

指定したJAILルールのステータスとBAN状況を表示

sudo fail2ban-client status sshd

Fail2banのステータスを表示

sudo fail2ban-client status

Fail2ban再起動

sudo systemctl restart fail2ban

対象のIPからのパケットを REJECT(拒否)ではなくDROP(破棄) する。

sudo nano /etc/fail2ban/action.d/iptables-common.conf
blocktype = DROP
systemctl start fail2bansystemctl stop fail2ban

コメントを残す