免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 9000 | 回复: 15
打印 上一主题 下一主题

[FTP] vsftpd 的/etc/ftpusers中列出的用户尽然还能登陆vsftpd? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-11-24 09:12 |只看该作者 |倒序浏览
本帖最后由 lionfun 于 2010-11-24 09:13 编辑

vsftpd版本: vsftpd-2.3.2
/etc/vsftpd.conf中已经指定:pam_service_name=ftp
/etc/pam.d/ftp的内容为:

#%PAM-1.0
auth       required     /lib/security/pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
auth       required     /lib/security/pam_unix.so shadow nullok
auth       required     /lib/security/pam_shells.so
account    required     /lib/security/pam_unix.so
session    required     /lib/security/pam_unix.so

/etc/ftpusers中我随便添加一个本地账号:redhat

redhat的账号信息如下:
[root@client ~]# finger redhat
Login: redhat                           Name: (null)
Directory: /home/redhat                 Shell: /bin/bash
Never logged in.
No mail.
No Plan.

重启vsftpd:
killall 9 vsftpd
/usr/local/sbin/vsftpd &
然后登陆ftp
[root@client ~]# ftp client
Connected to client.wholan.corp.
220 Welcome to blah FTP service.
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (client:root): redhat
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

redhat用户还能登陆???晕啊 ,vsftpd已经看了三天,问题来了一个又一个。求大侠们指点,我真的不知道怎么办了{:2_172:}

论坛徽章:
0
2 [报告]
发表于 2010-11-24 09:52 |只看该作者
vsftpd版本: vsftpd-2.3.2
/etc/vsftpd.conf中已经指定:pam_service_name=ftp
/etc/pam.d/ftp的内容为: ...
lionfun 发表于 2010-11-24 09:12



    vsftpd.conf 中的userlist_deny怎么设置的 /etc/vsftpd下的user_list文件呢 贴出来

论坛徽章:
0
3 [报告]
发表于 2010-11-24 10:22 |只看该作者
回复 2# 版主杀手

谢谢你,版主杀手
userlist_enable=YES
userlist_deny=YES
userlist_file=/etc/vsftpd.user_list
这个是可以实现禁止本地用户登录的。

但是我有点不明白的就是/etc/ftpusers为什么不起作用。
我已经在/etc/pam.d/ftp中设置了
auth       required     /lib/security/pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed

其中file选项已经指明了/etc/ftpusers的,我真的不知道我在哪里出错了{:2_166:}

论坛徽章:
0
4 [报告]
发表于 2010-11-24 10:40 |只看该作者
回复  版主杀手

谢谢你,版主杀手
userlist_enable=YES
userlist_deny=YES
userlist_file=/etc/vsf ...
lionfun 发表于 2010-11-24 10:22



    user_list 与ftpusers的格式要相同.如要添加用户则每个用户名要独占一行

论坛徽章:
0
5 [报告]
发表于 2010-11-24 11:21 |只看该作者
本帖最后由 lionfun 于 2010-11-24 11:24 编辑

回复 4# 版主杀手


版主杀手,按你的方法我:
cat /etc/vsftpd.user_list >/etc/ftpusers #我直接复制/etc/vsftpd.user_list的内容
echo ' '>/etc/vsftpd.user_list  

[root@client ~]# cat /etc/ftpusers
redhat
root
[root@client ~]#
[root@client ~]# killall -HUP vsftpd #重启vsftpd

[root@client ~]# ftp client  #登录ftp
Connected to client.wholan.corp.
220 Welcome to blah FTP service.
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (client:root): redhat
331 Please specify the password.
Password:
230 Login successful.  #疯了我,你看Login successful.!!!晕啊我……Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

版主杀手,谢谢你热心回答。哦,忘了,如果你不嫌麻烦,以下是我安装vsftpd的步骤:
[root@client ~]# cd /usr/src/vsftpd-2.3.2
[root@client vsftpd-2.3.2]# make clean
rm -f *.o *.swp vsftpd
[root@client vsftpd-2.3.2]# make #编译过程没有错误提示!
[root@client vsftpd-2.3.2]# make install

if [ -x /usr/local/sbin ]; then \
                install -m 755 vsftpd /usr/local/sbin/vsftpd; \
        else \
                install -m 755 vsftpd /usr/sbin/vsftpd; fi
if [ -x /usr/local/man ]; then \
                install -m 644 vsftpd.8 /usr/local/man/man8/vsftpd.8; \
                install -m 644 vsftpd.conf.5 /usr/local/man/man5/vsftpd.conf.5; \
        elif [ -x /usr/share/man ]; then \
                install -m 644 vsftpd.8 /usr/share/man/man8/vsftpd.8; \
                install -m 644 vsftpd.conf.5 /usr/share/man/man5/vsftpd.conf.5; \
        else \
                install -m 644 vsftpd.8 /usr/man/man8/vsftpd.8; \
                install -m 644 vsftpd.conf.5 /usr/man/man5/vsftpd.conf.5; fi
