Raspberry Pi 3のセキュリティ対策を行う

サーバー用途としてインストールしたRASPBIAN JESSIE LITEだけど、テスト用ならまだしも、外部に公開するにはそのままの状態では、非常によろしくないのでセキュリティ対策を行ったメモ。以下、SSHでTera Termで接続して設定した。
rootパスワードの設定
初期状態ではrootのパスワードが未設定なので、初期ユーザーのpiでログインしてrootのパスワードを設定する。
$ sudo passwd root
ユーザー名を変更する
初期ユーザーのpiは削除すると不都合が起こりそうな(気がする)ので、削除ではなくそのまま生かして、変更するようにした。引き続きpiでログインしたまま以下の設定を行う。
rootログインを許可する
piを変更するのにpiでログインしては変更できない。そのために新しいユーザーを作るのもなということで、一時的にrootログインを許可する。
$ sudo nano /etc/ssh/sshd_configPermitRootLogin yes
sshサービスを再起動して、piはログアウトする。
$ sudo service ssh restart
$ exit
ユーザー名を変更する
改めてrootでログインする。以下、piをnewpiというユーザー名に変更する例。
$ usermod -l newpi pi
$ usermod -d /home/newpi -m newpi
$ groupmod -n newpi pi
SSHの設定ファイルを書き替える
ついでにそのままrootでログインしたまま設定を行う。まず、上で許可したrootでのログインを禁止する。Port番号も変更しておく。スキャンされたら大して意味はないのかもしれないけど一応ね。Port番号は49152–65535が自由に使えるPortとされているので、好きなPort番号で。
$ nano /etc/ssh/sshd_configPort 60000
PermitRootLogin no
sshサービスを再起動して、rootをログアウトする。その後、Tera Termなどのターミナルからrootでのログインが出来なくなっているか、また設定したPort番号で接続できるか確認する。もちろん、肝心のpiから変更したユーザー名でログインできるか確認する。
$ service ssh restart
$ exit
RASPBIAN STRETCH LITE(August 2017)の場合
デフォルトではsshは自動起動されていなかった。chkconfigでsshを自動起動しようとしてもエラーで設定できないので、以下のコマンドで自動起動の設定を行う。
$ sudo systemctl enable ssh
パスワードを変更する
無事、piから変更した新しいユーザー名でログイン出来たら、パスワードを変更する。ユーザー名を変更しただけなので、パスワードはpiユーザーの初期パスワードのままになっているから念のため変更しておく。
$ passwd newpi
    この記事で書かれている製品やソフトについて
  • Raspberry Pi 3 Model B
  • RASPBIAN JESSIE LITE(September 2016)