LoginSignup
5
10

More than 3 years have passed since last update.

suの利用を制限する方法

Last updated at Posted at 2019-10-12

suを使用制限すると?

一部を除いたLinux初期設定では全ユーザがsuを使用することで、rootユーザになることが出来てしまいます。rootのパスワードが分ってしまえば誰でもssh経由でrootになれてしまいますのでセキュリティ上まずい場面もあると思います。今回は「su」を実行出来るユーザを制限する事にしました。

注意点

この設定を行うと以下2点が実行できなくなります。
  ・wheelグループ以外のユーザが「su」コマンドでrootになれなくなります。
  ・他ユーザにもsuすることが出来なくなります。

今回はwheelグループに所属しているユーザだけが「su」実行可能という制限設定を構築していきたいと思います。

具体的実行ステップ 設定項目

下記3ステップでsu利用制限させる事が出来ます。

  ステップ1 /etc/pam.d/su を編集する

  ステップ2 su 許可ユーザをwheelグループに追加

  ステップ3 動作確認

※ 以前は「/etc/login.defs」ファイル内に「SU_WHEEL_ONLY yes」設定追加が必要でしたが、CentOS6及びCentOS7では不要です。

ステップ1 /etc/pam.d/su

/etc/pam.d/su のファイルの中にある「pam_wheel.so」モジュールを使用するように設定変更します。これによりwheelグループに属しているユーザだけが「su」が出来るように設定が変更になります。

# vi /etc/pam.d/su

どこを変更するのか 設定内容変更箇所

下記コメントで無効化されている箇所の「#」を外して設定を有効化します。

変更前

# Uncomment the following line to require a user to be in the "wheel" group.
#auth           required        pam_wheel.so use_uid

変更後

# Uncomment the following line to require a user to be in the "wheel" group.
auth           required        pam_wheel.so use_uid

※別OS(ディストリビューション)やバージョンによっては、以下設定の場合もあります。

#auth required /lib/security/$ISA/pam_wheel.so use_uid
#auth required /lib/security/pam_wheel.so group=wheel
#auth required /lib/security/pam_wheel.so use_uid group=wheel

ちょい注意ポイント sufficient

間違って下記部分のコメントをはずすと wheelグループに属しているユーザが「su」を実行するとパスワードなしでrootになれてしまいます。コメントを外す時は間違えないよう十分に注意してください。

# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth           sufficient      pam_wheel.so trust use_uid

設定を有効化させるのは「required」です。

ステップ2 ユーザをwheelグループに追加

「su」を許可するユーザをwheelグループへ追加します。追加方法は2つあります。下記のどちらかの方法で行うことが出来るのでそれぞれの方法を説明していきます。

グループを追加する方法は2つある
 1. /etc/groupを編集する
 2. usermodコマンドを使用する

1つめ /etc/groupファイルを編集

グループの設定ファイルである「/etc/group」を直接編集して、wheelグループにユーザを追加します。

# vi /etc/group

編集内容
今回は、hogeというユーザをwheelグループに追加してみます。複数のユーザを追加する際は「,」で区切っていきます。

編集前

wheel:x:10:

編集後

wheel:x:10:hoge  <--hogeユーザを追加しました。

2つめ usermod コマンドを使用

「usermod」コマンドを使用しwheelグループにユーザを追加する場合は「-G」オプションを使用し指定したユーザの副グループを指定します。

# usermod -G wheel ユーザ名

wheelグループにhogeユーザを追加する場合は、下記のようにコマンドを実行します。

# usermod -G wheel hoge

グループがユーザに追加しているか設定を確認

設定が完了しましたら、念のため「/etc/group」ファイルの中身を確認してwheelグループにユーザが追加されているか確認してみましょう。

# grep wheel /etc/group
wheel:x:10:hoge

ステップ3 動作確認

設定が完了しましたらsu実行可能userが制限できているか確認します。設定に間違いなどがあった場合ssh経由でrootになることが出来なくなる場合があるので、現在接続しているrootユーザでの接続は動作確認が取れるまで絶対に切断しないよう留意してください。sshで接続して動作確認を行う場合は、新規に接続を行って動作確認を行いましょう。

wheelグループ以外のユーザで「su」を実行

wheelグループに登録されていないユーザで「su」コマンドを実行します。CentOS7の場合下記の通り「拒否されたパーミッション」といったメッセージが表示され「su」が出来なくなっているはずです。CentOS6の場合は「パスワードが違います」といったメッセージが表示され、「su」が出来なくなっているはずです。

$ su -
パスワード:
su: 拒否されたパーミッション
$ su -
Password:
su: パスワードが違います

wheelグループのユーザで「su」を実行する

wheelグループに所属しているユーザで「su」を実行して、rootになれるか確認してみてください。問題なくrootユーザになれるようでしたら、設定作業は完了となります。

余談

他の記事も参考にさせていただきながら実際に制限して思ったのですが、信頼できる仲間やシステム業者の方々と構築していく環境を整備していく方が楽しいし安心できるとおもいました。もちろん今回の実行権限をシステム制御する事は有効です。同時に例えば万全な制御をしない時に仲間からアラートで知らせてくれるような構築メンバーとの信頼関係を日頃から築いている事もかなり重要だと感じました。

5
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
10