version1.7.1を使った。設定がとてもえらい。SSHやwifi接続の設定が最初から組み込めるため、電源につなげてネットワークにつながったらSSHすりゃすぐに使える。キーボードやマウスやディスプレイをいちいち準備する必要なくなった。もちろんこれまでもそういうふうにやれないことはなかったが公式が用意してくれたのでたいへんに助かる。OSを落としておく必要もなく、microSDをフォーマットしておく手間もない。初回のユーザーを pi
から変更できる。えらいぞRaspberry Pi Imageer。 RaspberryPiOS64bitをいれたよ
起動したあとやったこと
ユーザー設定
上記で初回ユーザー変えられるとか書いてるのにデフォルトのpiのままさくせいしたバカタレなのでまずユーザーをなんとかします。
参考 -> raspberry piでお手軽自家サーバー webサーバー編 #セキュリティ対策
- rootに切り替え
- ユーザー追加
- sudo付与
$ sudo passwd root $ sudo adduser [ユーザー名] (このあとパスワード入力とかユーザー情報とかある) $ sudo gpasswd -a [ユーザー名] sudo
このあとreboot
して、今しがた作ったユーザーにsshでログインした。pi
を消そうと思ったけど、piが使ってるプロセスが無限に生き残る。
$ sudo userdel -r pi userdel: user pi is currently used by process 656
何度殺しても別のプロセスが再度立ち上がるし-KILL
オプションつけても全部殺せない。
$ who pi tty7 2022-02-09 14:35 (:0) pi tty1 2022-02-09 14:35 newuser pts/0 2022-02-09 14:39 (192.168.8.xxx)
pi
によるプロセスをgrepしてPIDを取得して決め打ちして殺す様子
$ ps aux | grep pi (プロセスのリストが表示される。PIDを取得してkill) $ sudo kill 556 $ sudo userdel -r pi userdel: user pi is currently used by process 634(なんかまだ生きてる) $ sudo kill -KILL 634 $ sudo userdel -r pi userdel: user pi is currently used by process 721(なんかまた出来た)
結局、raspi-config
から System Options
-> Boot / Auto Login
-> Console
を選んでから再起動し、再度who
で表示するとpi
がいなくなっていたので、これでuserdel
が成功した。
sshd設定
- rootに直接ログイン禁止
- SSHポート番号変更
書き忘れていたが、今回はSSH使うものの諸事情により公開鍵ではなくパスワード認証にてログインすることにしている。
参考 -> SSH接続の設定変更方法
/etc/ssh/sshd.config
を編集する。とくに書くことはない
編集おわったらsshd
を再起動する。なんやかんや言われるが初回だけな気がする
$ service sshd restart ==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units === Authentication is required to restart 'ssh.service'. Authenticating as: ,,, (ユーザー名) Password: ==== AUTHENTICATION COMPLETE ===
ufwの導入
参考 -> iptablesが難しいためufwでWEBサーバーのファイアウォール設定
* 上記URLでは#特定のネットワークからのssh接続のみ許可までやっているが、今回の場合はどのネットワークから使うか未定なのでやってない
ssh接続のポート番号はさっき変更したのでそれを指定する。以下ではxxxx
としている。ついでに80番も開けている
$ sudo apt install ufw $ sudo ufw allow xxxx Rules updated Rules updated (v6) $ sudo ufw allow 80 Rules updated Rules updated (v6) $ sudo ufw reload Firewall not enabled (skipping reload) $ sudo ufw enable Command may disrupt existing ssh connections. Proceed with operation (y|n)? Y Firewall is active and enabled on system startup $ systemctl status ufw ● ufw.service - Uncomplicated firewall Loaded: loaded (/lib/systemd/system/ufw.service; enabled; vendor preset: enabled) Active: inactive (dead) Docs: man:ufw(8) $ systemctl restart ufw ==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units === Authentication is required to restart 'ufw.service'. Authenticating as: ,,, (ユーザー名) Password: ==== AUTHENTICATION COMPLETE === $ systemctl status ufw ● ufw.service - Uncomplicated firewall Loaded: loaded (/lib/systemd/system/ufw.service; enabled; vendor preset: enabled) Active: active (exited) since Wed 2022-02-09 16:12:29 JST; 16s ago Docs: man:ufw(8) Process: 2174 ExecStart=/lib/ufw/ufw-init start quiet (code=exited, status=0/SUCCESS) Main PID: 2174 (code=exited, status=0/SUCCESS) CPU: 23ms $ sudo ufw status Status: active To Action From -- ------ ---- 22 ALLOW Anywhere 80 ALLOW Anywhere xxxx ALLOW Anywhere 22 (v6) ALLOW Anywhere (v6) 80 (v6) ALLOW Anywhere (v6) xxxx (v6) ALLOW Anywhere (v6)
一番下ではsshのデフォルトのポート番号22
が有効になっていることがわかる。こいつを不許可にしてみる
$ sudo ufw deny 22 Rule updated Rule updated (v6) $ sudo ufw status Status: active To Action From -- ------ ---- 22 DENY Anywhere 80 ALLOW Anywhere xxxx ALLOW Anywhere 22 (v6) DENY Anywhere (v6) 80 (v6) ALLOW Anywhere (v6) xxxx (v6) ALLOW Anywhere (v6)
実はuifw
を使うのは初めてだったりする。こういう表示になっている場合、ちゃんと入れるのかどうか確かめてみよう。一度exit
して、再度ログインを試みる
$ exit logout Connection to 192.168.8.xxx closed. ssh ユーザー名@192.168.8.xxx ssh: connect to host 192.168.8.203 port 22: Connection timed out
ちゃんとはじかれる。ではさきほど設定したポート番号を指定してログインしてみる
ssh -p xxxx ユーザー名@192.168.8.xxx ユーザー名@192.168.8.xxx's password: Linux ホスト名 5.15.21-v8+ #1523 SMP PREEMPT Mon Feb 7 18:36:51 GMT 2022 aarch64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Wed Feb 9 16:17:46 2022 from 192.168.8.170 ユーザー名@192.168.8.xxx:~ $
うまく入れたようだ。
続き
なにしようかな