Active Directory管理者グループのメンバーが無効なパスワードを使用しているSUDOの成功

Active Directory管理者グループのメンバーが無効なパスワードを使用しているSUDOの成功

環境:

  OS: FreeBSD 12.1-Release-p10
  Sudo: 1.9.5p2
  Samba: 4.13.1_1

我々は最近、DNS、DHCP、および内部SSOのサポートを提供するためにActive Directoryバックエンドに移行しました。 PAMを使用してSamba / Winbindd設定で認証しながら、SSHログインは正常に機能します。 ADグループのメンバーシップを通じて、誰がsudoを使用できるかを制御したい(現在のルートと同じ)。

そのために、ADに「Unix Admins」という新しいグループを作成し、ローカルユーザーやWheelグループと同様に、sudoにそのメンバーシップを確認させたいと思います。これを行うには、既存のホイール項目をコピーし、次のように2セットのチェックラインを設定しました。

%wheel ALL=(ALL) ALL
%Unix\ Admins ALL=(ALL) ALL  

Wheelまたは新しいグループに属していないADユーザーがログインしてsudoを使用しようとすると、予想どおりsudoersファイルにないという一般的なエラーが表示されます。彼らはいつはいホイールの代わりにADグループはパスワードの入力を求められ、パスワードを正しく入力するとコマンドが期待どおりに実行されます。

しかし、彼らが入るとき間違ったパスワードを入力すると、状況を考慮すると少し秘密のエラーメッセージが表示され、正しいパスワードを入力したかのようにコマンドが実行されます。

エラーは次のように発生します。

% sudo ls
Password:
When trying to update a password, this return status indicates that the value provided as the current password is not correct.
<<ls output here>>

編集:明確にするために編集されました。

編集2:/etc/pam.d&/usr/local/etc/pam.d関連コンテンツ

/usr/local/etc/pam.d/sudo

#
# $FreeBSD: branches/2021Q1/security/sudo/files/pam.conf 340872 2014-01-24 00:14:07Z mat $
#
# PAM configuration for the "sudo" service
#

# auth
auth            include         system

# account
account         include         system

# session
# XXX: pam_lastlog (used in system) causes users to appear as though
# they are no longer logged in in system logs.
session         required        pam_permit.so

# password
password        include         system

/etc/pam.d/system

#
# $FreeBSD: releng/12.1/lib/libpam/pam.d/system 197769 2009-10-05 09:28:54Z des $
#
# System-wide defaults
#

# auth
auth            sufficient      pam_opie.so             no_warn no_fake_prompts
auth            requisite       pam_opieaccess.so       no_warn allow_local
#auth           sufficient      pam_krb5.so             no_warn try_first_pass
#auth           sufficient      pam_ssh.so              no_warn try_first_pass
auth            sufficient      pam_unix.so             no_warn try_first_pass nullok
auth            sufficient      pam_winbind.so          try_first_pass

# account
#account        required        pam_krb5.so
account         required        pam_login_access.so
account         required        pam_unix.so

# session
#session        optional        pam_ssh.so              want_agent
session         required        pam_lastlog.so          no_fail

# password
#password       sufficient      pam_krb5.so             no_warn try_first_pass
password        required        pam_unix.so             no_warn try_first_pass

ベストアンサー1

これはあなたの問題です」システムファイルが含まれるように変更され、pam_winbindモジュールpam_unixrequired次のように変更されました。sufficient」。

時間をかけて読む価値が十分です4.1章~のLinux PAM管理者ガイド(はい、私はあなたがFreeBSDを使用していることを知っています。)ここで説明する詳細を理解できるようにしてください。

pam_unixに設定するとrequiredすぐに返されます。成功または失敗するパスワードの有効性によって異なります。変えるとsufficientただ戻ってくる成功しかし、それ以外は続けてください。これで失敗モードはありません

これでスタックauthが戻ることができます成功またはデフォルト値は次のとおりです。成功。この問題を解決するには、deny最後のスタック項目としてaを追加してください。auth

# auth
auth            sufficient      pam_opie.so             no_warn no_fake_prompts
auth            requisite       pam_opieaccess.so       no_warn allow_local
auth            sufficient      pam_unix.so             no_warn try_first_pass nullok
auth            sufficient      pam_winbind.so          try_first_pass
auth            required        pam_warn.so
auth            required        pam_deny.so

pam_warnPAMが認証失敗を記録しないようにするには、このエントリにコメントを追加します。


PAMスタックに役立つキーワード

  • required- 失敗すると、最終的にスタックが返されます。失敗するしかし、残りのモジュールを実行した後にのみ可能
  • requisite-失敗するすぐに返されます
  • sufficient-成功そうでない限りすぐに返されます。失敗するrequired保留中

おすすめ記事