我正在尝试build立一个FTP服务器,对LDAP服务器进行身份validation。 这部分完成并工作。 我的服务器是Ubuntu Server 11.04上的VsFTPd。 但是我必须为我的LDAP用户创build主目录。 我正在尝试使用pam_mkhomedir模块,但它不工作:当我将其行添加到/etc/pam.d/vsftpd文件时,我的用户无法再login到FTP服务器。 问题是,我很less有什么错误的信息。 VsFTPd只是响应530: login incorrect ,我找不到方法来从pam_mkhomedir得到debugging或错误消息。
这是我不同的configuration文件。 /etc/pam.d/vsftpd文件:
auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed auth required pam_ldap.so account required pam_ldap.so password required pam_ldap.so session optional pam_mkhomedir.so skel=/home/skel debug
/etc/vsftpd.conf文件:
listen=YES anonymous_enable=NO local_enable=YES write_enable=YES dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES pam_service_name=vsftpd rsa_cert_file=/etc/ssl/private/vsftpd.pem guest_enable=YES session_support=YES log_ftp_protocol=YES tcp_wrappers=YES
/home和/home/skel上的权限:
root@ftp:/home# ls -al total 16 drwxrwxrwx 4 root root 4096 2011-10-11 21:19 . drwxr-xr-x 21 root root 4096 2011-09-27 13:32 .. drwxrwxrwx 2 root root 4096 2011-10-11 19:34 skel drwxrwxrwx 5 foo foo 4096 2011-10-11 21:11 foo root@ftp:/home# ls -al skel/ total 16 drwxrwxrwx 2 root root 4096 2011-10-11 19:34 . drwxrwxrwx 4 root root 4096 2011-10-11 21:19 .. -rwxrwxrwx 1 root root 3352 2011-10-11 19:34 .bashrc -rwxrwxrwx 1 root root 675 2011-10-11 19:34 .profile
是的,我知道,权限设置不正确,但安全问题不是这里的问题:我首先需要解决它的问题。
因此,重述一下:没有pam_mkhomedir我的LDAP用户可以login,但他们不能做任何事情,因为他们在一个空的chroot监狱。 如果我添加pam_mkhomedir,他们不能再login。 如果有人有一个想法,或知道如何从日志中获得更多信息,我将非常感激,谢谢。
简单的答案 – 必须在vsftpd.conf中启用会话支持:
session_support=YES
也许与vsftpd没有直接的关系,但是我用SFTP运行的东西是,pam_mkhomedir.so创build用户拥有的homedir:group – 当然,即使skel文件被root拥有。 但是,使用SFTP的chroot需要root用户:出于安全原因拥有chroot homedir(权限为755)。 即使是由root拥有的skel文件。
看看/var/log/audit.log ,你会看到这样的东西:
session =“/ usr / sbin / vsftpd”(主机名= SVR040- 763.localdomain,addr = 127.0.0.1,terminal = ftp res =失败 )'
因此,将/etc/pam.d/vsftpd更改为:
auth sufficient pam_ldap.so account sufficient pam_ldap.so password sufficient pam_ldap.so session sufficient pam_ldap.so session required pam_mkhomedir.so skel=/etc/skel/ umask=0022
然后再试一次。
如果您仍然收到错误: “500 OOPS:无法find用户input:” , “500 OOPS:无法更改目录:” ,我build议您使用自动代码 。