VsFTPd - LDAP - PAM

VsFTPd - LDAP - PAM

我正在尝试配置 VsFTPd 服务器以再次对 LDAP 服务器进行身份验证。这可能很容易,但由于这是我第一次同时使用 LDAP 和 PAM,因此我遇到了一些困难。VsFTPd 在 Ubuntu Server 11.04 上运行,LDAP 是 10.10 Ubuntu Server 上的 OpenLDAP。我在第一个服务器上禁用了 AppArmor。VsFTPd 无法连接到 LDAP 服务器,在我的系统日志中我有:

vsftpd: pam_ldap: ldap_simple_bind Can't contact LDAP server

LDAP 服务器正常,因为我可以执行ldapsearch

这是我的/etc/pam.d/vsftpd文件:

auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
@include common-account
@include common-session
@include common-auth
auth required pam_ldap.so
account required pam_ldap.so
session required pam_ldap.so
password required pam_ldap.so

这是我的/etc/ldap.conf文件:

base dc=example,dc=com
uri ldapi:///ldap.example.com
ldap_version 3
rootbinddn cn=admin,dc=example,dc=com
pam_password md5
nss_initgroups_ignoreusers a_bunch_of_system_users

有人能帮帮我吗?谢谢。

编辑:/etc/pam.d/vsftpd文件的新版本:

auth    required    pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed

account required    pam_unix.so
account sufficient  pam_ldap.so

session required    pam_limits.so
session required    pam_unix.so
session optimal     pam_ldap.so

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

auth    required    pam_shells.so

答案1

根据man ldap.conf

URI <ldap[si]://[name[:port]] ...>

URI 方案可以是以下任意一种LDAP 目录服务目录服务或者目录服务,分别指的是 LDAP over TCP、LDAP over SSL(TLS)和 LDAP over IPC(UNIX 域套接字)。

因此,改为uri ldapi:///ldap.example.com并重uri ldap:///ldap.example.com试。

答案2

好的,这部分问题已经解决了。这是工作/etc/pam.d/vsftpd文件:

auth                    required                pam_ldap.so
account                 required                pam_ldap.so
password                required                pam_ldap.so

并且您必须将此行添加到/etc/vsftpd.conf

guest_enable=YES

在此之后,还需要进行一些工作才能正确地 chroot FTP 服务器中的 LDAP 用户,但他们现在可以登录了。

再次感谢 Rilindo 的帮助。毕竟,ACL 不是这里的问题。

相关内容