いなほちゅんのひとりごとブログ版

私のメモ帳を公開してみる。

Raspbian on Raspberry Pi 初期設定編

Raspbian on Raspberry Pi 初期設定編
日付
カテゴリー
シェア

はじめに

Raspberry Piを購入したのでRaspbian Buster Liteを導入してサーバーを構築して遊んだ記録である。
今回はサーバー用途のヘッドレス運用を行うため、基本的にRaspberry PiへはSSHで接続して作業を行っている。
作業環境はWindows 10 Pro 1909 64bitのPCで、SSHクライアントはRLoginを使用した。
今回セットアップしたRaspberry Piは3B+で、Raspbianのバージョンは10.3(Buster)。

RLogin

Raspbian Lite導入

ダウンロード

Raspberry Pi 公式サイトの「Download Raspbian for Raspberry Pi」より「Raspbian Buster Lite」をダウンロードする。

microSDへ書き込み

公式サイトでダウンロードできるのはディスクイメージのZIPアーカイブなので展開しておくこと!

RaspbianのディスクイメージをmicroSDに書き込む。

作業PCがWindowsの場合は下記のソフトウェアが使えました。

USB Image Tool

SSH有効化

ヘッドレス運用の場合はこの操作を忘れると操作できなくなるのでやっておくこと!

microSDbootパーティション直下にsshという名前の空のファイルを作成する。
Windowsの場合の手順は下記の通り。

  1. エクスプローラーでmicroSDのbootパーティションを開く
  2. 右クリックをして新規作成でテキストドキュメントを作成
  3. ファイル名をsshに変更

Wi-Fi無効化

用途によってはWi-Fiが不要な場合があるので、そのときは無効化しておくとよい。
無効化するにはmicroSDbootパーティション直下のconfig.txtをメモ帳等のテキストエディターで開き下記内容を追記する。

・・・
dtoverlay=pi3-disable-wifi
起動
  1. Raspberry PiのmicroSDスロットにRaspbian Liteのディスクイメージを書き込んだmicroSDカードを挿入
  2. Raspberry Piに電源を接続
  3. (ある場合は)電源スイッチをON

初期設定

ソフトウェア更新

RaspbianはDebian系のLinuxディストリビューションなのでaptを使用してインストールされているソフトウェアの更新を行う。

sudo apt update && sudo apt -y dist-upgrade && sudo apt -y autoremove && sudo apt autoclean

ソフトウェア更新自動化

ソフトウェア更新を自動化するにはunattended-upgradesパッケージを使用する。

sudo apt install unattended-upgrades

設定は/etc/apt/apt.conf.d/50unattended-upgradesを編集して行う。

Raspbianには当てはまる項目がないので、Origins-Pattern"o=${distro_id},n=${distro_codename}";を追加する。

・・・
Unattended-Upgrade::Origins-Pattern {
    ・・・
    "o=${distro_id},n=${distro_codename}";
    ・・・
}
・・・

Raspberry Pi設定ソフトウェア

raspi-configを使用してRaspberry Piの設定を行う。

sudo raspi-config

とりあえずやっておきたい設定は下記の通り。

デフォルトユーザーのパスワード変更

メニューのChange User Passwwordを選択して指示に従い設定する。

ホスト名設定

メニューのNetwork OptionsHostnameを選択して指示に従い設定する。

ロケール設定

メニューのLocalisation OptionsChange Localeを選択して指示に従い設定する。
日本語を使うのでja_JP.UTF-8を選択し、デフォルトのロケールをja_JP.UTF-8に設定する。

タイムゾーン設定

メニューのLocalisation OptionsChange Timezoneを選択して指示に従い設定する。
日本で使うので日本標準時(JST)となるAsiaTokyoを選択する。

キーボード設定

メニューのLocalisation OptionsChange Keyboard Layoutを選択して指示に従い設定する。
直接Raspberry Piにキーボードを接続する場合は設定する必要があるが、SSH接続のみで操作を行う場合は設定しなくてもよい。

Wi-Fi国設定

メニューのLocalisation OptionsChange Wi-fi Countryを選択して指示に従い設定する。
Wi-Fiを使用する場合はJPを選択する。

ファイルシステム拡張

microSDの容量を目一杯使うようにする設定。
メニューのAdvanced OptionsExpand Filesystemを選択して指示に従い設定する。

メモリー設定

GPU用のメモリー設定。
メニューのAdvanced OptionsMemory Splitを選択して指示に従い設定する。
デフォルトでは64が設定されているが、ヘッドレス運用では最小限で十分なので16を設定する。

IPアドレスの固定化

/etc/dhcpcd.confを編集してIPアドレスを固定する。

interface eth0
    # IPアドレスとサブネットマスク
    static ip_address=192.168.100.251/24
    # デフォルトゲートウェイ
    static routers=192.168.100.1
    # DNSサーバー
    static domain_name_servers=192.168.100.1

