PAMでADセキュリティグループを指定して、ログインできるドメインユーザーを制限しました。また、ADユーザーのセッションをこのグループに制限しました。これにより、ログインしたユーザーがグループ外のADユーザーに対して「su-」を実行できなくなります。
Winbind uidマッピングは、ADユーザーがUID> = 10000000になるように構成されています。
これらは、以下のPAM構成で期待どおりに機能します。
/ etc/pam.d/system-auth
auth required pam_env.so
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so user ingroup AD_group debug
auth requisite pam_succeed_if.so uid >= 500 quiet
auth sufficient pam_krb5.so use_first_pass
auth sufficient pam_winbind.so use_first_pass
auth required pam_deny.so
account required pam_access.so
account required pam_unix.so broken_shadow
account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 500 quiet
account [default=bad success=ok user_unknown=ignore] pam_krb5.so
account [default=bad success=ok user_unknown=ignore] pam_winbind.so
account required pam_permit.so
password requisite pam_cracklib.so try_first_pass retry=3
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok
password sufficient pam_krb5.so use_authtok
password sufficient pam_winbind.so use_authtok
password required pam_deny.so
session [default=1 success=ignore] pam_succeed_if.so quiet uid >= 10000000
session requisite pam_succeed_if.so user ingroup AD_group debug
session optional pam_mkhomedir.so umask=0077 skel=/etc/skel
session optional pam_keyinit.so revoke
session required pam_limits.so
session optional pam_mkhomedir.so
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so
session optional pam_krb5.so
ここで、AD_group外の特定のADユーザーがログインできるようにルールを追加したいと思います。ファイルの3行目の後に次の行を追加してみました。
auth requisite pam_succeed_if.so user=AD_user_1 debug
ただし、これにより、すべてのADユーザーがログインできるようになりました。
任意の洞察をいただければ幸いです。
認証に成功したすべてのユーザーは興味深いものです。これは、グループメンバーシップテストも無視されていることを意味します。 (上記の私のコメントによると、スキップしているようには見えません)それは私にはsufficient
よりもrequisite
のように聞こえます。
sufficient pam_unix.so
条件に合格するユーザーに対してテストしていないことを再確認しましたか?シャドウテーブルをチェックして、探していないときに誰かがテストプール内のユーザーのローカルパスワードを追加していないことを確認します。
auth
モジュールがスキップされている可能性もあります(SSHキー認証が頭に浮かびます)。その場合、アクセスチェックがauth
ではなくaccount
にあると問題が発生します。 。これが原因であるかどうかにかかわらず、アクセスポリシーに穴がないように、それらをaccount
に移動することをお勧めします。
auth
=認証に関連するもの
account
=承認に関連するもの(アクセスチェック)