_6.セキュリティ対策(suコマンドの制限)

セキュリティ対策(suコマンドの制限)

su(SwitchUser)コマンドは個人ユーザとしてログイン中のユーザが一時的にrootユーザに切り替わるコマンドです。
PAMを利用してrootユーザに移行できる(suコマンドを実行できる)ユーザをwheelグループに限定することができます。

PAMとは(出典:http://www.atmarkit.co.jp/flinux/samba/sambatips02/sambatips02.html
 PAM(Pluggable Authentication Module)とは、 各種の認証処理を実行するモジュール群と、 それを利用するための標準的なAPI(Application Programming Interface)を備えたライブラリからなるユーザー認証システムのことです。 ユーザーに各種サービスを提供するアプリケーションプログラムは、PAMのAPIを通してPAMモジュールに認証処理を依頼することができます。

PAMの仕組み



wheelグループとは?

デフォルトに wheel というグループが存在しています。 wheelグループに属するユーザは管理者とみなされます。wheelはbig wheel から由来しているという説があり「大物」とか「実力者」とかそういった意味のある言葉のようです。suできる権限をもった者という意味ではwheelグループが利用されます。



●su権限設定(wheel) 

suの利用権限を限定します。
wheelグループに su の利用を許可させたいユーザーを参加させ、wheelグループのみsuができる設定に変更します。


【演習1】

①いいsshでの接続がが鍵認証になっている場合はパスワード認証に戻しておきます(鍵認証にしていない場合は読み飛ばしてください)。

guestユーザでCentOSに接続してsu - でrootにスイッチしsshの設定を変更します。

[guest@aso ~]$ su -
パスワード:
最終ログイン: 2021/09/17 (金) 18:16:10 JST日時 pts/0
[root@aso ~]# vi /etc/ssh/sshd_config
[root@aso ~]#

65行目を変更

PasswordAuthentication no → yes

sshdを再起動 

[[root@aso ~]# systemctl restart sshd
[root@aso ~]#

②ictu1400ユーザを作成してセカンダリーグループを wheel グループに設定します。
# useradd ictu1400
# passwd ictu1400
# id ictu1400
# usermod -G wheel ictu1400 ← セカンダリグループ(サブグループ)が上書きされています!!

[root@inspiron kanatech]# id ictu1400
uid=515(ictu1400) gid=515(ictu1400) 所属グループ=515(ictu1400),10(wheel)
[root@inspiron kanatech]#


usermood -G の注意点(復習)
---------------------------------------------------------------------------------------
【演習2】

さらにguestグループにも所属させるコマンドはどのようになるでしょうか?

[root@inspiron log]# usermod -G ●●●●●●●●●●●●
[root@inspiron log]# id ictu1400
uid=515(ictu1400) gid=515(ictu1400) 所属グループ=515(ictu1400),10(wheel),500(guest)
[root@inspiron log]#
---------------------------------------------------------------------------------------

#usermod -G guest,wheel ictu1400


➂wheelグループの権限設定を変更します。

# vi /etc/pam.d/su

下記のようにコメントを外すことで設定します。

#auth           required        pam_wheel.so use_uid
↓↓
auth       required     pam_wheel.so use_uid



exitでrootを抜けてguestに戻ってください

[root@icv31 home]# exit
logout
[guest@icv31 ~]$

④もうguestユーザはsuできません




⑤ictu1400ユーザはOK!!





【演習3】

su可能なswitchuserを作成してsuできることを確認してください。

(useradd時にオプションでセカンダリの所属グループを指定することもできます)
useradd switchuser -G wheel

useradd switchuser
passwd switchuser
usermod -G wheel switchuser

【演習4】

●su可能なユーザをwheelグループに追加するには以下の方法もあります


グループに追加のコマンドは # gpasswd -a ユーザ名 wheel

# vigr コマンドで/etc/groupファイルは編集できますが危険なのでなるべく使いません(viはもってのほか)

既存のguestユーザをwheelグループに追加してみましょう  

[root@inspiron kanatech]# gpasswd -a guest wheel
Adding user guest to group wheel

[root@inspiron kanatech]# id guest
uid=500(guest) gid=500(guest) 所属グループ=500(guest),10(wheel)
[root@inspiron kanatech]#

これでguestユーザもsuできるようになります。



●wheelグループのメンバの確認は 以下 で行います

[root@inspiron kanatech]# cat /etc/group | grep wheel


●必要のないユーザはwheelグループから削除します

グループから削除のコマンドは # gpasswd -d ユーザ名 wheel

例えば、ictu1400 ユーザを削除してみます

[root@inspiron kanatech]# gpasswd -d ictu1400 wheel
Removing user ictu1400 from group wheel
[root@inspiron kanatech]# cat /etc/group | grep wheel

もう、ictu1400 ユーザはsuできません。


後々、混乱しないために guestユーザ は wheelグループ に参加させたままにしておきます。