SSH接続ポート番号変更

RaspbianのSSHは接続ポート番号がデフォルトの22番になっている。
サーバー用途ではこれを変更しておいた方がセキュリティ的に望ましいと思われる。

/etc/ssh/sshd_configを編集

デフォルトの22番はコメントアウトされているので、その下にPort 12345(数字は変更したいポート番号)を追記する。

・・・
#Port 22
Port 12345
・・・ 

sshdを再起動

sudo systemctl restart sshd.service

SSHホスト鍵更新

既存のホスト鍵を削除して再作成する。

sudo rm -v /etc/ssh/ssh_host*
sudo dpkg-reconfigure openssh-server

NTPクライアント設定

Raspberry Piの時刻合わせをネットワークで行うNTPクライアントの設定を行う。

NTPはsystemd-timesyncdを利用しているので、確認はtimedatectl statusで行う。

timedatectl status

               Local time: 火 2020-03-24 20:43:37 JST
           Universal time: 火 2020-03-24 11:43:37 UTC
                 RTC time: n/a
                Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
              NTP service: inactive
          RTC in local TZ: no

NTP serviceactiveならNTPクライアントが有効になっている。

inactiveの場合は無効になってるのでsudo timedatectl set-ntp trueで有効にする。

sudo timedatectl set-ntp true

同期元サーバーの設定は/etc/systemd/timesyncd.confを編集して行う。

[Time]
NTP=ntp.jst.mfeed.ad.jp ntp.nict.jp
FallbackNTP=time.google.com

設定を変更したらtimedatectlを再起動する。

sudo systemctl restart systemd-timesyncd

SWAP設定

Raspberry Piの用途によって設定を変更する。

サービスdphys-swapfileの設定を行う。

SWAPを無効にする場合

sudo systemctl stop dphys-swapfile
sudo systemctl disable dphys-swapfile

SWAPを有効にする場合

sudo systemctl enable dphys-swapfile
sudo systemctl start dphys-swapfile

SWAPの容量を変更する場合

まずはSWAPを停止する。

sudo systemctl stop dphys-swapfile

次にSWAPサイズを変更する。
/etc/dphys-swapfileを編集してCONF_SWAPSIZEの数値を変更する。
単位はMBでデフォルト値は100である。
そして最後に設定した値を有効にするためにSWAPを起動する。

sudo systemctl start dphys-swapfile

avahi無効化

avahiはDNS無しでホスト名.localでのアクセスを提供するソフトウェア。
内向きDNSが存在する場合は不要なので無効にする。

sudo systemctl stop avahi-daemon
sudo systemctl disable avahi-daemon

デフォルトユーザー名変更

サーバー用途ではデフォルトのパスワードとともにユーザー名を変更しておいた方が望ましい。
ただしデフォルトのpiユーザーを削除して別のユーザーを再作成して利用するのは、削除されたpiユーザーのファイルがどこかに残っている可能性があるのでおすすめしない。
ここではpiユーザーをraspiに変更する例を示す。

仮ユーザー作成

piユーザーでログインして仮のユーザーtmpを作成する。

# 仮ユーザー(tmp)を作成する
sudo useradd -M tmp
# tmpユーザをsudoグループに追加(そうしないとsudoが使えない)
sudo gpasswd -a tmp sudo
# tmpユーザのパスワードを設定
sudo passwd tmp
# ログアウトする
exit

ユーザー名変更

piユーザーをraspiに変更する。

# usermod -lでユーザー名をpiからsamba-piに変更
sudo usermod -l raspi pi
# usermod -dでホームディレクトリを/home/piから/home/raspiに変更
sudo usermod -d /home/raspi -m raspi
# groupmod -nでpiグループをraspiグループに変更
sudo groupmod -n raspi pi
# ログアウト
exit

仮ユーザー削除

新しいユーザーraspiでログインして仮のユーザーtmpを削除する。

# 仮ユーザtmpを削除
sudo userdel tmp 

パスワード無しのsudo無効化

設定は/etc/sudoers.d/010_pi-nopasswdで行う。
ファイルのpi ALL=(ALL) NOPASSWD: ALLをコメントアウトする。
またはファイル自体が不要なので削除してしまってもよい。

バックアップ

microSDのディスクイメージでのバックアップを行う。
Windowsではディスクイメージの書き込みにも使えるWin32 Disk ImagerUSB Image Toolを用いるとよい。

おわりに

私がやってみたRaspberry Piの初期設定はこんな感じです。
他にもこうやったほうがいいとかあるような気がするし、今後導入するソフトウェア次第で設定を変更するようになるかも知れない。
とりあえずここからRaspberry Piをいろいろいじってみようと思っています。

参考サイト

アーカイブ

タグ

ページの先頭へ