web-dev-qa-db-ja.com

pam_unix.soの前のpam_ldap.so?可能ですか?

pAM + LDAPを備えたサーバーがいくつかあります。

設定は標準です( http://arthurdejong.org/nss-pam-ldapd/setup または http://wiki.debian.org/LDAP/PAM を参照) 。たとえば、/ etc/pam.d/common-authには次のものが含まれます。

auth sufficient pam_unix.so nullok_secure
auth requisite pam_succeed_if.so uid >= 1000 quiet
auth sufficient pam_ldap.so use_first_pass
auth required pam_deny.so

そしてもちろん、それはldapとローカルユーザーの両方で機能します。ただし、すべてのログインは最初にpam_unix.soに移動し、失敗してから、pam_ldap.soを正常に試行します。その結果、LDAPユーザーのログインごとによく知られている失敗メッセージが表示されます。

pam_unix(<some_service>:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=<some_Host>  user=<some_user>

1日に最大60000のそのようなログメッセージがあり、PAMが最初にLDAP認証を試行し、失敗した場合にのみ、pam_unix.soを試してみるように構成を変更したいと思います(サーバー)。しかし、common-authを次のように変更すると、

auth sufficient pam_ldap.so use_first_pass
auth sufficient pam_unix.so nullok_secure
auth required pam_deny.so

次に、ローカル(非LDAP)ユーザーで(たとえば、ssh経由で)ログインできなくなります。

誰かが正しい構成を知っていますか? Debianとnss-pam-ldapdがデフォルトで最初にpam_unix.soを持っているのはなぜですか?それを変更する方法は本当にありませんか?

前もって感謝します。

追伸ログを無効にしたくありませんが、最初にLDAP認証を設定したいと思います。

3
Andrey Sapegin

hayalciはコメントでそれに答えました:

auth sufficient pam_ldap.so
auth sufficient pam_unix.so nullok_secure try_first_pass
auth required pam_deny.so
1
Andrey Sapegin

ローカルユーザーとネットワークユーザーが別々のuid範囲にいる場合(これは良い考えです)、次のような行を追加できます(ローカルユーザーが0〜4999の範囲にあると仮定します)。

auth [success=1 default=ignore] pam_succeed_if.so uid >= 5000 quiet

pam_unix.so行の前。 uid> = 4999の場合、1行を渡します。pam_ldap.soに直接移動します。

また、pam_ldap.so use_first_passの前にパスワードを要求する行がない場合は、pam_ldap.sopam_ldap.so try_first_passまたはpam_ldap.soに変更する必要があります。

私はでテストします:

auth [success=1 default=ignore] pam_succeed_if.so uid >= 4999 quiet
auth sufficient pam_unix.so nullok_secure
auth requisite pam_succeed_if.so uid >= 4999 quiet
auth sufficient pam_ldap.so
auth required pam_deny.so

きみの:

auth sufficient pam_unix.so nullok_secure  
auth requisite pam_succeed_if.so uid >= 1000 quiet  
auth sufficient pam_ldap.so use_first_pass  
auth required pam_deny.so  

次のように変更します(use_first_passは、前のモジュールのパスワード(pam_ldap.so)を使用することを意味します)

auth sufficient pam_ldap.so  
auth requisite pam_succeed_if.so uid >= 1000 quiet  
auth sufficient pam_unix.so use_first_pass nullok_secure  
auth required pam_deny.so  

短所(hpuxの場合):LDAPサーバーがハングした場合(同期攻撃。 https://fedorahosted.org/389/ticket/47554 を参照)、クライアントもハングします。これはHPUXサーバーで発生します( linuxおよびaixではありません。ldapclientdという名前のhpuxプロセス)。これは、すべてのログインが(ILO/MPからのrootとしても)ブロックされることを意味します。解決策は、サーバーを再起動することです:-(

0
user195455