VsFTPd-pam_mkhomedir

VsFTPd-pam_mkhomedir

我正在尝试设置一个针对 LDAP 服务器进行身份验证的 FTP 服务器。这部分已完成并正常运行。我的服务器是 Ubuntu Server 11.04 上的 VsFTPd。但我必须为我的 LDAP 用户创建主目录。我正在尝试使用该pam_mkhomedir模块,但它不起作用:当我将其行添加到文件时/etc/pam.d/vsftpd,我的用户无法再登录到 FTP 服务器。问题是我对哪里出了问题知之甚少。VsFTPd 只是响应530: login incorrect,我找不到从 pam_mkhomedir 获取调试或错误消息的方法。

以下是我的不同配置文件。/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 用户可以登录,但他们无法执行任何操作,因为他们处于一个空的 chrooted jail 中。如果我添加 pam_mkhomedir,他们就无法再登录。如果有人知道原因,或者知道如何从日志中获取更多信息,我将不胜感激,谢谢。

答案1

简单的回答 - 有必要在 vsftpd.conf 中启用会话支持:

session_support=YES

答案2

也许与 vsftpd 没有直接关系,但我在 SFTP 中遇到的一个问题是 pam_mkhomedir.so 创建了用户:组拥有的主目录 - 当然,即使 skel 文件归 root 所有。但出于安全原因(权限为 755),使用 SFTP 的 chroot 要求 root:root 拥有 chroot 主目录。即使 skel 文件归 root 所有。

答案3

看一下/var/log/audit.log,你会看到类似这样的内容:

类型 = USER_START msg = audit(1290252247.771:1669772):用户 pid = 20068 uid = 0 auid = 0 msg ='PAM:会话打开 acct =“quanta”:exe =“/usr/sbin/vsftpd”(主机名 = SVR040-763.localdomain,地址 = 127.0.0.1,终端 = ftpres=失败)'

因此,将其更改/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:无法找到用户条目:”“500 OOPS:无法更改目录:”,我建议你使用自动目录反而。

相关内容