+ -
当前位置:首页 → 问答吧 → vsftpd 虚拟用户配置

vsftpd 虚拟用户配置

时间:2008-09-18

来源:互联网

虚拟用户形式配置(优点: 安全、便于定制权限)


作者 wkf qq:23989219 [email protected]

实现要求:
FTP服务,添加两个虚拟用户upsir和downsir,主目录为“/ftpsite/”,upload只可以上传,不可以下载文件;download只可以下载,不可以上传文件;服务器最大并发连接200个,每IP限2个连接,限速100KB。

1. 查看环境,是否支持db4和安装有vsftpd
结果如下,支持

=700) window.open('http://linux.chinaunix.net/bbs/attachments/month_0712/20071224_b237136ec4d764a9adaaRoWI7av9z6tk.jpg');" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" >=700) window.open('http://linux.chinaunix.net/bbs/images/default/attachimg.gif');" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" >

2. 生成虚拟用户username/password database
=700) window.open('http://linux.chinaunix.net/bbs/attachments/month_0712/20071224_bdbc2d0c2121ed4c3422EsGF6bjsZvWG.jpg');" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" >=700) window.open('http://linux.chinaunix.net/bbs/images/default/attachimg.gif');" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" >

注意:上面文件ftpusers.txt单行是:用户名;双行是密码
vsftpd_login.db只让root用户可读可写

3.生成跟虚拟用户database相关联的PAM文件
=700) window.open('http://linux.chinaunix.net/bbs/attachments/month_0712/20071224_85932497181d535f91180X3bZXPp3iXP.jpg');" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" >=700) window.open('http://linux.chinaunix.net/bbs/images/default/attachimg.gif');" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" >
注意:vsftpd_login没有.db

4.建立虚拟用户所映射的系统帐户,定位虚拟用户所在的目录
=700) window.open('http://linux.chinaunix.net/bbs/attachments/month_0712/20071224_8224a200c3b9f7cbf62ddjrdl7isOIps.jpg');" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" >=700) window.open('http://linux.chinaunix.net/bbs/images/default/attachimg.gif');" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" >

5.修改配置文件
1)主配置文件vftpd.conf
全局中权限越低,后面的虚拟用户的权限越能够控制的详细,在配置时候去掉里面的注释
=700) window.open('http://linux.chinaunix.net/bbs/attachments/month_0712/20071224_006e2bc1633f767c9743Tf79vruHC2dY.jpg');" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" >=700) window.open('http://linux.chinaunix.net/bbs/images/default/attachimg.gif');" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" >

下面是vsftpd.conf的配置文件内容解释:

anonymous_enable=NO
local_enable=YES
出于安全的角度禁用了匿名(anonymous)用户,启用非匿名用户—就是我们刚才我们创建的虚拟用户“virtual“

write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
这些是出于安全的目的,写命令全部被禁用了

chroot_local_user=YES
这个是确信能将虚拟用户限制在我们上述的/home/ftpsite目录中

guest_enable=YES
guest_username=virtual
这个guest_enable是非常重要的—它用来激活虚拟用户! guest_username 是将所有虚拟用户映射成我们先前设置的真实用户"virtual"。这也决定了虚拟用户在文件系统中的位置,也就是"virtual"的主目录 /home/ftpsite。

listen=YES
这个将vsftpd 设置成独立模式( "standalone" mode)也就是不通过 inetd或者xinetd来运行。这意味着你直接运行vsftpd的可执行命令就可以启动它了。

tcp_wrappers=YES
支持tcp_wrappers,限制访问(/etc/hosts.allow,/etc/hosts.deny)

user_config_dir=/etc/vsftpd/vsftpd_user_conf
启用per-user 配置,对不同的虚拟用户设置不同的权限

2)对不同的虚拟用户设置不同的权限

=700) window.open('http://linux.chinaunix.net/bbs/attachments/month_0712/20071224_30a1e10401931374004cVQDRg96laoYj.jpg');" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" >=700) window.open('http://linux.chinaunix.net/bbs/images/default/attachimg.gif');" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" >

6.启动vsftpd

service vsftpd start

chkconfig vsftpd on
开机启动

Notes:

(1) 每次添加完新用户後,就必须执行如下命令,重新Hash用户名文件才能起作用
#db_load -T -t hash -f
(2) 更改一个或多个用户的权限和密码不需要执行任何命令
(3)行的值都不要有空格,否则登录时会出现错误,举个例子,假如我在write_enable=YES后多了个空格,那我登录时就出现如下错误:
500 OOPS: bad bool value in config file for: write_enable
=700) window.open('http://linux.chinaunix.net/bbs/attachments/month_0712/20071224_c6293a77edd1203338f2leFIM5aRxY0D.jpg');" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" >=700) window.open('http://linux.chinaunix.net/bbs/images/default/attachimg.gif');" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" >

作者: AlexGuo   发布时间: 2008-09-18

正好需要 谢谢啦 =700) window.open('http://linux.chinaunix.net/bbs/images/smilies/icon_mrgreen.gif');" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" >=700) window.open('http://linux.chinaunix.net/bbs/images/smilies/icon_mrgreen.gif');" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" >

作者: uranas   发布时间: 2008-09-18

用户被禁言,该主题自动屏蔽!

作者: 77522   发布时间: 2008-09-18

用户被禁言,该主题自动屏蔽!

作者: 中国退学网   发布时间: 2008-09-18

)行的值都不要有空格,否则登录时会出现错误
确实如此,我就因为这个问题恼火了半天啊,查这种错误真是要命

作者: justinwei   发布时间: 2008-09-18

很好的 正好学习一下 支持一下

作者: 天使社区   发布时间: 2008-09-18

好东西,是顶出来的,

作者: sfcq   发布时间: 2008-09-18

谢谢楼主,刚好学习之用.收藏











如何架设基于架设基于Fedora的openmosix集群
Web集群服务的负载均衡方案选择
如何建造Open WebMail伺服器(图文讲解)
....

作者: zd052   发布时间: 2008-09-18

我用的是redhat AS4 u1版,其配置文件vsftpd.conf跟你所描述的有几个地方不同,如激活虚拟用户的guest_enable=yes,guest_username=virtual没有,user_config_dir=/etc/vsftpd/vsftpd_user_conf也没有,请问这几个是你添加进去的吗?

作者: 58008839   发布时间: 2008-09-18