VsFTPd – LDAP – PAM

我正在尝试configurationVsFTPd服务器以再次validationLDAP服务器。 这可能很简单,但是由于这是我第一次使用LDAP和PAM,所以我遇到了一些困难。 VsFTPd在Ubuntu Server 11.04上运行,LDAP在10.10 Ubuntu服务器上是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 

根据man ldap.conf

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

URIscheme可以是ldapldapsldapi中的任何一种 ,分别指TCP上的LDAP,SSL上的LDAP(TLS)和IPC上的LDAP(UNIX域套接字)。

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

好的,这个问题的一部分已经解决了。 这里是工作/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 

在此之后,仍然有一些工作需要在FTP服务器上正确地chroot LDAP用户,但现在他们可以login了。

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