Pam LDAP请求返回错误凭据(49)

我正尝试使用Debian jessy中的ldap将SLA11服务器设置为pamauthentication,但没有成功。 我总是收到一个错误的凭据返回althoug它可以成功地绑定我们的ldapsearch 。 以下是我执行的情况下的ldap日志输出:

 ldapsearch -D uid=testuser,ou=people,dc=our-domain,dc=de -W -H ldap://192.168.100.11 'uid=testuser' slapd[4628]: conn=1072 fd=18 ACCEPT from IP=192.168.100.12:59539 (IP=0.0.0.0:389) slapd[4628]: conn=1072 op=0 BIND dn="uid=testuser,ou=people,dc=our-domain,dc=de" method=128 slapd[4628]: conn=1072 op=0 BIND dn="uid=testuser,ou=people,dc=our-domain,dc=de" mech=SIMPLE ssf=0 slapd[4628]: conn=1072 op=0 RESULT tag=97 err=0 text= slapd[4628]: conn=1072 op=1 SRCH base="ou=people,dc=our-domain,dc=de" scope=2 deref=0 filter="(uid=testuser)" slapd[4628]: conn=1072 op=1 SEARCH RESULT tag=101 err=0 nentries=1 text= slapd[4628]: conn=1072 op=2 UNBIND slapd[4628]: conn=1072 fd=18 closed 

使用以下/etc/pam_ldap.conflogin尝试:

 host 192.168.100.11 base ou=people,dc=our-domain,dc=de ldap_version 3 

结果是

 slapd[4628]: conn=1073 fd=18 ACCEPT from IP=192.168.100.12:59540 (IP=0.0.0.0:389) slapd[4628]: conn=1073 op=0 BIND dn="" method=128 slapd[4628]: conn=1073 op=0 RESULT tag=97 err=0 text= slapd[4628]: conn=1073 op=1 SRCH base="ou=people,dc=our-domain,dc=de" scope=2 deref=0 filter="(uid=testuser)" slapd[4628]: conn=1073 op=1 SEARCH RESULT tag=101 err=0 nentries=1 text= slapd[4628]: conn=1073 op=2 BIND dn="uid=testuser,ou=people,dc=our-domain,dc=de" method=128 slapd[4628]: conn=1073 op=2 RESULT tag=97 err=49 text= slapd[4628]: conn=1073 op=3 BIND dn="" method=128 slapd[4628]: conn=1073 op=3 RESULT tag=97 err=0 text= slapd[4628]: conn=1073 op=4 BIND dn="uid=testuser,ou=people,dc=our-domain,dc=de" method=128 slapd[4628]: conn=1073 op=4 RESULT tag=97 err=49 text= slapd[4628]: conn=1073 op=5 BIND dn="" method=128 slapd[4628]: conn=1073 op=5 RESULT tag=97 err=0 text= slapd[4628]: conn=1073 op=6 UNBIND slapd[4628]: conn=1073 fd=18 closed 

并使用以下/etc/pam_ldap.conflogin尝试:

 host 192.168.100.11 base ou=people,dc=our-domain,dc=de ldap_version 3 rootbinddn cn=adminaccount,ou=daemonadmins,dc=our-domain,dc=de 

结果是

 slapd[4628]: conn=1076 fd=18 ACCEPT from IP=192.168.100.12:59543 (IP=0.0.0.0:389) slapd[4628]: conn=1076 op=0 BIND dn="cn=adminaccount,ou=daemonadmins,dc=our-domain,dc=de" method=128 slapd[4628]: conn=1076 op=0 BIND dn="cn=adminaccount,ou=daemonadmins,dc=our-domain,dc=de" mech=SIMPLE ssf=0 slapd[4628]: conn=1076 op=0 RESULT tag=97 err=0 text= slapd[4628]: conn=1076 op=1 SRCH base="ou=people,dc=our-domain,dc=de" scope=2 deref=0 filter="(uid=testuser)" slapd[4628]: conn=1076 op=1 SEARCH RESULT tag=101 err=0 nentries=1 text= slapd[4628]: conn=1076 op=2 BIND anonymous mech=implicit ssf=0 slapd[4628]: conn=1076 op=2 BIND dn="uid=testuser,ou=people,dc=our-domain,dc=de" method=128 slapd[4628]: conn=1076 op=2 RESULT tag=97 err=49 text= slapd[4628]: conn=1076 op=3 BIND dn="cn=adminaccount,ou=daemonadmins,dc=our-domain,dc=de" method=128 slapd[4628]: conn=1076 op=3 BIND dn="cn=adminaccount,ou=daemonadmins,dc=our-domain,dc=de" mech=SIMPLE ssf=0 slapd[4628]: conn=1076 op=3 RESULT tag=97 err=0 text= slapd[4628]: conn=1076 op=4 BIND anonymous mech=implicit ssf=0 slapd[4628]: conn=1076 op=4 BIND dn="uid=testuser,ou=people,dc=our-domain,dc=de" method=128 slapd[4628]: conn=1076 op=4 RESULT tag=97 err=49 text= slapd[4628]: conn=1076 op=5 BIND dn="cn=adminaccount,ou=daemonadmins,dc=our-domain,dc=de" method=128 slapd[4628]: conn=1076 op=5 BIND dn="cn=adminaccount,ou=daemonadmins,dc=our-domain,dc=de" mech=SIMPLE ssf=0 slapd[4628]: conn=1076 op=5 RESULT tag=97 err=0 text= slapd[4628]: conn=1076 op=6 UNBIND slapd[4628]: conn=1076 fd=18 closed 

对我来说,它看起来像密码实际上是错误的,因为searchfind条目。 我还尝试了/etc/pam_ldap.confpam_password条目的不同设置,没有任何可见的更改。

ldapsearch相比, PAM如何将密码发送到LDAP服务器有什么不同?

问题原来是本地账户。 我注意到我可以通过提供其本地或LDAP密码login现有的本地帐户。 在后一种情况下,它将在LDAP服务器上成功绑定。

要允许用户没有exocal本地帐户,我必须安装libpam-mkhomedir并将其添加到/etc/pam.d/common-session (以及删除只针对我的情况的ssh组成员要求)。 现在login没有出现本地帐户工作。

我无法解释缺less的本地帐户如何在LDAP服务器上导致绑定失败,因为日志显示没有解释任何types的不同行为。 如果有人能分享一些这个我会很感兴趣发现。

尝试在debugging模式下运行sshd:

 /usr/sbin/sshd -d -D -e -p 2222 

然后尝试在ssh中触发错误:

 ssh -p 2222 youruser@yourhost 

请分享从sshd的debugging日志。 这可以让我们更接近这里的问题。