dualgaun 发表于 2012-12-05 16:13

vsftp PAM认证总是过不去

各位大侠,求指教一二:..

到底错在哪了??

准备通过vsftpd+mysql+pam实现一个完善点的FTP
mysql数据库:
database: vsftpdvirtual
tables: users    ##保存虚拟用户信息;用户名为zhouzhong
      logs       ##保存日志信息




PAM配置文件如下:
/etc/pam.d/vsftpd
....
auth       required   pam_mysql.so   user=vsftpdvirtual    passwd=123456    host=localhost    db=vsftpdvirtualtable=users   usercolumn=name   passwdcolumn=passwdcrypt=0   sqllog=yes   logtable=logs    logmsgcolumn=msg   logusercolumn=user   logpidcolumn=pid   loghostcolumn=host   logrhostcolumn=rhostlogtimecolumn=logtimeverbose=1
account    required   pam_mysql.so   user=vsftpdvirtual    passwd=123456   host=localhost    db=vsftpdvirtualtable=users   usercolumn=name   passwdcolumn=passwdcrypt=0   sqllog=yes   logtable=logs    logmsgcolumn=msg   logusercolumn=user   logpidcolumn=pid   loghostcolumn=host   logrhostcolumn=rhostlogtimecolumn=logtimeverbose=1


vsftpd.conf主配置文件如下:

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
listen_port=21
guest_enable=YES
guest_username=vsftpdvirtual
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=30999
anon_world_readable_only=NO
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vsftpd_user_conf




以下是日志 /var/log/secure
Dec5 15:59:25 localhost vsftpd: PAM (vsftpd) illegal module type: 0
Dec5 15:59:25 localhost vsftpd: PAM pam_parse: expecting return value; [...sqllog=yes]
Dec5 15:59:25 localhost vsftpd: PAM unable to dlopen(/lib/security/logtable=logs)
Dec5 15:59:25 localhost vsftpd: PAM
Dec5 15:59:25 localhost vsftpd: PAM adding faulty module: /lib/security/logtable=logs
Dec5 15:59:25 localhost vsftpd: pam_unix(vsftpd:auth): check pass; user unknown
Dec5 15:59:25 localhost vsftpd: pam_unix(vsftpd:auth): authentication failure; logname= uid=0 euid=0 tty=ftp ruser=zhouzhong rhost=localhost.localdomain
Dec5 15:59:25 localhost vsftpd: pam_succeed_if(vsftpd:auth): error retrieving information about user zhouzhong

dualgaun 发表于 2012-12-05 17:15

重新配置,重启;查了下日志;


发现其实可以往里面logs表里面写日志的;
+------------------+---------------+-------+-----------+-----------------+---------------------+
| msg                | user                     | pid          | host            | rhost               | logtime             |
+------------------+---------------+-------+-----------+-----------------+---------------------+
| QUERYING FAILURE    | vsftpdvirtual | 14919 | 127.0.0.1 | 219.***.***.*** | 2012-12-05 16:42:32 |
+------------------+---------------+-------+-----------+-----------------+---------------------+


但就是没法登陆
Dec5 16:45:22 localhost vsftpd: pam_unix(vsftpd:auth): check pass; user unknown
Dec5 16:45:22 localhost vsftpd: pam_unix(vsftpd:auth): authentication failure; logname= uid=0 euid=0 tty=ftp ruser=zhouzhong rhost=localhost.localdomain
Dec5 16:45:22 localhost vsftpd: pam_succeed_if(vsftpd:auth): error retrieving information about user zhouzhong
Dec5 16:47:03 localhost vsftpd: pam_unix(vsftpd:auth): check pass; user unknown
Dec5 16:47:03 localhost vsftpd: pam_unix(vsftpd:auth): authentication failure; logname= uid=0 euid=0 tty=ftp ruser=zhouzhong rhost=localhost.localdomain
Dec5 16:47:03 localhost vsftpd: pam_succeed_if(vsftpd:auth): error retrieving information about user zhouzhong

dualgaun 发表于 2012-12-05 20:21

虚拟用户、以及虚拟用户映射的本地用户,都无法登陆。

如果我开启了vsftpd.conf中匿名用户 anonymous_enable=YES,则可以匿名登录。


真是纠结啊

dualgaun 发表于 2012-12-05 20:27

刚才又试了一下:如果把本地用户vsftpdvirtual,插入到 虚拟用户的user表中,就可以登录了;

dualgaun 发表于 2012-12-05 20:57

打算把我的修改记录下来,希望我能调通,其他人别再碰到这种问题了!

dualgaun 发表于 2012-12-05 20:57

还是不行!虚拟用户登录总是提示:

Dec5 20:55:30 localhost vsftpd: pam_unix(vsftpd:auth): check pass; user unknown
Dec5 20:55:30 localhost vsftpd: pam_unix(vsftpd:auth): authentication failure; logname= uid=0 euid=0 tty=ftp ruser=zhouzhong rhost=219.224.168.117
Dec5 20:55:30 localhost vsftpd: pam_succeed_if(vsftpd:auth): error retrieving information about user zhouzhong

dualgaun 发表于 2012-12-06 10:00

终于找到原因了,还是pam文件的问题:重新写了一次;

1.   /etc/pam.d/vsftpd原文件不变,再重新cp一份为vsftpd.mysql,并在该文件添加2行:auth、accout;    我之前一直是在原vsftpd文件上追加的,不知道是不是这个原因。

2    vsftpd.conf文件中, pam_service_name=vsftpd.mysql      local_enable=YES

pklam 发表于 2013-11-09 13:36

我也遇到同样问题,烦请贴一下完整的我参考.

dualgaun 发表于 2013-11-18 10:13

回复 8# pklam

# cat /etc/pam.d/vsftpd.mysql
auth required /lib/security/pam_mysql.so user=**** passwd=****** host=localhost db=******* table=users usercolumn=name passwdcolumn=passwd crypt=0 sqllog=1 logtable=logs logmsgcolumn=msg logusercolumn=user logpidcolumn=pid loghostcolumn=host logrhostcolumn=rhost logtimecolumn=logtime verbose=1
account required /lib/security/pam_mysql.so user=***** passwd=******* host=localhost db=******* table=users usercolumn=name passwdcolumn=passwd crypt=0 sqllog=1 logtable=logs logmsgcolumn=msg logusercolumn=user logpidcolumn=pid loghostcolumn=host logrhostcolumn=rhost logtimecolumn=logtime verbose=1


是我机器现在的配置

   

xinn2003 发表于 2015-03-14 11:12

我的也是同样故障,郁闷。
页: [1]
查看完整版本: vsftp PAM认证总是过不去