无法在 Debian Lenny 上配置 PAM + LDAP - 服务器日志中出现错误 = 49

无法在 Debian Lenny 上配置 PAM + LDAP - 服务器日志中出现错误 = 49

我一直在使用 Ubuntu 10.04 迁移一些服务器和桌面,以便将用户从旧的 OpenLDAP 实现迁移到较新的 Centos Active Directory。到目前为止,我还没有遇到任何问题,直到我到达 Debian Lenny 服务器。

我已像其他服务器一样设置了服务器,设置了 /etc/ldap.conf 和 /etc/ldap/ldap.conf。但是,当我发出“getent passwd”时,没有从 LDAP 服务器获取任何信息。

阅读 pam_ldap 手册页后,我意识到 /etc/ldap.conf 不是 pam_ldap 接受的文件(虽然它可以在 Ubuntu 上使用),因此我将其重命名为 /etc/pam_ldap.conf。结果相同。但是,一旦我更改了此文件的名称,当我使用 SSH 登录时,我会在 LDAP 服务器日志中看到以下内容:

[20/Jul/2012:11:19:40 +0200] conn=16501 fd=155 slot=155 connection from x.x.x.50 to 10.1.176.237
[20/Jul/2012:11:19:40 +0200] conn=16501 op=0 BIND dn="uid=ubuntu,ou=Applications,ou=CITIUS,dc=inv,dc=usc,dc=es" method=128 version=3
[20/Jul/2012:11:19:40 +0200] conn=16501 op=0 RESULT err=0 tag=97 nentries=0 etime=0 dn="uid=ubuntu,ou=applications,ou=citius,dc=inv,dc=usc,dc=es"
[20/Jul/2012:11:19:40 +0200] conn=16501 op=1 SRCH base="ou=People,ou=CITIUS,dc=inv,dc=usc,dc=es" scope=2 filter="(uid=jorge.suarez)" attrs=ALL
[20/Jul/2012:11:19:40 +0200] conn=16501 op=1 RESULT err=0 tag=101 nentries=1 etime=0 notes=U
[20/Jul/2012:11:19:40 +0200] conn=16501 op=2 BIND dn="uid=jorge.suarez,ou=People,ou=CITIUS,dc=inv,dc=usc,dc=es" method=128 version=3
[20/Jul/2012:11:19:40 +0200] conn=16501 op=2 RESULT err=49 tag=97 nentries=0 etime=0

密码无效。我不知道这可能是错误的,其他一切似乎都正常。该用户/密码在其他客户端上有效:

[20/Jul/2012:11:29:39 +0200] conn=16528 fd=188 slot=188 connection from x.x.x.224 to 10.1.176.237
[20/Jul/2012:11:29:39 +0200] conn=16528 op=0 BIND dn="uid=ubuntu,ou=Applications,ou=CITIUS,dc=inv,dc=usc,dc=es" method=128 version=3
[20/Jul/2012:11:29:39 +0200] conn=16528 op=0 RESULT err=0 tag=97 nentries=0 etime=0 dn="uid=ubuntu,ou=applications,ou=citius,dc=inv,dc=usc,dc=es"
[20/Jul/2012:11:29:39 +0200] conn=16528 op=1 SRCH base="ou=People,ou=CITIUS,dc=inv,dc=usc,dc=es" scope=2 filter="(uid=jorge.suarez)" attrs=ALL
[20/Jul/2012:11:29:39 +0200] conn=16528 op=1 RESULT err=0 tag=101 nentries=1 etime=0 notes=U
[20/Jul/2012:11:29:39 +0200] conn=16528 op=2 BIND dn="uid=jorge.suarez,ou=People,ou=CITIUS,dc=inv,dc=usc,dc=es" method=128 version=3
[20/Jul/2012:11:29:39 +0200] conn=16528 op=2 RESULT err=0 tag=97 nentries=0 etime=0 dn="uid=jorge.suarez,ou=people,ou=citius,dc=inv,dc=usc,dc=es"

我使用 SSHA 在 LDAP 服务器上存储密码。也许 Debian Lenny 不支持此功能?

在 pam_ldap.conf 上,我已经设置了此项,就像在所有其他服务器中一样:

# Do not hash the password at all; presume
# the directory server will do it, if
# necessary. This is the default.
pam_password md5

也尝试过 clear,但是没用。不管怎么说,奇怪的是,发出 getent passwd 仍然没有得到任何用户。

但是,如果我使用 libpam-dotfile 包中的 pamtest 来测试登录,它就可以工作。

# pamtest ssh jorge.suarez
Trying to authenticate <jorge.suarez> for service <ssh>.
Password: 
Authentication successful.
# pamtest foo jorge.suarez
Trying to authenticate <jorge.suarez> for service <foo>.
Password: 
Authentication successful.

但是“su”也不起作用:

# su jorge.suarez
Id. descoñecido: jorge.suarez

仅来自 getent passwd 的输出:

# getent passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
proxy:x:13:13:proxy:/bin:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
list:x:38:38:Mailing List Manager:/var/list:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
libuuid:x:100:101::/var/lib/libuuid:/bin/sh
Debian-exim:x:101:103::/var/spool/exim4:/bin/false
statd:x:102:65534::/var/lib/nfs:/bin/false
sshd:x:104:65534::/var/run/sshd:/usr/sbin/nologin
luser:x:1000:1000:Usuario local de Burdeos,,,:/home/luser:/bin/bash
messagebus:x:105:107::/var/run/dbus:/bin/false
sge-admin:x:1001:1001:Administrador do SGE,,,:/home/cluster/sge-admin:/bin/bash
ntp:x:107:110::/home/ntp:/bin/false
haldaemon:x:108:111:Hardware abstraction layer,,,:/var/run/hald:/bin/false
vde2-net:x:109:114::/var/run/vde2:/bin/false
uml-net:x:110:115::/home/uml-net:/bin/false
polkituser:x:111:116:PolicyKit,,,:/var/run/PolicyKit:/bin/false
Debian-pxe:x:113:65534:Dummy user for Debian pxe package,,,:/home/Debian-pxe:/bin/false

Nscd 从一开始就被停止了。

答案1

我已经迁移到 libpam-ldapd,现在一切正常。

我只需要在名为“/etc/nslcd.conf”的新文件上重新进行配置。libpam-ldapd 比 libpam-ldap 好得多。

最有趣的是,它依赖于一个守护进程,因此您只需使用调试参数(“nslcd -d”)调用守护进程,并查看是否某些东西没有按预期工作,配置中是否存在某些警告等。

Ubuntu 10.04 有 libpam-ldapd 0.7.x,缺少一些有趣的选项。最好使用 PPA 获得 0.8.x。Debian Squeeze 已经有 0.8.x 版本,我已经在 Lenny 上安装了它,没有出现问题。

相关内容