昔Raspberry Pi OSをインストールをすると、必ずpiと言うユーザが存在していました。ユーザIDがバレていると、後はパスワードだけを攻略すればアカウントを奪うことができます。
この事がセキュリティ強度を下げる大きな要因でした。
だから、インストールが終わると、急いでログインIDをpiから別の新しいログインIDに引っ越しをしてインストールを継続する必要がありました。
しかし、Raspberry Pi Imager 1.7.1からSSHのログインIDも設定できるようになり、引っ越しする必要もなくなりました。
もし、まだpiでログインされている方がおられたら、新しいログインIDに引っ越しされる事をお勧めします。
この章では、piから新しいログインIDに引っ越す方法をお教えします。
新しいログインIDを作成
今回は、ログインIDに新しくnewuserを作成することで話を進めます。
$ sudo adduser newuser
Adding user `newuser' ...
Adding new group `newuser' (1001) ...
Adding new user `newuser' (1001) with group `newuser' ...
Creating home directory `/home/newuser' ...
Copying files from `/etc/skel' ...
New password: <= パスワード入力
Retype new password: <= 2回目再パスワード入力
passwd: password updated successfully
Changing the user information for newuser
Enter the new value, or press ENTER for the default
Full Name []: <= エンター入力
Room Number []: <= エンター入力
Work Phone []: <= エンター入力
Home Phone []: <= エンター入力
Other []: <= エンター入力
Is the information correct? [Y/n] y <= "y"入力
新しいユーザにpiと同じグループを割り当て
piのグループを確認して、新しいユーザに同じグループを割り当てます。
$ groups pi
pi : pi adm dialout cdrom sudo audio video plugdev games users input render netdev spi i2c gpio
新規ユーザーに全部このgroupを追加します。
$ sudo usermod -G adm,dialout,cdrom,sudo,audio,video,plugdev,games,users,input,render,netdev,spi,i2c,gpio newuser
groupが追加されたことを確認。
$ groups newuser
newuser : newuser adm dialout cdrom sudo audio video plugdev games users input render netdev spi i2c gpio
piのホーム配下のファイルをコピー。
$ sudo cp /home/pi/.* /home/newuser
cp: -r not specified; omitting directory '/home/pi/.'
cp: -r not specified; omitting directory '/home/pi/..'
コピーしたファイルの内、vim関連のユーザをnewuserに変更。
$ sudo chown newuser:newuser /home/newuser/.v*
newuserでログインできるか確認。
$ ssh newuser@localhost
The authenticity of host 'localhost (::1)' can't be established.
ECDSA key fingerprint is SHA256:t0EAKbYBJ0KTmFTqikQuQ59vgvOUQgaQfJKwUNqlKAw.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes <= "yes"を入力
Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.
newuser@localhost's password:
Linux raspberrypi 5.10.92-v8+ #1514 SMP PREEMPT Mon Jan 17 17:39:38 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
これでログインできれば、大丈夫。
piのユーザで動いているプロセスが存在する可能性があるのでpiのユーザは残しておきます。しかし、SSHではログインできないよう後の章で制限をかけます。
新しいユーザでsudo入力時にパスワードが聞かれないように設定
新しいユーザでログインして、sudoを入力するとパスワードを聞かれます。
そこで、新しいユーザもパスワードを聞かれないように、 /etc/sudoers.dのフォルダにユーザのファイルを作成し設定します。
$ sudo visudo -f /etc/sudoers.d/010_newuser-nopasswd
visudoは、構文に間違いがあると教えてくれます。
パスワード無しで全てのコマンドを利用可能とするため下記の内容を追加します。
newuser ALL=(ALL) NOPASSWD: ALL
これでsudoと入力してもパスワードが聞かれなくなります。
詳細は、下記の記事を確認ください。
SSHの設定変更
新しいログインIDのみSSHからログインできるよう設定ファイルを開いて変更する。
$ sudo vi /etc/ssh/sshd_config
viの超簡単な使い方は、ここを見てね
既に定義されている行は内容の変更を、無い時は行を追加してください。
#が行頭に入っている行はコメントなので、追加しなくても大丈夫です。
#########################
# 接続を許可するユーザ
#########################
AllowUsers newuser
接続を許可するユーザは、先程新しく作ったユーザを指定してね。
設定した内容が正しいか確認
下記のコマンドで設定した内容が正しいか確認。
$ sudo sshd -t <=正しいと何も表示されません。
SSHのサービスを再起動
下記のコマンドで、SSHのサービスを再起動します。
$ sudo systemctl restart sshd.service <=正しく実行されると何も表示されません。
SSH(Teraterm)を終了して再度ログインテスト
piでログインできないこと
新しいユーザでログインできること
上記2つが確認できればOKです。
サーバ単体のセキュリティはこれで大丈夫