Edited at

Raspberry Pi 初回設定(購入 + OSインストール + セキュリティ設定)


概要

RaspberryPi 3 model B+を購入したので備忘録ついでに初期セットアップ方法を記載したいと思います。


準備物

秋葉原に行って購入してきました。

品名
価格
備考

RaspberryPi 3 model B+
5600円

MicroUSB TypeB 電源(5V/3A)
700円

RaspberryPi 3 用ケース
1000円

HDMIケーブル
380円
予備が無かったので

microSD(16GB)
1680円

マウス
-
購入済

キーボード
-
購入済

モニター
-
購入済

OSインストール&初期設定を実施する為の端末
-
購入済


インストール前準備

今回は未インストールのSDカードを購入したので、SDカードにOSインストーラの配置から実施します。


1. OSインストーラ(NOOBS)を取得

RaspberryPi公式からOSを入手。今回はインストーラ型のNOOBSを選択。

https://www.raspberrypi.org/downloads/noobs/

「NOOBS」の方の「Download ZIP」をクリックしてダウンロード。

ダウンロードしたzipを解凍する。

※「NOOBS Lite」の方はネットワークインストール型らしいです。

download.png


2. SDカードのフォーマット&NOOBS配置

SDカードにNOOBSを書き込む前に「SDメモリカードフォーマッター」を取得。

ダウンロードしたzipを解凍してインストーラを起動し、SDメモリカードフォーマッターをインストール。

https://www.sdcard.org/jp/downloads/formatter_4/

インストール後起動し、変更なしで「フォーマット」をクリック。

format.png

フォーマットが完了したら「1.OSインストーラ(NOOBS)を取得」で

取得&解凍したファイルを全てSDカードにコピー。

format.png


3. 本体の各種セッティング

SDカードを接続後RaspberryPiをケースに格納し、マウス&キーボード、HDMIケーブルを接続。

SDカードを入れる前にケースに入れてしまい、本体を再度取り出すのに苦労して

取り出した後にケース横にSDカードを入れるスリットがあることを発見しました

最後に電源を接続するとRaspberryPiが起動。


インストール&初期設定

SDカードと本体の各種接続が終わったらRaspberryPiを起動し、初期設定を行います。


1.OSのインストール

電源起動後、言語設定を「日本語」に設定。

左上のアイコンから「設定」→「Raspberry Piの設定」をクリックして「ローカライゼーション」タブを選択。

「ロケールの設定」を選択後、「言語」を「ja(Japanese)」、「文字セット」を「UTF-8」に設定。

「タイムゾーン」の「地域」を「Asia」、「位置」を「Tokyo」に設定。

「キーボードの設定」で「Model」に「Generic 105-key (Intl) PC」、「Layout」に「Japanese」、「Variant」に「Japanese」を設定。

※「Variant」は接続するキーボードのレイアウトに依存するため、上記以外の選択になることもある

「Raspbian Full」を選択後、ウィンドウ上部の「インストール」をクリック。

正常に完了すればOSインストールが完了。


2.セキュリティ設定

公式にも記載があるが、そのままだとセキュリティに問題があるので下の手順の通り設定を変更する。

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


1.ファームウェアの最新化

アップデートの完了後システムを再起動。

$ sudo rpi-update


2. インストールされているパッケージを最新化

sudo apt-get update

sudo apt-get upgrade


3. Vimの導入(任意)

始めからインストールされているviは使い勝手が良くないらしいのでVimをインストール。

sudo apt-get install vim


4.rootパスワードの設定

初期設定では管理者アカウントのパスワードが未設定となっているため新規に設定する。

下記コマンドを実行後、新しいパスワードを2回入力。

sudo passwd root


5.ユーザの追加&piユーザの削除

デフォルトのログインユーザであるpiユーザはユーザ名・パスワード共に公開されています。

最近では未変更のRaspberryPiを狙ってpi:raspberryでログインを試すマルウェアも登場しているので、

