虚拟用户2
===============
这个例子将演示如何扩展“VIRTUAL_USERS”那个范例,从而实现更复杂一点的配置。
让我们假定我们需要2种不同的虚拟用户:一种只能浏览并下载资源,另一种能上传文件并浏览站内资源。
要激活这个设置,我们将使用VSFTPD的强大的“单个用户配置”功能(是V1.1.0后出现的新功能)。
在前一个虚拟用户范例中,我们创建了2个用户-tom和fred.
我们将实现fred有写权限以上传新文件,同时tom只能下载文件。
1)激活单个用户配置功能。
要激活这个功能,需要增加以下配置行到配置文件:
user_config_dir=/etc/vsftpd_user_conf
并且创建目录:
mkdir /etc/vsftpd_user_conf
2)授予tom读取所有文件和目录的权限
在上一个例子的最后,我们注意到虚拟用户只能浏览所有的完全可读属性的目录和文件。我们使/home/ftpsite完全可读,而且被上传的文件也
赋予了完全可读的权限(daidong注:意思是说这样虚拟用户就能读取所有的文件了)。但实现这个目的的另一个方法是授权tom能下载那些非完全可读的文件。
对于tom,他的配置文件中需要修改一个设置:
anon_world_readable_only:
设为"anon_world_readable_only=NO" >
/etc/vsftpd_user_conf/tom
(daidong注:既把默认配置修改了anon_world_readable_only后,复制到/etc/vsftpd_user_conf下,名字为tom)
验证一下结果-以tom登录,“ls”将返回一个目录列表。如果以fred登录将不会如此。
注意:重启VSFTPD以启用配置文件/etc/vsftpd.conf(高级用户也可以发送SIGHUP给VSFTPD的监听进程).
3)授予freg读取所有文件/目录并创建新文件/目录的权限,但让他不能对已存在的文件/目录进行操作.
echo "anon_world_readable_only=NO" >
/etc/vsftpd_user_conf/fred
echo "write_enable=YES" >>
/etc/vsftpd_user_conf/fred
echo "anon_upload_enable=YES" >>
/etc/vsftpd_user_conf/fred
验证一下-以tom登录,将不能上传,而fred就可以.
试图删除一个文件--噢,你们俩都不行!
配置详解
=============
VSFTPD.CONF.5
================
名字
vsftpd.conf
:VSFTPD的配置文件
描述:
vsftpd.conf
用来控制VSFTPD的各项功能。默认状态下,它的位置是/etc/vsftpd.conf。
(译者注:也许老的LINUX版本下,配置文件是这个位置,但新的LINUX版本,例如FC2,配置文件是在/etc/vsftpd目录下。
但是也很可能和安装方式有关,RPM包安装,配置文件是/etc/vsftpd.conf.
源码包安装:/etc/vsftpd/vsftpd.conf.我不确定。
但以后我不再特别指出了,真累!!)
然而,你也可以通过修改配置行来指定到其它目录。这一点很有用,因为也许你想使用一些高级inetd功能,例如xinetd,在一个多虚拟主机的机器上调用不同的配置文件。
格式
VSFTPD.conf
的格式非常简单,每行要么是一个注释,要么是一个指令。注释行以#开始并被忽略掉。指令行格式如下:
配置项=参数值
很重要的一点是,这个格式里不存在任何空格。
默认的,每一个配置项在配置文件里都占一编辑行,可以被修改。
布尔选项
参数值的布尔选项可以是:
YES或者NO
allow_anon_ssl
只有ss1_enable激活了才可以启用此项。如果设置为YES,匿名用户将容许使用安全的SSL连接服务器。
默认值:NO
anon_mkdir_write_enable
如果设为YES,匿名用户将容许在指定的环境下创建新目录。如果此项要生效,那么配置write_enable必须被激活,并且匿名用户必须在其父目录有写权限。
默认值:NO
anon_other_write_enable
如果设置为YES,匿名用户将被授予较大的写权限,例如删除和改名。一般不建议这么做,除非想完全授权。
默认值:NO
anon_upload_enable
如果设为YES,匿名用户就容许在指定的环境下上传文件。如果此项要生效,那么配置write_enable必须激活。并且匿名用户必须在相关目录有写权限。
默认值:NO
anon_world_readable_only
启用的时候,匿名用户只容许下载完全可读的文件,这也就容许了ftp用户拥有对文件的所有权,尤其是在上传的情况下。
默认值:YES
anonymous_enable
控制是否容许匿名用户登录。如果容许,那么“ftp”和“anonymous”都将被视为“anonymous"而容许登录。
默认值:YES
ascii_download_enable
启用时,用户下载时将以ASCII模式传送文件。
默认值:NO
ascii_upload_enable
启用时,用户上传时将以ASCII模式传送文件。
默认值:NO
async_abor_enable
启用时,一个特殊的FTP命令"async ABOR”将容许使用。只有不正常的FTP客户端要使用这一点。而且,这个功能又难于操作,所以,
默认是把它关闭了。但是,有些客户端在取消一个传送的时候会被挂死(daidong注:估计是客户端无响应了),那你只有启用这个功能才能避免这种情况。
默认值:NO
background
启用时,并且VSFTPD是“listen”模式启动的(daidong注:就是standalone模式),VSFTPD将把监听进程置于后台。但访问VSFTPD时,控制台将立即被返回到SHELL。
默认值:NO
check_shell
注意:这个选项只对非PAM结构的VSFTPD才有效。如果关闭,VSFTPD将不检查/etc/shells以判定本地登录的用户是否有一个可用的SHELL。
默认值:YES
chmod_enable
启用时,将容许使用SITE CHMOD命令。注意,这只能用于本地用户。匿名用户绝不能使用SITE CHMOD。
默认值:YES
chown_uploads
如果启用,所以匿名用户上传的文件的所有者将变成在chown_username里指定的用户。这对管理FTP很有用,也许也对安全有益。
默认值:NO
chroot_list_enable
如果激活,你要提供一个用户列表,表内的用户将在登录后被放在其home目录,锁定在虚根下(daidong注:进入FTP后,PWD一下,可以看到当前目录是\"/",这就是虚根。是FTP的根目录,并非FTP服务器系统的根目录)。如果chroot_local_user设为YES后,其含义会发生一点变化。
在这种情况下,这个列表内的用户将不被锁定在虚根下。
默认情况下,这个列表文件是/etc/vsftpd.chroot_list,
但你也可以通过修改chroot_list_file来改变默认值。
默认值:NO
chroot_local_user
如果设为YES,本地用户登录后将被(默认地)锁定在虚根下,并被放在他的home目录下。
警告:
这个配置项有安全的意味,特别是如果用户有上传权限或者可使用SHELL的话。在你确定的前提下,再启用它。
注意,这种安全暗示并非只存在于VSFTPD,其实是广泛用于所有的希望把用户锁定在虚根下的FTP软件。
默认值:NO
connect_from_port_20
这用来控制服务器是否使用20端口号来做数据传输。为安全起见,有些客户坚持启用。相反,关闭这一项可以让VSFTPD更加大众化。
默认值:NO
(但在范例配置文件中,启用了,即YES)
deny_email_enable
如果激活,你要提供一个关于匿名用户的密码E-MAIL表(daidong注:我们都知道,匿名用户是用邮件地址做密码的)以阻止以这些密码登录的匿名用户。
默认情况下,这个列表文件是/etc/vsftpd.banner_emails,但你也可以通过设置banned_email_file来改变默认值。
默认值:NO
dirlist_enable
如果设置为NO,所有的列表命令(daidong注:如ls)都将被返回“permission
denied”提示。
默认值:YES
dirmessage_enable
如果启用,FTP服务器的用户在首次进入一个新目录的时候将显示一段信息。默认情况下,会在这个目录中查找.message文件,但你也可以
通过更改message_file来改变默认值。
默认值:NO
(但在配置范例文件中启用了它)
download_enable
如果设为NO,下载请求将返回“permission
denied”。
默认值:YES
dual_log_enable
如果启用,两个LOG文件会各自产生,默认的是/var/log/xferlog和/var/log/vsftpd.log。前一个是wu-ftpd格式的LOG,能被通用工具分析。
后一个是VSFTPD的专用LOG格式。
默认值: NO
force_dot_files
如果激活,即使客户端没有使用“a”标记,(FTP里)以.开始的文件和目录都会显示在目录资源列表里。但是把"."和\".."不会显示。(daidong注:即LINUX下
的当前目录和上级目录不会以‘.’或‘..’方式显示)。
默认值:NO
force_local_data_ssl
只有在ssl_enable激活后才能启用。如果启用,所有的非匿名用户将被强迫使用安全的SSL登录以在数据线路上收发数据。
默认值:YES
force_local_logins_ssl
只有在ssl_enable激活后才能启用。如果启用,所有的非匿名用户将被强迫使用安全的SSL登录以发送密码。
默认值:YES
guest_enable
如果启用,所有的非匿名用户登录时将被视为”游客“,其名字将被映射为guest_username里所指定的名字。
默认值:NO
hide_ids
如果启用,目录资源列表里所有用户和组的信息将显示为"ftp".
默认值:NO
listen
如果启用,VSFTPD将以独立模式(standalone)运行,也就是说可以不依赖于inetd或者类似的东东启动。直接运行VSFTPD
的可执行文件一次,然后VSFTPD就自己去监听和处理连接请求了。
默认值:NO
listen_ipv6
类似于listen参数的功能,但有一点不同,启用后VSFTPD会去监听IPV6套接字而不是IPV4的。这个设置和listen的设置互相排斥。
默认值:NO
local_enable
用来控制是否容许本地用户登录。如果启用,/etc/passwd里面的正常用户的账号将被用来登录。
默认值:NO
log_ftp_protocol
启用后,如果xferlog_std_format没有被激活,所有的FTP请求和反馈信息将被纪录。这常用于调试(debugging)。
默认值:NO
ls_recurse_enable
如果启用,\"ls -R"将被容许使用。这是为了避免一点点安全风险。因为在一个大的站点内,在目录顶层使用这个命令将消耗大量资源。
默认值:NO
no_anon_password
如果启用,VSFTPD将不会向匿名用户询问密码。匿名用户将直接登录。
默认值:NO
no_log_lock
启用时,VSFTPD在写入LOG文件时将不会把文件锁住。这一项一般不启用。它对一些工作区操作系统问题,如Solaris / Veritas文件系统共存时有用。
因为那在试图锁定LOG文件时,有时候看上去象被挂死(无响应)了。(daidong注:这我也不是很理解。所以翻译未必近乎原意。原文如下:It exists to workaround
operating system bugs such as the Solaris / Veritas filesystem
combination
which has been observed to sometimes exhibit hangs trying to lock
log files.)
默认值:NO
one_process_model
如果你的LINUX核心是2.4的,那么也许能使用一种不同的安全模式,即一个连接只用一个进程。只是一个小花招,但能提高FTP的性能。请确定需要后再启用它,而且也请确定你的
站点是否会有大量的人同时访问。
默认值:NO
passwd_chroot_enable (daidong注:这段自己看,无语...)
if enabled, along with
.BR chroot_local_user
, then a chroot() jail location may be specified on a per-user
basis. Each
user's jail is derived from their home directory string in
/etc/passwd. The
occurrence of /./ in the home directory string denotes that the
jail is at that
particular location in the path.
默认值:NO
pasv_enable
如果你不想使用被动方式获得数据连接,请设为NO。
默认值:YES
pasv_promiscuous
如果你想关闭被动模式安全检查(这个安全检查能确保数据连接源于同一个IP地址)的话,设为YES。确定后再启用它(daidong注:原话是:只有你清楚你在做什么时才启用它!)
合理的用法是:在一些安全隧道配置环境下,或者更好地支持FXP时(才启用它)。
默认值:NO
port_enable
如果你想关闭以端口方式获得数据连接时,请关闭它。
默认值:YES
port_promiscuous
如果你想关闭端口安全检查(这个检查可以确保对外的(outgoing)数据线路只通向客户端)时,请关闭它。确认后再做!
默认值:NO
run_as_launching_user
如果你想让一个用户能启动VSFTPD的时候,可以设为YES。当ROOT用户不能去启动VSFTPD的时候会很有用(daidong注:应该不是说ROOT用户没有权限启动VSFTPD,
而是因为别的,例如安全限制,而不能以ROOT身份直接启动VSFTPD)。强烈警告!!别启用这一项,除非你完全清楚你在做什么(daidong:无语....)!!!随意地启动这一项会导致
非常严重的安全问题,特别是VSFTPD没有或者不能使用虚根技术来限制文件访问的时候(甚至VSFTPD是被ROOT启动的)。有一个愚蠢的替代方案是启用deny_file,将其设置为{/*,*..*}等,
但其可靠性却不能和虚根相比,也靠不住。
如果启用这一项,其他配置项的限制也会生效。例如,非匿名登录请求,上传文件的所有权的转换,用于连接的20端口和低于1024的监听端口将不会工作。其他一些配置项也可能被影响。
默认值:NO
secure_email_list_enable
如果你想只接受以指定E-MAIL地址登录的匿名用户的话,启用它。这一般用来在不必要用虚拟用户的情况下,以较低的安全限制去访问较低安全级别的资源。如果启用它,匿名用户除非
用在email_password_file里指定的E-MAIL做为密码,否则不能登录。这个文件的格式是一个密码一行,而且没有额外的空漯
分享到:
相关推荐
数据安全治理三步走之三:数据安全稽核与风险预警.pdf数据安全治理三步走之三:数据安全稽核与风险预警.pdf数据安全治理三步走之三:数据安全稽核与风险预警.pdf数据安全治理三步走之三:数据安全稽核与风险预警.pdf...
三部分之三 schemer3三部分之三 schemer3三部分之三 schemer3三部分之三 schemer3三部分之三 schemer3三部分之三 schemer3三部分之三 schemer3
世界500强管理运营之道之三十三世界500强的推销技巧第.pptx
20210720-方正证券-电动两轮车行业深度之三【趋势篇】三大趋势:长期成长、互联网化、高端化.pdf
SwingSet3用到的5个lib之三SwingSet3用到的5个lib之二SwingSet3用到的5个lib之三SwingSet3用到的5个lib之三
ARM9硬件接口学习之三_GPIO.pdf
20200420-中信证券-新材料行业半导体材料系列之三:IC电子特气三百亿市场,国产加速龙头腾飞.pdf
20210828-平安证券-食品饮料行业酱酒系列报告之三:酱香争霸,共享红利.pdf
20200223-长江证券-锂行业跟踪之三:九问氢氧化锂.pdf
20210705-华安证券-“打新定期跟踪”系列之三十三:2021上半年打新回顾,常态发行,稳中有进.pdf
财政专题研究之三:地方财力怎么看?-20170531-招商证券-22页.pdf
组策略高手完全手册入门篇之三:使用组策略管理软件分发
小米生态链系列研究之三:什么是高效零售?小米之家给出的答案.rar
20210520-广发证券-固收量化策略之三:利率预测,历史致敬未来.pdf
FOF研究系列之三:公募基金经理因子评价体系的构建.pdf
20210326-广发证券-区域经济盘点系列之三:江苏89个区县2020年经济财政债务大盘点.pdf
【路径规划】基于狼群算法之三维路径规划matlab源码.md