suの制限
suコマンドの制限
環境
今回のメモ(手順)を作る際に使用した環境です。
(この環境以外では設定方法が異なる可能性もあります。)
使用OS CentOS 4.3
なぜsuの使用を制限するの?
多くのLinux初期設定では全てのユーザがsuコマンドを使用することによって、rootユーザになることが出来てしまいます。 rootのパスワードが分ってしまえば、誰でも彼でもrootになれるというのはセキュリィテ上ちょっと問題があるので、su出来るユーザの制限を行うことにします。
パスワード管理の甘いユーザのアカウント経由で攻撃を受けたり、何かの拍子でrootのパスワードを知ってしまったユーザに、色々と設定等をいじられては困りますからね :-p
設定方法
su の使用を制限するには以下の設定を行わなければいけません。
- /etc/login.defsの編集
- /etc/pam.d/suの編集
- su 許可ユーザをwheelグループに追加
/etc/login.defs 編集
/etc/login.defsを編集して、suコマンドはwheelグループに属するユーザのみ使用できるように設定します。
# cp -p /etc/login.defs /etc/login.defs_yyyymmdd
# vi /etc/login.defs
編集項目
デフォルトの設定では「SU_WHEEL_ONLY」項目が無いので以下の設定を追加します。SU_WHEEL_ONLY yes
/etc/pam.d/su 編集
suの認証を行っているモジュールであるpam_wheel.soの設定を変更し、wheelグループに属しているユーザのみ suが出来るように設定変更します。
# cp -p /etc/pam.d/su /etc/pam.d/su_yyyymmdd
# vi /etc/pam.d/su
編集箇所(CentOS 4.3の場合)
CentOS4.3で確認したところ、「ユーザがwheelグループである必要のある場合はコメントを外してね。」(適当な訳ですが・・・)とあるので #を消去して、設定を有効化させます。
編集前
# Uncomment the following line to require a user to be in the "wheel" group.
#auth required /lib/security/$ISA/pam_wheel.so use_uid
編集後
auth required /lib/security/$ISA/pam_wheel.so use_uid
なお、別のOS(ディストリビューション)やバージョンによっては、以下のような設定な場合もあるようです。 上記の設定で上手くsuの使用制限が出来ない場合は、色々と試してみてください。
auth required /lib/security/pam_wheel.so group=wheel
auth required /lib/security/pam_wheel.so use_uid group=wheel
注意
間違ってこちらのコメントをはずしてしまうと、wheelグループに属している ユーザはsuするとパスワードなしでrootになれてしまいます。セキュリティ上問題があるので 間違えないようにしてくださいね。
# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth sufficient /lib/security/$ISA/pam_wheel.so trust use_uid
group 設定
/etc/groupを編集するか、usermodコマンドを使用して、suを許可するユーザをwheelグループに追加します。
/etc/groupファイルを編集する場合
# vi /etc/group
編集箇所
今回は、hogeというユーザのsuを許可するように設定します。
ユーザを追加する際は、「 , 」で区切っていきます。
wheel:x:10:root
wheel:x:10:root,hoge <--hogeユーザを追加
usermod コマンドを使用する場合
usermodコマンドを使用して、hogeユーザの副グループを追加します。# usermod -G wheel hoge
設定確認
設定が完了したら、実際にwheelグループに属していないユーザでsuコマンドを実行してみます。
$ su -
Password:
su: パスワードが違います
正しいパスワードを入れても、パスワードが違いますと表示されてsu出来なくなっているはずです。
注意点
この設定を行うとwheelグループ以外のユーザがsuコマンドでrootになれないだけでは無く、他のユーザにもsuすることが出来なくなります。
su動作検証結果
ユーザのグループ設定
- hogeユーザ wheelグループに属している
- foo ユーザ wheelグループに属していない
- bar ユーザ wheelグループに属していない
hoge から root への su OK
foo から root への su NG
foo から hoge への su NG
foo から bar への su NG

