Raspbian Jessieの基本セキュリティ設定を実施する

2019年11月5日

Raspbian jessieの基本セキュリティ設定です。
デフォルト設定のままでは簡単に不正ログインされないことを目的とした設定をします。
コマンド実行例の部分は、入力が必要な部分に★印とコメントを記載しています。

rootユーザのパスワードを設定する

Linux(RaspbianもLinuxの一つ)には、rootユーザという全ての権限を持ったユーザが存在します。
rootユーザの権限が奪われてしまうと、システムが乗っ取られてしまうため、きちんとパスワードを設定しておきましょう。

rootユーザのパスワード設定コマンド実行例

$ sudo passwd root★rootユーザのパスワードを変更するコマンドを入力します。
新しい UNIX パスワードを入力してください:★任意のパスワードを入力
新しい UNIX パスワードを再入力してください:★再度パスワードを入力
passwd: パスワードは正しく更新されました

デフォルトのpiユーザ以外のユーザを作成する

piユーザが存在することは、みんな知っています。なので、piユーザのパスワードを総当りで攻撃されると、いずれpiユーザでログインされてしまいます。
そのため、piユーザとは異なるユーザを作って、piユーザを削除しておきましょう。

piユーザでログインしながらpiユーザを削除することはできないので、まずは新しいユーザを作成します。

piyopiyoというユーザを追加するコマンド実行例

$ sudo adduser piyopiyo★ユーザを追加するコマンドを入力します。

ユーザー `piyopiyo' を追加しています...
新しいグループ `piyopiyo' (1001) を追加しています...
新しいユーザー `piyopiyo' (1001) をグループ `piyopiyo' に追加しています...
ホームディレクトリ `/home/piyopiyo' を作成しています...
`/etc/skel' からファイルをコピーしています...

新しい UNIX パスワードを入力してください:★任意のパスワードを入力
新しい UNIX パスワードを再入力してください:★再度パスワードを入力
passwd: password updated successfully
Changing the user information for hogehoge
Enter the new value, or press ENTER for the default
Full Name :★そのままEnterでOK
Room Number :★そのままEnterでOK
Work Phone :★そのままEnterでOK
Home Phone :★そのままEnterでOK
Other []:★そのままEnterでOK
以上で正しいですか? [Y/n] ★yを入力

piユーザを削除する

piユーザを削除するために、先ほど作成した新しいユーザでRaspbianにログインしましょう。
sshでログインしていた場合は、exitで抜けて、先ほど作成した新しいユーザでログインしましょう。
GUIでログインしていた場合は、ログアウトして、先ほど作成した新しいユーザでログインしましょう。

事前準備

ユーザを削除するために、rootユーザにスイッチしましょう。

ユーザを削除するにはroot権限(スーパーユーザ権限)が必要ですが、先ほど新しく作成したユーザにはroot権限が無いため、rootユーザにスイッチします。

$ su - ★rootユーザ(スーパーユーザ)にスイッチするコマンドを実行
パスワード:★rootユーザのパスワードを入力
#★プロンプトが"$"から"#"になったことを確認。("$"が一般のユーザで、"#"がrootユーザ)

参考ですが、root権限の無いユーザで、ユーザを削除しようとすると以下のようなエラーになります。

$ userdel -r pi
userdel: Permission denied.
userdel: /etc/passwd をロックできません。後でもう一度試してください。

もう一つ参考ですが、sudo権限が無い状態で削除しようとすると以下のようなエラーになります。

$ sudo userdel -r pi
>>> /etc/sudoers: syntax error near line 29 <<<
sudo: /etc/sudoers 内 29 行付近で構文解析エラーが発生しました
sudo: 有効な sudoers のソースが見つかりません。終了します
sudo: ポリシープラグインを初期化できません

piユーザの削除

rootユーザでpiユーザを削除します。

piユーザの削除コマンド

# userdel -r pi★piユーザを削除するコマンドを実行
userdel: pi のメールスプール (/var/mail/pi) がありません★こちらのメッセージが出ても問題なしです。(存在しないものを削除しようとしただけ)

sudo権限の削除

ユーザにsudo権限を与えていると、そのユーザでsudoを実行するだけでrootユーザと同じことができてしまうので、rootユーザにパスワードをつけている意味が無いです。

従いまして、一般ユーザではsudoができないように設定しましょう。

vi等で、/etc/sudoersファイルを編集

# vi /etc/sudoers

一番下のほうにある、以下の行をコメントアウト。(行の最初に"#"をつける)

変更前

pi ALL=(ALL) NOPASSWD: ALL

変更後

#pi ALL=(ALL) NOPASSWD: ALL

その他

rootユーザでのsshログイン無効化も実施しようと思いましたが、デフォルトで無効化されていましたのでこちらは設定不要です。