if [ -x /etc/xinetd.d ]; then \
                install -m 644 xinetd.d/vsftpd /etc/xinetd.d/vsftpd; fi

应该没有错误了……

然后拷贝配置文件
[root@client vsftpd-2.3.2]# cp vsftpd.conf /etc
[root@client vsftpd-2.3.2]# cp RedHat/vsftpd.pam /etc/pam.d/ftp

修改/etc/vsftpd.conf中的listen=YES

最后将vsftpd作为独立服务启动
[root@client vsftpd-2.3.2]#chkconfig vsftpd off
[root@client vsftpd-2.3.2]# which vsftpd
/usr/local/sbin/vsftpd
[root@client vsftpd-2.3.2]# /usr/local/sbin/vsftpd &
[1] 12281
你看我是这样安装的,会不会哪里有错误了?

招聘 : 技术支持/维
论坛徽章:
0
6 [报告]
发表于 2010-11-24 11:40 |只看该作者
如果你只在 vsftpd.conf 里添加下面的三句:
userlist_enable=YES
userlist_deny=YES
userlist_file=/etc/vsftpd.user_list


不在 ftp 的 pam 文件中添加下面那句:
auth       required     /lib/security/pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed

看看可不可以禁止用户。

论坛徽章:
0
7 [报告]
发表于 2010-11-24 11:40 |只看该作者
回复  版主杀手


版主杀手,按你的方法我:
cat /etc/vsftpd.user_list >/etc/ftpusers #我直接复制/ ...
lionfun 发表于 2010-11-24 11:21



    在贴下vsftpd.conf  看看

论坛徽章:
0
8 [报告]
发表于 2010-11-24 12:29 |只看该作者
回复 6# nagaregawa


    你好,nagaregawa
我按你说的设置了,不管/etc/pam.d/ftp中有没有auth       required     /lib/security/pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
设置/etc/vsftpd.conf:

userlist_enable=YES
userlist_deny=YES
userlist_file=/etc/vsftpd.user_list

以后,凡是在/etc/vsftpd.user_list 中列出的用户不能登录
但是
/etc/ftpusers 列出的用户照样可以登录,我怀疑是/lib/security/pam_listfile.so 不起作用,但是我不知道怎么测试。

论坛徽章:
0
9 [报告]
发表于 2010-11-24 12:30 |只看该作者
本帖最后由 lionfun 于 2010-11-24 12:42 编辑

回复 7# 版主杀手


    我的vsftpd配置如下:

  1. [root@client ~]# cat /etc/vsftpd.conf
  2. anonymous_enable=YES
  3. local_enable=YES
  4. write_enable=NO
  5. local_umask=022
  6. anon_upload_enable=YES
  7. anon_mkdir_write_enable=NO
  8. anon_other_write_enable=NO
  9. xferlog_enable=YES
  10. connect_from_port_20=YES
  11. xferlog_file=/var/log/vsftpd.log
  12. listen=YES
  13. pam_service_name=ftp
  14. userlist_enable=YES
  15. userlist_deny=YES
  16. userlist_file=/etc/vsftpd.user_list
复制代码
例外,版主杀手,我按照网上别人的设置,配置虚拟账户,也出现虚拟账户登录不了的情况!!有时间的话,希望你能帮我看看,先谢了啊!
在/etc/pam.d/ftp中只写入:

auth       required    pam_userdb.so db=/etc/vsftpd_login
account            required    pam_userdb.so db=/etc/vsftpd_log

开通虚拟账户支持的时候的/etc/vsftpd.conf配置:
  1. anonymous_enable=NO #禁止掉匿名登录
  2. local_enable=YES
  3. write_enable=NO
  4. local_umask=022
  5. anon_upload_enable=NO
  6. anon_mkdir_write_enable=NO
  7. anon_other_write_enable=NO
  8. xferlog_enable=YES
  9. connect_from_port_20=YES
  10. xferlog_file=/var/log/vsftpd.log
  11. listen=YES
  12. pam_service_name=ftp
  13. userlist_enable=YES
  14. userlist_deny=YES
  15. userlist_file=/etc/vsftpd.user_list
  16. guest_enable=YES #开启虚拟用户
  17. guest_username=vuser (FTP虚拟用户对用的系统用户useradd vuser )

复制代码
最终虚拟账户也不能登录,我怀疑是不是我安装的vsftpd的/etc/pam.d/ftp根本不起作用,但是我不知道怎么测试验证。

招聘 : 技术支持/维
论坛徽章:
0
10 [报告]
发表于 2010-11-24 12:58 |只看该作者
你想实现什么呢?是想禁止用户登录还是允许!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP