Raspberry Piはどこからでもアクセスできる便利な端末だが、
ネットワークへの侵入口になるなどのセキュリティホールになってしまう恐れがある。
不正アクセスされると自宅のサーバや家電を自由に制御されたり、パスワードを盗まれたり、知らない間にウィルスをばら撒かれる可能性がある。
Raspberry Piにはセキュアブートの機能がないので、設定が必要。
最低限のセキュリティ設定をしよう!
作業概要
- ラズパイを最新版にする
- rootのパスワードを設定する
- 新しいユーザーを追加する
- 「pi」ユーザーを削除する
- SSHのポート番号を変更する
- rootユーザーで直接ログイン出来なくする
【所要時間】30分
参照させていただいた記事
5ステップで完了!ラズベリーパイ(B+)のセキュリティ設定まとめ!
Raspberry Piを攻撃から守るための手順
1. ラズパイを最新版にする
$ sudo rpi-update
完了したら再起動
$ sudo reboot
2. rootのパスワードを設定する
初期状態のラズベリーパイは、何でも可能な「root」にパスワードが設定されていません。
このままだと、誰でもrootへアクセス出来るので「パスワード」を設定する。
password
などは使用せず、推測されづらいパスワードにしましょう。
以下を実行
$ sudo passwd root
新しいパスワードを2回入力し、
passwd: パスワードは正しく更新されました
と表示されればOK
3. 新しいユーザーを追加する
ラズパイは、最初から「pi」ユーザーが設定されているのですが、「ユーザー名」も「パスワード」も公開されているので、使わない方が良いです。
新しいユーザーを追加して使用しましょう。
以下は、新規ユーザー名を「newuser」にする場合です。
ラズパイのコマンドラインから、以下を実行。
$ sudo adduser newuser
「pi」ユーザーと同じ権限にするため、まず「pi」ユーザーのgroupを確認
$ groups pi
表示を確認したら、
新規ユーザーに全部このgroupを追加。sudo権限も追加しています。
$ sudo usermod -G pi,adm,dialout,cdrom,sudo,audio,video,plugdev,games,users,netdev,input,spi,gpio newuser
※ 最後の「newuser」は、新規ユーザー名
groupが追加されたことを確認!
$ groups newuser
先ほどの「pi」ユーザーのようにグループ一覧が表示されたらOK。
何も表示されなかったら、前のコマンドを確認してください。
「pi」ユーザー内のファイルを、新規ユーザーにコピー
$ sudo cp -r /home/pi/* /home/newuser
「pi」ユーザーのオートログインを無効化
$ sudo nano /etc/lightdm/lightdm.conf`
真ん中らへんにあるこの行をコメントアウトする
`autologin-user=pi
autologin-user=pi`
$ sudo nano /etc/systemd/system/autologin@.service
新しいユーザー名を指定
ExecStart=-/sbin/agetty --autologin pi --noclear %I $TERM
ExecStart=-/sbin/agetty --autologin [newuser] --noclear %I $TERM
参照:
Raspberry Pi3(ラズパイ)でpiユーザーの自動ログインを外す方法
一旦ラズパイを終了させて、新規ユーザーでログインできるか確認
$ ssh newuser@raspberrypi
新しいユーザーでログイン後、ファイルがコピーできているか一応確認
$ ls
Desktop Documents Downloads Music Pictures Public Templates Videos python_games workspace
オートログインの確認
piユーザーがいなければok
$ who
newuser tty1 2018-05-22 14:53
newuser pts/0 2018-05-22 14:54
4.「pi」ユーザーを削除する
※ 削除せず、piのユーザー名を変更する、pi ユーザをロックする、という方法もあります。今回は削除する方法です。
新規ユーザーでログイン出来たら、もう「pi」ユーザーは使うことが無いので以下のコマンドで削除
$ sudo userdel -r pi
削除できたか確認
$ id -a pi
以下のように表示されたら削除できました
id: pi: no such user
5. SSHのポート番号を変更する
ラズパイの初期設定では、SSHのポート番号がデフォルトの「22」となっています。
このままだと攻撃されやすいので、自分の好きなポート番号に変更しましょう。
$ sudo nano /etc/ssh/sshd_config
5行目くらいにあるポートの設定を変更して保存。
Port 22 ⇒ Port 12345
ポート番号は、「49152〜65535」の中から好きに設定できます。
12345は例です。推測されづらいものにしましょう。
SSHを再起動
$ sudo /etc/init.d/ssh restart
[OK]が表示されたら完了です。
一度、ログアウトしてから
$ sudo reboot
以下のようにSSH接続
$ ssh newuser@raspberrypi -p 12345
「新しいユーザー」「新しいポート番号」で、SSH接続できるようになりました!
6. rootユーザーで直接ログイン出来なくする
$ sudo nano /etc/ssh/sshd_config
真ん中あたり、# Authentication:の下部にある
PermitRootLogin yes
を
PermitRootLogin no
に変更。
ちなみに
PermitRootLogin without-password
だと、パスワードを使用したrootユーザのログインを拒否。
PermintRootLogin の各種パラメータについて→
ご存じですか? sshd_config の PermintRootLogin の各種パラメータについて
お疲れ様でした!
課題
設定のバックアップを取る。SDカードは壊れることがある。なので、データまたはSDカードの中身全体を、暗号化したパッケージ、ファイル、またはファイルシステムとしてUSBメモリーにバックアップしておく。