パーソナルツール
現在の場所: ホーム Linuxの設定 suの制限

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