Day19 Raspberry Piのセキュリティ設定

今回から、Raspberry Piを自宅サーバーとして外部に公開することを意識した作業を開始する。

まずは、Raspberry Piのセキュリティ設定をしなくてはならない。セキュリティといっても、内容は多岐にわたるが、まず行うべきなのがユーザアカウントに関するものである。rootのパスワードはないわ、piユーザのパスワードはみんな知っているわ、sshでパスワードの総当たりに脆弱だわと、問題が多く、デフォルトではとても外部に公開はできません。そこで、最低限抑えておきたいところを設定してきます。

まず、ネットで情報を収集。

#このサイトはとてもまとまっている


#SSH接続に関しての設定

#sshの設定ファイルのセキュリティに関しての細かい設定方法
IT備忘録


############## rootのパスワード設定 #################

#rootのパスワード設定
sudo passwd root
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully

############## piのパスワード設定 #################

sudo passwd pi
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully

##############piユーザのsudo使用時に常にパスワードが必要にする###############
piユーザはデフォルトではsudoコマンドでパスワードが必要とされていません。これは危険なので変更します。まずは、visudoで使用するエディタをvim(3番)に変更します

#visudoのエディタ変更
sudo update-alternatives --config editor
There are 4 choices for the alternative editor (providing /usr/bin/editor).

  Selection    Path                Priority   Status
------------------------------------------------------------
* 0            /bin/nano            40        auto mode
  1            /bin/ed             -100       manual mode
  2            /bin/nano            40        manual mode
  3            /usr/bin/vim.basic   30        manual mode
  4            /usr/bin/vim.tiny    10        manual mode

Press enter to keep the current choice[*], or type selection number: 3
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/editor (editor) in manual mode

#visudoでsudoの設定を変更
sudo visudo
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL                                       

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d
pi ALL=(ALL) NOPASSWD: ALL              #ここをコメントアウトして、新たに設定を付け足す。

こんな感じ
#pi ALL=(ALL) NOPASSWD: ALL
pi ALL=(ALL) PASSWD: ALL

:wq

#テスト
$ sudo su

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.
[sudo] password for pi: 

これでうまくいった。