最低でも必ずpiユーザのパスワードは変更する必要があります。

更にセキュリティを高める場合は新規にユーザを追加し、piユーザは削除もしくは無効化しておくと良いでしょう。


1. ユーザの新規作成

sudo adduser adduser1

※adduser部分は任意のユーザ名に変更すること


2. 作成したユーザをpiユーザと同じグループに追加

sudo権限を付与するだけならsudo gpasswd -a adduser1 sudoで良いのですが、piユーザは複数のグループに入っているので

一応piユーザと同一のグループに全て追加しておきます。

1.piユーザが所属しているグループを全て表示

groups pi

2.表示されたグループを確認

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

3.作成したユーザを先程確認したすべてのグループに追加

sudo usermod -G pi,adm,dialout,cdrom,sudo,audio,video,plugdev,games,users,input,netdev,spi,i2c,gpio adduser1

4.グループ追加が正常に実施されたことを確認

groups adduser1

5.piユーザ内のデータを作成したユーザにコピー(任意)

sudo cp -r /home/pi/* /home/adduser1

6.一度再起動を行い、作成したユーザでログインを実施

RaspberryPiを再起動し、先程作成したユーザでログインが可能かを確認します。

su ユーザ名でユーザを切り替えでも大丈夫だと思います。


3. piユーザの削除

アカウントを作成したらpiユーザは不要なので削除します。

1.オートログイン無効化

sudo vim /etc/lightdm/lightdm.conf

下の行をコメントアウトする


lightdm.conf

- autologin-user=pi

+ #autologin-user=pi

autologin@.serviceを修正します。

sudo vim /etc/systemd/system/autologin@.service

下の行を変更する


autologin@.service

- ExecStart=-/sbin/agetty --autologin pi --noclear %I $TERM

+ ExecStart=-/sbin/agetty --noclear %I $TERM
# 作成したユーザで自動ログインする場合は下のコマンドに変更する
+ ExecStart=-/sbin/agetty --autologin adduser1 --noclear %I $TERM

2.piユーザを削除もしくは無効化


piユーザを削除する場合

sudo userdel -r pi



piユーザを無効化する場合

sudo gpasswd -d pi sudo

# piユーザが存在しない事を確認
id -a pi

# パスワード無しでsudo実行できる権限を外す
sudo vim /etc/sudoers.d/010_pi-nopasswd
- pi ALL=(ALL) NOPASSWD: ALL
+ #pi ALL=(ALL) NOPASSWD: ALL

# piユーザをロック
sudo passwd --lock pi

# piユーザでログインできないことを確認
su pi



3.その他設定(任意)

必須の設定ではないですが今回インストールや修正をおこなった作業を記載します。


1.ksnapshot(Spectacle)のインストール

ログを残す時などに画面キャプチャを取得したい場合があるので

ksnapshot(Spectacle)をインストールします。

1.インストール

sudo apt-get install kde-spectacleを実行してインストール。

2.起動

左上のアイコンから「アクセサリ」→「Spectacle」で実行。

初期状態では実行した瞬間の画面キャプチャが取得される。

※画像を保存しようとした際に上記そのままの状態だとadduser1配下の所有者が

「root」になっていて保存ができないため、adduser1配下に保存したい場合は

事前にディレクトリのパーミッションを変更すること。


2.解像度の変更

左上のアイコンから「設定」→「Raspberry Piの設定」をクリックしてパスワードを入力。

「システム」タブの「オーバースキャン」を無効に設定。

「解像度の設定」をクリックしてモニタに対応する解像度を設定。

※PCモニタを使用している場合は「DMT ~」を選択するのが基本だが、こちらの

環境では「CEA ~」を選択しないと正しい解像度で読み込まれなかった。


リモート接続

常時キーボード・マウスやモニタを接続するのは煩わしいのでリモート接続の設定を行います。


1. sudo実行時にパスワードを不要にする(非推奨)

セキュリティ的には非推奨ですが、毎回sudoを実行時にパスワードを入れるのが手間なので

sudo実行時のパスワードを入れないように設定します。

sudo vim /etc/sudoers.d/010_pi-nopasswd

sudo vim /etc/sudoers及びsudo visudoは古い記述になっている

下の行を追加。


sudoers

  adduser1 ALL=(ALL) NOPASSWD: ALL



2. 固定IPアドレスの設定

RaspberryPiを起動するたびにIPアドレスが自動で割り当てられると接続の際に

毎回確認することになってしまうので、IPアドレスを固定します。

sudo vim /etc/dhcpcd.conf

下の行を編集してRaspberryPiを再起動。

再起動後、ifconfigを入力して設定したIPアドレスが反映されているかを確認。


dhcpcd.conf

  # 無線LANの場合は「wlan0」を、有線LANの場合は「eth0」を設定してください

interface eth0
static ip_address=192.168.XXX.XXX/24 # 設定したいIPアドレス
static routers=192.168.XXX.XXX # デフォルトゲートウェイ
static domain_name_servers=192.168.XXX.XXX # DNSサーバ


3. SSH・VNCの設定


1.rootアカウントでのログインとパスワード認証を拒否する

外部からのRaspberryPiへの接続を許可する場合は

rootへのログインとパスワード認証を拒否するよう設定します。

sudo vim /etc/ssh/sshd_config

下の行を追加。


sshd_config

  # rootでのログインを拒否する

#PermitRootLogin prohibit-password
+ PermitRootLogin no

# パスワード認証を拒否する
#PasswordAuthentication yes
+ PasswordAuthentication no

# LAN内から接続した場合のみrootでのログインとパスワード認証を許可する
+ Match Address 127.0.0.1, 192.168.XXX.XXX/24
+ PermitRootLogin yes
+ PasswordAuthentication yes



2.SSHのポート番号を変更

デフォルトのポート番号22のままだと攻撃される可能性があるのでポート番号を変更します。

0から1023と、1024から49151は既に割り当てが行われているので49152~65535の範囲で変更を行います。

sudo vim /etc/ssh/sshd_config

下の行を追加。


sshd_config


#Port 22
+ Port XXXXX


3.SSHとVNCの有効化

1.有効化

左上のアイコンから「設定」→「Raspberry Piの設定」をクリックしてパスワードを入力。

「インターフェイス」タブの「SSH」と「VNC」を有効に設定。

2.SSHファイルの作成

sudo touch /boot/sshを実行してSSHファイルを作成する。

3.SSHサービスの自動起動

sudo systemctl enable sshを実行してシステムを再起動する。

再起動後にsudo service ssh statusを実行してSSHサービスが起動していることを確認する。


4.接続確認

各種設定が完了したら接続確認を行います。

※SSH接続については公開鍵の設定をしていないので後で追記します


1.SSHの接続確認

「Tera Term」を起動。未インストールの場合は下記URLから取得&インストール。

https://ja.osdn.net/projects/ttssh2/

ホストには設定したIPアドレスを192.168.XXX.XXXの形式で入力、

(ユーザ名まで指定する場合はadduser@192.168.XXX.XXX

TCPポートには設定したポート番号を入力して「OK」をクリック。

接続が正常に実行できることを確認する。

teraterm.png


2.VNCの接続確認

下記URLより「VNC Viewer」を取得。インストーラー版とスタンドアローン版があるので好みの方をダウンロードする。

https://www.realvnc.com/en/connect/download/viewer/

「VNC Viewer」を起動して赤枠のところに設定したIPアドレスを入力してエンターキーを押下。

パスワードを求められるので初期設定時に作成したユーザアカウントとパスワードを入力する。

RaspberryPiのデスクトップが表示される事を確認する。

VNCViewer.png


総括

これで最低限のセキュリティ設定はできたと思います。

今後はSSHもしくはリモートデスクトップ経由で各種設定を実行できるので、

毎回キーボードなどを接続しなくても操作が可能になります。