ラズパイは便利なIOTツールの一つですが、あまり知識がなくても使えてしまうため、悪意ある輩が狙ってくるとかいないとか…。
そこで、↓を参考に最低限の対策として、デフォルトのユーザー名 "pi"から離脱する方法を中心に、とくに躓きやすい点を重点的にまとめました。
qiita.com
まず、新しいIDを作ります。これはなるべく長いほうがいいのは基本です。変更しても ”a”みたいにしていてはほぼ同じです。
以下個別のユーザー名はxxx
と表記します。
$ sudo /usr/sbin/useradd --groups sudo -m xxx
続いてパスワードを設定します。
$ sudo passwd xxx
rootのパスワードも変更します。
$ sudo passwd root
rootはロックします。rootを直接loginできなくしておくことです。
$ sudo passwd -l root
上でrootのパスワードを変更した上で、ロックすることでより強固にしていますが、そもそもパスワードを変更(設定)しなければログインできないのでそれがもっとも強固であるという話です。アクティベートしてしまっているならロックしておきます。
「sudo passwd root」はしてはいけません。
少しの知識を手に「/etc/shadow」を見れば分かるのですが、rootのパスワードは「*」、つまりパスワードを設定するまでログイン不可になっていました。
これはつまり、パスワードを設定しなければrootでログインされる心配はないということ。
逆説的に言えば、「passwd root」してしまうとrootでログイン出来るようになってしまいます(rootでの作業が必要な時はsudoを使うべきであって、rootでログインしない)
ちなみにUbuntuでは「!(アカウントロック)」になっています。Raspbianでも同じようにロックしたければ「sudo passwd -l root」でロック出来ます。
ロックやログイン不可状態でもsudoの動作には関係ないので、rootのパスワードは変えない方が安全というか、変えるべきではありません。
すでにpiユーザーを利用しているなら、pi ユーザーのデータファイルをコピー…することもできますが、この方法でコピーすると所有権がrootになってしまうので、その後新規ユーザーで変更ができなくなってしまいました。
$ sudo cp -r /home/pi/* /home/xxx
新規ユーザーでログインしてファイルを確認した様子。すべて所有権がrootになっています(所有権の変更が必要になる)。
結局、sudo
ですべて削除して、Windowsからuploadし直しました。
$ sudo rm -f xxx
これも、すでにpiユーザーで利用していたなら。pipするList (pythonのライブラリ一覧)を取得しておきます。メモ帳にでもコピーしておくか、テキストファイルに書き出して新規ユーザーのディレクトリにコピーしておきます。
$ pip3 freeze or $ pip freeze (python2系)
または
$ pip3 freeze > requirements.txt
で出力。
ここまですんだら、新しいユーザーにLoginします。なぜかSHモードになっている。いつものBashに変更する。
$ sudo chsh -s /bin/bash xxx
(この状態をSHモードであるということにたどり着くまで大変でした。ラズパイのターミナルが似ているけどいつものじゃない…)
再起動または再ログインで有効になります。
raspberrypi.stackexchange.com
sudoユーザーグループに追加する(sudoコマンドがpassword入力なしで実行できるように)
$ sudo gpasswd -a xxx sudo
新しいアカウントにrequirements.txt
をコピーし、
$ pip3 install -r requirements.txt
で一括インストールできます。
バックアップしておくべきファイルをバックアップしたらpiユーザーを削除します。
$ sudo userdel -r pi
削除できないErrorが発生したときは、Auto Loginをオフに。
$ sudo raspi-config >System option >Boot Auto Login >Consple # 2021/10/31 更新
Raspberry piでpiユーザーを消す時に(user pi is currently used by process )が出たときの対処法 - sk7zの備忘録
削除できたととを確認するには 「ユーザーの一覧」を見るという方法があります。
$ nano /etc/passwd
ユーザーグループを追加します。
$ sudo usermod -G adm,dialout,cdrom,sudo,audio,video,plugdev,games,users,input,netdev,spi,i2c,gpio xxx
最後にポート番号を変更します。
ssh configを開いて、
$ sudo nano /etc/ssh/sshd_config
以下のようなポート番号がコメントアウトされているところを変更します。
#Port 22
65535以下の数字を好きに選び、アンコメントします。
(この設定ファイルは初期値ではすべてコメントアウトされているので白紙と同じですよね)
Port 12345
SSHを再起動します。
$ sudo /etc/init.d/ssh restart
次回Loginからは新しいPort番号でアクセスします。
不正アクセスされてないか?
直近のログイン履歴を確認します。$ last ***** pts/0 ***.**.***.253 Mon Mar 11 20:59 still logged in ***** pts/1 ***.**.***.253 Fri Mar 8 22:06 - 22:06 (00:00) ***** pts/0 ***.**.***.253 Fri Mar 8 21:26 - 22:06 (00:40) ***** pts/1 ***.**.***.253 Mon Mar 4 22:43 - 23:10 (00:26) ***** pts/0 ***.**.***.253 Mon Mar 4 22:39 - 22:51 (00:11) ***** tty7 :0 Mon Mar 4 22:38 gone - no logout reboot system boot 4.14.34-v7+ Thu Jan 1 09:00 still running ***** pts/2 ***.**.***.253 Mon Mar 4 22:34 - 22:38 (00:03) ***** pts/1 ***.**.***.253 Mon Mar 4 22:34 - 22:37 (00:02) ***** pts/0 ***.**.***.253 Mon Mar 4 20:55 - 22:34 (01:39) ***** pts/2 ***.**.***.253 Sun Mar 3 19:43 - 19:52 (00:09) ***** pts/1 ***.**.***.253 Sun Mar 3 18:32 - 19:46 (01:13) ***** pts/0 ***.**.***.253 Sun Mar 3 17:59 - 19:43 (01:43) ***** tty7 :0 Sun Mar 3 17:59 - down (1+04:38) reboot system boot 4.14.34-v7+ Thu Jan 1 09:00 - 22:38 (17959+13:38) ***** pts/2 ***.**.***.253 Sun Mar 3 17:21 - 17:58 (00:37) ***** pts/1 ***.**.***.253 Sun Mar 3 17:03 - 17:21 (00:18) ***** pts/0 ***.**.***.253 Sun Mar 3 17:01 - 17:58 (00:56) ***** tty7 :0 Sun Mar 3 17:01 - 17:58 (00:57) reboot system boot 4.14.34-v7+ Thu Jan 1 09:00 - 17:58 (17958+08:58) ***** pts/0 ***.**.***.253 Sun Mar 3 16:43 - 17:01 (00:17) ***** pts/1 ***.**.***.253 Sat Mar 2 16:38 - 16:38 (00:00) ***** pts/0 ***.**.***.253 Sat Mar 2 16:14 - 16:39 (00:25)
ログイン失敗の履歴も見れます。
$ sudo last -f /var/log/btmp ***** ssh:notty ***.**.***.253 Sun Mar 3 16:43 gone - no logout ***** ssh:notty ***.**.***.253 Sun Mar 3 16:43 - 16:43 (00:00)
自分でパスワードを間違えた分しか出てきませんでした。
qiita.com
まとめ
最低限のセキュリティ対策として、ユーザー名を変更する方法をまとめました。SSH Loginすると、前回のLogin日時が表示されます。変なLoginがないことは確認しておきましょう。(変なことあったことないけど…)
どこかで、"pi" も結構狙われる、という記事も見たんだけど、adminとかrootがとくに狙われやすいみたいです。
qiita.com