web-dev-qa-db-ja.com

ADSを介したLinux認証-PAM内の特定のグループのみを許可

私は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ファイルに設定されており、機能しています(上記のルートケースを除く)。

6
Kenaniah

免責事項:rootrequire_membership_ofを試してはいけません。 rootがログインできない場合がありますか?ネットワークがダウンするなどの問題が発生した場合、シングルモードで再起動しないとこのマシンを修復できないリスクがあります。

とにかく答えます。

TL; DR:ローカルユーザー(ルートを含む)に対してもメンバーシップを適用する場合は、最初のsufficientrequisiteに置き換えます。


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 rootrootとして実行)が有効な暗号化されたパスワードを返し、ユーザーが入力したパスワードが一致する場合、これは成功します。

残りについては説明しませんが、rootがログインできないようにするものは他にありません。

一般的なPAM構成メカニズムの詳細についてはpam.d(5)を、さまざまなモジュールについてはpam_unix(8)&coを参照してください。

1
Pierre Carrier

ADサーバーのグローバルカタログポートを使用できますか?おそらくポート3268(または暗号化されたLDAPの場合は3269)でLDAPプロトコルを話します。

Winbindよりもldapauth&nsswitchモジュールを使用する方が簡単、高速、信頼性が高く、また(上記のHandyman5で提案されているように)pam_accessを使用し、/ etc/security /access.confを編集して誰に許可するかを制御します。ログインする。

0
cas

この状況では、pam_winbindに頭をぶつける代わりに、だまして pam_access を使用しました。

0
Handyman5

SIDでグループを参照すると幸運になる場合があります。

グループのSIDを検索します。

wbinfo -n "mygroup"

次に、SID(wbinfoから決定)を使用してrequire_membership_ofを設定します

require_membership_of=S-1-5-21-1757981276-1399067357-839522115-75638
0
elijahbuck

私たちのセットアップでは、これはファイル/etc/security/pam_lwidentity.confの次の行によって制限されています。

require_membership_of = OURDOMAIN\domain^admins
0
ThatGraemeGuy