免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 16900 | 回复: 20

[FTP] 关于vsftpd同时使用系统用户和虚拟用户验证 [复制链接]

论坛徽章:
0
发表于 2005-11-29 14:10 |显示全部楼层
记得有朋友曾经问过vsftpd可不可以同时使用系统用户和虚拟用户,我当时回答不可以。
对PAM了解不够,所以这个答案是错误的

今天想起这个问题,决定做个试验来看看,事实证明是可以的。

我先了解了一PAM,看了这个文档,
http://www.linuxmine.com/5214.html

知道了PAM的验证模块是可以串在一起的,通过控制标志(control-flag)来控制。
文档里也给出了类似的一个例子。

为了打开匿名FTP,需要使用以下的配置命令代替默认的配置(OTHER):

  # ftpd; add ftp-specifics. These lines enable anonymous ftp over
  # standard UNIX access (the listfile entry blocks access to
  # users listed in /etc/ftpusers)
  #
  ftpd auth sufficient /usr/lib/security/pam_ftp.so
  ftpd auth required /usr/lib/security/pam_unix_auth.so use_first_pass
  ftpd auth required /usr/lib/security/pam_listfile.so
  onerr=succeed item=user sense=deny file=/etc/ftpusers

  由于需要忽略默认的配置入口,所以第二行是必须要有的。这还是一个层叠模块的例子。使用sufficient控制标志,表示如果这个模块验证通过,就不必使用后面的层叠模块进行验证了;use_first_pass表示使用为前面的模块(pam_ftp)输入的密码。


我的试验环境:
RedHat AS 4
vsftpd-2.0.1-5
pam-0.77-65.1

vsftpd使用的pam文件
  1. auth    sufficient      pam_userdb.so db=/etc/vsftpd/vsftpd_login
  2. account sufficient      pam_userdb.so db=/etc/vsftpd/vsftpd_login

  3. auth       required     pam_listfile.so item=user sense=deny file=/etc/vsftpd.ftpusers onerr=succeed
  4. auth       required     pam_stack.so service=system-auth
  5. auth       required     pam_shells.so
  6. account    required     pam_stack.so service=system-auth
  7. session    required     pam_stack.so service=system-auth
复制代码


可以看出前面两行是对虚拟用户的验证,后面是对系统用户的验证。
对虚拟用户的验证使用了sufficient这个控制标志。
这个标志的含义是如果这个模块验证通过,就不必使用后面的层叠模块进行验证了;但如果失败了,
就继续后面的认证,也就是使用系统真实用户的验证。

vsftpd.conf的内容(节选)
  1. pam_service_name=vsftpd.mixed
  2. listen=YES
  3. tcp_wrappers=YES
  4. local_enable=YES
  5. guest_enable=YES
  6. guest_username=ftp
  7. listen_port=2121
复制代码


如果加上anonymous_enable=YES,匿名用户也是可以登录的。
这样的话,就可以同时支持匿名用户,系统真实用户和虚拟用户了。

[ 本帖最后由 wolfg 于 2005-11-29 14:12 编辑 ]

论坛徽章:
0
发表于 2005-11-29 23:03 |显示全部楼层
wolfg老大文章很好,很有深度,我也曾经在这方面得到你的指导,赞一下~!

论坛徽章:
0
发表于 2005-11-30 00:19 |显示全部楼层
赞一个。

论坛徽章:
0
发表于 2005-11-30 13:04 |显示全部楼层

回复 1楼 wolfg 的帖子

我想问一下,老大要是碰到问题,一般都是怎么去查资料的?怎么去解决问题的?
我很菜,一般碰到问题就Google,Google找不到最多也就是问问人,发发贴子。

论坛徽章:
0
发表于 2005-11-30 13:49 |显示全部楼层
原帖由 lingniao 于 2005-11-30 13:04 发表
我想问一下,老大要是碰到问题,一般都是怎么去查资料的?怎么去解决问题的?
我很菜,一般碰到问题就Google,Google找不到最多也就是问问人,发发贴子。



我跟你一样,用google。

我收集了一些链接,发在这里了
http://bbs.chinaunix.net/viewthr ... &extra=page%3D1

论坛徽章:
0
发表于 2006-03-11 17:17 |显示全部楼层
收藏!

论坛徽章:
0
发表于 2006-03-11 21:37 |显示全部楼层
两个配置文件,两个pam就行了。

论坛徽章:
0
发表于 2006-03-13 13:45 |显示全部楼层
老大
按照你的说明作了

本地用户还是没法访问 匿名用户也没法访问

仅仅虚拟用户可以访问

论坛徽章:
0
发表于 2006-03-13 14:31 |显示全部楼层
原帖由 hiame 于 2006-3-13 13:45 发表
老大
按照你的说明作了

本地用户还是没法访问 匿名用户也没法访问

仅仅虚拟用户可以访问

检查系统log
/var/log/messages
/var/log/secure

论坛徽章:
0
发表于 2006-05-25 00:38 |显示全部楼层
老大真是高手
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

DTCC2020中国数据库技术大会

【架构革新 高效可控】2020年12月21日-23日第十一届中国数据库技术大会将在北京隆重召开。

大会设置2大主会场,20+技术专场,将邀请超百位行业专家,重点围绕数据架构、AI与大数据、传统企业数据库实践和国产开源数据库等内容展开分享和探讨,为广大数据领域从业人士提供一场年度盛会和交流平台。

http://dtcc.it168.com


大会官网>>
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP