登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

杨树叶子的博客

 
 
 

日志

 
 
 
 

Debian+vsftpd+MySQL实现虚拟用户-2  

2007-04-23 02:20:05|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
 

4),限制IP的匿名登录
   要想限制登录vsftpd的客户端的IP地址,要用到一个叫TCPWrappers的东东,对于TCP Wrappers,我的理解是,如果在vsftpd中启用了TCPWrappers的话,每次客户端向vsftpd发起一个连接请求的时候,vsftpd首先会把这个连接请求交给TCPWrappers处理,如果客户端的IP被TCPWrappers放行的话,才能继续与vsftpd继续会话,否则,直接就被拒绝服务了,不知道对不对?

a,修改/etc/vsftpd.conf


代码:
#启用TCP Wrapperstcp_wrappers=YES

b,修改/etc/hosts.deny
   拒绝所有向vsftpd发起连接请求的IP,不过,如果hosts.deny与hosts.allow冲突的话,以hosts.allow优先处理,这好像就是,先deny所有,然后在hosts.allow开放特权,呵呵
代码:
#拒绝所有连入vsftpd的IP先.vsftpd: ALL

c,修改/etc/hosts.allow
   在这里开放允许登录vsftpd的IP地址关于VSFTPD_LOAD_CONF环境变量,vsftpd的man是这么说的:
"If tcp_wrappers sets the VSFTPD_LOAD_CONF environment variable,then the vsftpd session will try and load the vsftpd configurationfile specified in this variable. "
代码:
#限制可以匿名登录vsftpd的IP地址 vsftpd: 192.168.0.,210.83.200.200 :setenv VSFTPD_LOAD_CONF /etc/vsftpd/vsftpd.anonymous#允许vsftpd的虚拟用户以任何IP连接FTP vsftpd: ALL : setenvVSFTPD_LOAD_CONF /etc/vsftpd/vsftpd.virtual

d,修改/etc/vsftpd/vsftpd.anonymous
代码:
#mkdir /etc/vsftpd/ #nano/etc/vsftpd/vsftpd.anonymous #允许匿名登录anonymous_enable=YES

e,修改/etc/vsftpd/vsftpd.virtual
代码:
#nano/etc/vsftpd/vsftpd.virtual #不允许匿名登录anonymous_enable=NO

5),为不同的用户设置不同的访问权限

a,激活单个用户配置功能,增加以下配置行到vsftpd的配置文件:
代码:
#nano /etc/vsftpd.conf#指定不同用户配置文件的存放路径user_config_dir=/etc/vsftpd/vsftpd_user_conf

b,普通用户:下载/上传
编辑/etc/vsftpd/vsftpd_user_conf/normal
注意:用户的配置文件名与用户名一致,不过匿名用户的配置文件名为ftp,而不是anonymous
代码:
#mkdir/etc/vsftpd/vsftpd_user_conf #nano/etc/vsftpd/vsftpd_user_conf/normal
加入以下内容:
#允许下载
代码:
anon_world_readable_only=NO#允许写入,上传以及建立目录 write_enable=YES anon_upload_enable=YESanon_mkdir_write_enable=YES

c,管理员用户:下载/上传/删除等.


代码:
#cp/etc/vsftpd/vsftpd_user_conf/normal/etc/vsftpd/vsftpd_user_conf/admin
编辑admin的配置文件:
代码:
#nano/etc/vsftpd/vsftpd_user_conf/admin
管理员除了拥有普通用户的权限以外,还拥有删除/重命名/改变文件属性的权限
加入以下内容:
代码:
#允许重命名和删除文件anon_other_write_enable=YES#虚拟用户拥有与本地用户相同的权限(由于chmod仅仅对本地用户有效,所以如果想要虚拟用户拥有chmod的权限,这一项必须激活)virtual_use_local_privs=YES #允许修改文件属性chmod_enable=YES

d,网站管理员
代码:
#cp/etc/vsftpd/vsftpd_user_conf/admin/etc/vsftpd/vsftpd_user_conf/webmaster
编辑webmaster的配置文件:
代码:
#nano/etc/vsftpd/vsftpd_user_conf/webmaster

加入以下内容:
代码:
#将FTP家目录指向网站的家目录(我的www目录使用Apache默认的目录)local_root=/var/www#默认情况下,上传到FTP站点的文件的拥有者都是ftpguest,其他用户是没有访问权限的#所以,当访问网站的时候,会出现"没有权限访问该文件的错误",这是由于Apache的用户#www-data无法访问/var/www下的文件造成的,把umask设置成033甚至000即可解决这个问题.local_umask=033

e,为normal,admin用户设置对incoming,pub目录不同的权限
   阅读了一遍vsftpdman中关于权限的相关设置,似乎没有单独设置每个目录权限的地方?后来想到是不是可以利用Linux文件系统的文件权限设置来达到此目的,以前在Windows下利用IIS来架设站点时,我就是利用NTFS权限设置来达到控制不同用户对目录的访问权限.不过试了一下,还是无法完美的实现以下的权限控制:
代码:
incoming pub normal 读/写只读 admin 读/写 读/写
   举例来说,可以通过把pub设置成只读来控制normal用户只读pub的权限,不过admin对pub也是只读了不过,还好,因为admin拥有修改目录属性的权限,如果admin用户想要通过FTP来完成管理pub目录的话,可以临时把pub目录修改成读/写属性.

四,小结

1,vsftpd的目标是完成一个简易而且安全性不低的FTPD,功能嘛,似乎还是有点不足,特别是目录权限这方面的设置如果是对目录权限有比较复杂的需求的话,可以考虑一下Proftpd.

2,在测试的时候,除了使用FTPClient工具以外,最好再使用Sniffer类的软件作为辅助,因为有时候FTPClient并不会完全把FTPD返回信息呈现在你面前,而有时候,这些信息对排除FTPD故障会有很大帮助的,而一旦使用Sniffer类的软件,所有的客户端与服务器端交互的信息都不会漏掉的.

五,参考

1,Manpage of VSFTPD.CONF:
http://vsftpd.beasts.org/vsftpd_conf.html

2,vsftp配置大全:
http://bbs.chinaunix.net/viewthread.php?tid=561183

原文链接:http://bbs.et8.net/bbs/showthread.php?t=760123

  评论这张
 
阅读(104)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018