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

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

Ubuntu Server on Raspberry Pi 初期設定編

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

はじめに

Raspberry Piを追加導入したのでUbuntu Serverを導入してサーバーを構築して遊んだ記録である。
今回もサーバー用途のヘッドレス運用を行うため、基本的にRaspberry PiへはSSHで接続して作業を行っている。
作業環境はWindows 10 Pro 2004 64bitのPCで、SSHクライアントはRLoginを使用した。
今回セットアップしたRaspberry Piは4Bで、Ubuntu Serverのバージョンは20.04 LTS(Focal Fossa)。

Ubuntu Server導入

ダウンロード

Ubuntu公式サイトの「Download」→「Ubuntu for IoT」→「Raspberry Pi」より、4B用の「Ubuntu 20.04 LTS 64bit」をダウンロードする。

インストール

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

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

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

USB Image Tool

起動

  1. Raspberry PiのmicroSDスロットにUbuntu Serverのディスクイメージを書き込んだmicroSDカードを挿入
  2. Raspberry Piに電源を接続
  3. (ある場合は)電源スイッチをON

初期設定

デフォルトユーザーは ubuntu で、デフォルトパスワードは ubuntu である。

パスワード変更

初回ログイン時に変更を要求される。

ホスト名設定

sudo hostnamectl set-hostname <ホスト名>

IPアドレス固定

ネットワークの設定はnetplanで行われ、デフォルトは /etc/netplan/50-cloud-init.yaml に書かれている。
/etc/netplan/ に辞書順であとになるように設定ファイルを置くことでデフォルト値を上書きして設定することが出来る。
例としてファイル名を 90-home-network.yaml として、下記内容を設定する。
注意点としてインデントはタブではなくスペースで行う必要がある。

network:
  ethernets:
    eth0:
      dhcp4: false
      dhcp6: false
      addresses: [192.168.100.253/24]
      gateway4: 192.168.100.1
      nameservers:
        addresses: [192.168.100.251, 192.168.100.252]
  version: 2
  renderer: networkd

設定反映は sudo netplan apply で行う。

sudo netplan apply

ソフトウェア更新

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

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

日本語化

言語パック等を導入

sudo apt update && sudo apt install language-pack-ja manpages-ja

ロケール設定

sudo dpkg-reconfigure locales

ja_JP.UTF-8 を選択。

タイムゾーン設定

sudo dpkg-reconfigure tzdata

日本なので「Asia」→「Tokyo」を選択する。

SSH接続ポート番号変更

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

設定ファイル編集

/etc/ssh/sshd_config を編集して設定を変更する。

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

・・・
#Port 22
Port 12345
・・・ 

sshd を再起動

sudo systemctl restart sshd.service

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 service が active ならNTPクライアントが有効になっている。
inactive の場合は無効になってるので、設定後に 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

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

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

仮ユーザー作成

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

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

ユーザー名変更

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

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

仮ユーザー削除

仮のユーザーtmpを削除する。

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

おわりに

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

アーカイブ

タグ

ページの先頭へ