備忘録として、Raspberry Pi の初期セットアップ内容をここに記します。
前提条件
- Raspberry OS Lite (GUI なし)
- 有線 LAN 接続
- SSH を用いて操作を行う
SD カードにイメージの書き込み
Raspberry Pi Imager を用いて SD カードに OS を書き込みます。
直感的な GUI のため、操作に迷うことはないはずです。
[!error] 注意
OS イメージを書き込む時に SSH を有効にすることを忘れずに
初期設定
SSH から接続する際に、毎回パスワード入力しないで済むように ssh-copy-id
コマンドを設定する
ssh-copy-id username@192.168.X.X
OS とファームウェアを最新化
sudo apt update && sudo apt upgrade -y && sudo apt full-upgrade -y && sudo apt autoremove -y && sudo apt autoclean -y
sudo rpi-eeprom-update
OS を自動的に最新化
sudo apt install unattended-upgrades
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
## すべてのファイルを更新対象にします
Unattended-Upgrade::Origins-Pattern {
"o=*,a=*";
};
// 自動的にインストールされた未使用のカーネル関連パッケージの削除する
Unattended-Upgrade::Remove-Unused-Kernel-Packages "true";
// アップグレード後、新たに使用されなくなった依存関係を自動削除する。
Unattended-Upgrade::Remove-New-Unused-Dependencies "true";
// アップグレード後に未使用のパッケージを自動削除する。
Unattended-Upgrade::Remove-Unused-Dependencies "true";
// アップグレード時にリブートが必要な場合にリブートする
Unattended-Upgrade::Automatic-Reboot "true";
// 自動リブート有効時にユーザーがログイン中であってもリブートする
Unattended-Upgrade::Automatic-Reboot-WithUsers "true";
// 自動リブート有効時にいつリブートするか
Unattended-Upgrade::Automatic-Reboot-Time "02:00";
IP アドレスの固定
sudo nano /etc/dhcpcd.conf
## 自分の環境に合わせて修正
interface eth0
static ip_address=192.168.1.26/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1
SD カード長命化&省電力化
SD カードの寿命を伸ばす対策
- Swap 機能を無効化(SD カード Swap 書き込みを停止)
sudo apt autoremove -y dphys-swapfile
- RAMDISK(tmpfs) 機能を有効化(メモリ上にファイルを書き込む)
sudo nano /etc/fstab
## 3行を末尾に追加
tmpfs /tmp tmpfs defaults,size=256m,noatime,mode=1777 0 0
tmpfs /var/tmp tmpfs defaults,size=256m,noatime,mode=1777 0 0
tmpfs /var/log tmpfs defaults,size=32m,noatime,mode=0755 0 0
sudo reboot
- Bluetooth と WiFi の無効化
sudo nano /boot/config.txt
or
sudo nano /boot/firmware/config.txt
## 以下を追加
dtoverlay=disable-bt
dtoverlay=disable-wifi
sudo reboot
セキュリティ対策
外部から不正にアクセスがあったときに自動で BAN するアプリfail2ban
を入れます。
sudo apt -y install fail2ban
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
sudo nano /etc/fail2ban/jail.local
[DEFAULT]
# BAN除外
ignoreip = 127.0.0.1/8 192.168.0.0/24 10.20.30.1/24
# BANする時間
bantime = 24h
# 監視スパン(600秒)
findtime = 600
# 最大パスワード失敗回数
maxretry = 3
# SSHD のBANを有効化
[sshd]
enabled = true
backend = systemd
# 再発した場合は動作を重くする
[recidive]
enabled = true
新しい Ubuntu および Debian システムでの syslog から systemd ベースのログへの移行に関連しています。Fail2ban は、デフォルトでは systemd ジャーナルと連携するように適切に構成されていません。
そのため、空のログファイルを作成します。
sudo touch /var/log/fail2ban.log
sudo chmod 640 /var/log/fail2ban.log
sudo systemctl restart fail2ban
実際に BAN された IP アドレスを確認する方法
sudo fail2ban-client status sshd
Top comments (0)