私はsamba/winbind/PAMルートを使用して、Active DirectoryドメインからLinuxサーバー上のユーザーを認証しています。
すべてが機能しますが、認証できるADグループを制限したいと思います。 Winbind/PAMは現在、Active Directoryで有効なユーザーアカウントを許可しており、pam_winbind.soはrequire_membership_of=MYDOMAIN\\mygroup
パラメーターに注意を払っていないようです。 /etc/pam.d/system-auth
または/etc/security/pam_winbind.conf
ファイルで設定してもかまいません。
Winbindにrequire_membership_of
設定を尊重させるにはどうすればよいですか?最新のパッケージでCentOS5.5を使用する。
pdate: PAMはrootであるという事実により、PAMは常にrootに認証の通過を許可していることがわかります。アカウントが存在する限り、rootはauthを渡します。その他のアカウントには、認証の制約が適用されます。
更新2:require_membership_of
は、要求元のユーザーがルートuidを持っている場合を除いて、機能しているようです。その場合、require_membership_of
の設定に関係なくログインは成功します。これは他のアカウントの問題ではありません。現在のユーザーがrootの場合でも、require_membership_of
チェックを強制するようにPAMを構成するにはどうすればよいですか?
現在のPAM構成は以下のとおりです。
auth sufficient pam_winbind.so
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 500 quiet
auth required pam_deny.so
account sufficient pam_winbind.so
account sufficient pam_localuser.so
account required pam_unix.so broken_shadow
password ..... (excluded for brevity)
session required pam_winbind.so
session required pam_mkhomedir.so skel=/etc/skel umask=0077
session required pam_limits.so
session required pam_unix.so
require_memebership_of
は現在/etc/security/pam_winbind.conf
ファイルに設定されており、機能しています(上記のルートケースを除く)。
免責事項:root
のrequire_membership_of
を試してはいけません。 root
がログインできない場合がありますか?ネットワークがダウンするなどの問題が発生した場合、シングルモードで再起動しないとこのマシンを修復できないリスクがあります。
とにかく答えます。
TL; DR:ローカルユーザー(ルートを含む)に対してもメンバーシップを適用する場合は、最初のsufficient
をrequisite
に置き換えます。
require_membership_of
は、pam_winbind.c
(管理グループpassword
に含まれる)およびpam_sm_chauthtok
(管理グループauth
に含まれる)のpam_sm_authenticate
でのみ使用されます。
したがって、ユーザーが必要なメンバーシップを持っていない場合、失敗するPAMステップは次のようになります。
auth [...] pam_winbind.so [...]
あなたはそれを持っていますが、それはsufficient
としてマークされています:
auth sufficient pam_winbind.so
したがって、失敗した場合、PAMはチェーンを通過し続けます。次の停車駅:
auth sufficient pam_unix.so nullok try_first_pass
getent passwd root
が有効なユーザーを返し、getent shadow root
(root
として実行)が有効な暗号化されたパスワードを返し、ユーザーが入力したパスワードが一致する場合、これは成功します。
残りについては説明しませんが、root
がログインできないようにするものは他にありません。
一般的なPAM構成メカニズムの詳細についてはpam.d(5)
を、さまざまなモジュールについてはpam_unix(8)
&coを参照してください。
ADサーバーのグローバルカタログポートを使用できますか?おそらくポート3268(または暗号化されたLDAPの場合は3269)でLDAPプロトコルを話します。
Winbindよりもldapauth&nsswitchモジュールを使用する方が簡単、高速、信頼性が高く、また(上記のHandyman5で提案されているように)pam_accessを使用し、/ etc/security /access.confを編集して誰に許可するかを制御します。ログインする。
この状況では、pam_winbindに頭をぶつける代わりに、だまして pam_access を使用しました。
SIDでグループを参照すると幸運になる場合があります。
グループのSIDを検索します。
wbinfo -n "mygroup"
次に、SID(wbinfoから決定)を使用してrequire_membership_ofを設定します
require_membership_of=S-1-5-21-1757981276-1399067357-839522115-75638
私たちのセットアップでは、これはファイル/etc/security/pam_lwidentity.confの次の行によって制限されています。
require_membership_of = OURDOMAIN\domain^admins