ほっしーの技術ネタ備忘録

技術ネタの備忘録です。基本的に私が忘れないためのものです。他の人の役にも立つといいなぁ。

su のセキュリティを少し向上させる tips


su コマンドって、パスワードさえわかればどのユーザにでもなれて便利なんですが、
その半面、サーバ内のユーザがどれか一つでも割れると被害が拡大する危険があります。


jail 内システムのように、そもそも root に昇格する必要がない場面などでは無効化しておきたいものですが、逆に root から一般ユーザに権限降格してから作業がしたいので、完全無効化はあまり美味しくありません。


そこで、wheel グループからはどのユーザにもなれるけど、それ以外は一切使用禁止する設定です。

# /etc/pam.d/su
10c10
< auth   requisite    pam_group.so   no_warn group=wheel root_only fail_safe
---
> auth   requisite    pam_group.so   no_warn group=wheel fail_safe


/etc/pam.d/su の pam_group.so のオプションから root_only を外します。
この行は元々「root になる場合は元々 wheel グループのメンバーである必要がある」という制約なんですが、
これを「(いつでも)元々 wheel グループのメンバーである必要がある」という制約に書き変えます。


書き変え前は一般ユーザから su をすると

$ su another
Password:
su: Sorry
$ _

このようにパスワードを聞かれてから失敗しますが、書きかえると

$ su another
su: Sorry
$ _

そもそもパスワードさえ聞かれなくなります。


また、root からの権限降格はこれまで通りパスワードなしで通ります。

# su hossy
$ _