我正在尝试配置 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 不是这里的问题。