手当たり次第に書くんだ

飽きっぽいのは本能

CentOS 8 管理ユーザーの作成と su コマンドの制限

目次に戻る

概要

suが可能なユーザーを制限します。sudoとは別です。

前提条件

OS

CentOS Stream 8を使用します。

SELinux

有効です。無効にする場合はこちらを参照して下さい。

Firewalld

無効です。有効化する場合はこちらを参照して必要な許可設定をして下さい。

所感

本稿の設定により一般ユーザーがsuコマンドでrootへのアクセス試行を防止できますが、合わせてSSHのrootログインも無効化したほうが良いでしょう。尚、対象のCentOSの管理者が1人であれば敢えて管理ユーザーを作成するメリットは多くありません。逆に通常使用しない管理不行き届きのユーザーが存在することがセキュリティリスクにつながる場合もあります。

設定

管理ユーザー

ここでいう管理ユーザーはsuコマンドが実行可能なユーザーを差します。ユーザー名、グループ名、番号等は任意です。wheelグループに含めます。

[root@centos ~]# groupadd -g 1000 myadmin
[root@centos ~]# useradd -g 1000 -u 1000 myadmin
[root@centos ~]# usermod -G wheel myadmin
[root@centos ~]# passwd myadmin

追加した内容は下記のコマンドで確認できます。

[root@centos ~]# id myadmin
uid=1000(myadmin) gid=1000(myadmin) groups=1000(myadmin),10(wheel)

/etc/pam.d/su

suのデフォルト値

コメント行等を削除した/etc/pam.d/suは下記の通りです。

#%PAM-1.0
auth required pam_env.so
auth sufficient pam_rootok.so
auth substack system-auth
auth include postlogin
account sufficient pam_succeed_if.so uid = 0 use_uid quiet
account include system-auth
password include system-auth
session include system-auth
session include postlogin
session optional pam_xauth.so

suの設定

PAMモジュール(pam_wheel.so)を使用してsuが可能なユーザーを制限します。対象の設定ファイルは/etc/pam.d/suです。以降、wheelグループに含まれるユーザーのみがsuコマンドを使用できます。

[root@centos ~]# vim /etc/ssh/sshd_config
#%PAM-1.0
auth required pam_env.so
auth sufficient pam_rootok.so
auth required pam_wheel.so use_uid
auth substack system-auth
auth include postlogin
account sufficient pam_succeed_if.so uid = 0 use_uid quiet
account include system-auth
password include system-auth
session include system-auth
session include postlogin
session optional pam_xauth.so

仮にwheelグループに含まれないユーザーからsu -(rootへのスイッチ)を実行すると、下記のようにパスワードを求められますが、正しいパスワードを入力しても拒否されます。誤ったパスワードを入力した場合でも同じ結果となります。尚、su自体の制限となるため、root以外へのsuも全て禁止されます。

[user@centos ~]$ su -
パスワード:
su: 拒否されたパーミッション

目次に戻る

CentOS 8 管理ユーザーの作成と su コマンドの制限

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る