💻SBC 用 Ubuntu Server 24.04 設定メモ
Ubuntu Server 24.04 を aarch64 SBC(Raspberry Pi5, Rock5B) で設定した時の基本設定をメモしておく。
シェルで何か起動するときの行頭、 sudo が必要なものは # ...
で表している。不要なら $ ...
。
これは、毎回 sudo
と書きたくないから。
環境、ネットワーク関連の設定
.bashrc
- IPV4
- SSH サーバー
- ufw
.bashrc
- .bashrc の中で
PS1
( bash プロンプト設定変数) に以下を仕込むrsz()
…less
などで画面サイズが 80x24 に設定されるのを回避するondo()
… 温度を表示
rsz () if [[ -t 0 ]]; then local escape r c \
prompt=$(printf '\e7\e[r\e[999;999H\e[6n\e8'); \
IFS='[;' read -sd R -p "$prompt" escape r c; stty cols $c rows $r; fi
rsz
# temperature in Raspberry Pi5, ROCK 5B
ondo () { temp=`cat /sys/class/thermal/thermal_zone*/temp | \
awk '{if(max==""){max=$1};if($1>max){max=$1};} END {print max}'`; \
echo ${temp:0:2}.${temp:2:2}
}
export PS1="\$(rsz)\$(`echo ondo`)C ${PS1}"
IPV4
/etc/netplan/*.yaml
を編集する。既定で IPV4 は有効化しないので、設置環境に合わせて以下を編集。
- 現時点では gw 指定を
routes:
配下の書き方で指定する - DHCP は試してないがそのうちやろう
network:
version: 2
ethernets:
<<ここに ip a で調べた LAN の名前 eth0 とかを入れる>>:
#renderer: NetworkManager
addresses: [aaa.bbb.ccc.ddd/24]
routes:
- to: default
via: aaa.bbb.ccc.eee
metric: 100
nameservers:
addresses: [aaa.bbb.ccc.eee,fff.ggg.hhh.iii]
dhcp6: false
dhcp4: false
optional: true
設定反映
# netplan apply
SSH サーバー
- 最初に sshd を起動する
- 設定変更前にローカルから公開鍵を作って転送
- sshd 設定変更と再起動
最初に sshd を起動する
初期状態の Ubuntu Server は sshd が無効化されているので、まずは起動してやる。
// 有効化
# systemctl enable ssh
// 起動
# systemctl start ssh
// 確認
# systemctl status ssh
設定変更前にローカルから公開鍵を作って転送
ssh-copy-id を使う場合 /etc/ssh/sshd_config:PasswordAuthentication yes
にしておかないと、ログイン認証できずコピーされない。
cd ~/.ssh
ssh-keygen -t ed25519 -f rock5b_ed25519
ssh-copy-id -i rock5b_ed25519.pub <user>@<host>
sshd 設定変更と再起動
/etc/ssh/sshd_config
(ファイル) に書く。
/etc/ssh/sshd_config.d/*.config
でオーバーライドされていないか確認しとく。
Port 変えた
PermitRootLogin no
PasswordAuthentication no
PermitEmptyPasswords no
設定を検証
$ sshd -t
sshd を再起動して状況確認
# systemctl restart ssh
# systemctl status ssh
ローカル側 ~/.ssh/config
Host rock5b
HostName <IPV4アドレス>
Port <変更したポート番号>
User <ID>
IdentityFile ~/.ssh/rock5b_ed25519
TCPKeepAlive yes
IdentitiesOnly yes
ufw
// デーモンうごいてますか
# systemctl status ufw
● ufw.service - Uncomplicated firewall
Loaded: loaded (/usr/lib/systemd/system/ufw.service; enabled; preset: enabled)
Active: active (exited) since Thu 2024-08-08 06:01:08 UTC; 3 days ago
Docs: man:ufw(8)
Main PID: 578 (code=exited, status=0/SUCCESS)
CPU: 7ms
Aug 08 06:01:08 ubuntu systemd[1]: Starting ufw.service - Uncomplicated firewall...
Aug 08 06:01:08 ubuntu systemd[1]: Finished ufw.service - Uncomplicated firewall.
// ufw どうですか
# ufw status
Status: inactive
// TCP, UDP も IPV4, IPV6 も分け隔てなくブロック
# ufw deny 22
// ちゃんと 22 番以外でつながる手段とっておいてから有効化
# ufw enable
Firewall is active and enabled on system startup
# ufw status
Status: active
To Action From
-- ------ ----
22 DENY Anywhere
22 (v6) DENY Anywhere (v6)
// ざっくり
// イミフなときは ufw <action> --help すれば?
# ufw {allow,deny} [from <ip/netmask> to <any> port] 22</{tcp,udp}>
*/