vsftp 配置参数说明[linux, ubuntu, FTP server]

FTP(文件传输协议)在众多网络应用中,是仅次于web的服务,有着非常重要的地位, 它功能强大,能够很好地运行于众多Unix操作系统中。VSFTP中VS的意思是“Very Secure”。从名称可以看出,从一开始,软件的编写者就非常注重其安全性。除与生俱来的安全性外,VSFTP还具有高速、稳定的性能特点。在稳定性方面,VSFTP可以在单机(非集群)上支持4000个以上的并发用户同时连接。其安装也是十分方便简单的, 以ubuntu系统为例, 它的安装过程简单到只须输入如下的命令:

#apt-get install vsftp

之后就你的FTP就安装完成了, 但是仅是安装完成, 如果不经过配置, 还是不能很好的应用的. 涉及到配置问题, 它的配置参数的理解也就十分重要了, vsftp的各配置参数如下:

配置参数。

anonymous_enable=YES #是否开启匿名用户

no_anon_password=YES #匿名用户login时不询问用户名和口令

anon_umask=077 #匿名用户上传的文件权限是’-rw—-’

anon_upload_enable=YES #是否允许匿名用户上传文件

anon_mkdir_write_enable=YES #是否允许匿名用户建立目录

anon_other_write_enable=YES #是否允许匿名用户具有建立目录,上传之外的权限,如重命名,删除

anon_world_readable_only=YES #匿名登入者是否能下载可阅读的档案

anon_max_rate=80000 #匿名用户的下载速度为80KBytes/s

anon_root=(none) #匿名用户的宿主目录

allow_anon_ssl=NO #匿名用户是否允许使用安全的SSL连接服务器

ftp_username=FTP #定义匿名使用者登录的使用者名称(默认为FTP)

banned_email_file=/etc/vsftpd.banned_emails #禁止使用的匿名用户登陆时作为密码的电子邮件地址使用表的位置

deny_email_enable=NO #禁止使用的匿名用户登陆时作为密码的电子邮件地址

secure_email_list_enable #如果你想只接受以指定E-MAIL地址登录的匿名用户的话,启用它

local_enable=YES #本地用户是否可以登录

local_umask=022 #设置本地用户的文件生成掩码

file_open_mode=0666 #上传文件的权限配合umask使用

local_root=(none) #指定所有本地用户登陆后的目录,如果不设置此项,用户都会登陆于自己的主目录

local_max_rate=500000 #本地用户的下载速度为500KBytes/s

chroot_local_user=YES #是否允许用户离开其宿主目录

chroot_list_enable=NO #登录用户名字若在/etc/vsftpd.chroot_list内,则会启用chroot机制,将这个用户限制在其home目录下.

guest_enable=YES #是否开启虚拟用户(如果开启则匿名用户用使用guest_username值的用户)

guest_username=vsftpd #指定虚拟用户名

virtual_use_local_privs=YES #虚拟用户和本地用户权限是否相同

userlist_enable=YES #是根据user_list实行访问控制(若启用此选项,userlist_deny选项才被启动)

userlist_deny=NO #若为YES,则userlist_file中的用户将不能登录,为NO则只有userlist_file的用户可以登录

write_enable=YES #用户是否具有写的权限(全局,若要对其中一种用户开放上传权限,此处必须YES)

download_enable=YES #是否允许下载(全局模式)

chmod_enable=YES #是否可以修改文件权限

nopriv_user= nobody #设定服务执行者为nobody,vsftpd推荐使用一个权限很低的用户,最好是没有家目录(/dev/null),没有登陆shell(/sbin/nologin),系统会更安全

dirmessage_enable=YES #当切换到FTP服务器的某个目录这哦功时,是否显示该目录下的.message信息

dirlist_enable=YES #是否启用通俗命令(如果设置为NO,那么只能使用unix/linux的命令)

xferlog_enable=YES #是否启用上传和下载日志

xferlog_std_format=YES #是否使用标准的ftpd xferlog日志格式

xferlog_file=/var/log/vsftpd.log #将上传下载日志记录到/var/log/vsftpd.log中

log_ftp_protocol=NO #当xferlog_std_format关闭且本选项开启时,记录所有ftp请求和回复,当调试比较有用.

dual_log_enable=NO #如果启用,两个LOG文件会各自产生,默认的是/var/log/xferlog和/var/log/vsftpd.log

vsftpd_log_file=/var/log/vsftpd.log #这是被生成的vsftpd格式的log文件的名字(只有xferlog_enable被设置,而xferlog_std_format没有被设置时,此项才生效)

syslog_enable=NO #如果启用,系统log将取代vsftpd的log输出到/var/log/vsftpd.log.FTPD的log工具将不工作

connect_from_port_20=YES #是否启用FTP数据端口的连接请求

listen=YES #是否使用standalone启动vsftpd,而不是super daemon(xinetd)控制它 (vsftpd推荐使用standalone方式)

listen_ipv6=NO #与’listen’功能嗯相同,但此项监听IPV6(两个只能设置一个)

pam_service_name=vsftpd #PAM认证服务配置文件名称,保存在”/etc/pam.d”目录下

userlist_enable=YES #是否检查userlist_file设置文件

tcp_wrappers=YES #是否使用tcp_wrappers作为主机访问控制方式(tcp_wrappers的两个配置文件”/etc/hosts.allow 允许访问的主机”,”/etc/hosts.deny拒绝访问的主机”

ftpd_banner=Welcome to yayi.biz FTP Service #FTP欢迎信息(如果设置了banner_file则此设置无效)

banner_file=/etc/vsftpd/banner #定义登录信息文件的位置

check_shell=NO #是否检测SHELL

chown_uploads=YES #是否开启匿名上传用户切换(如果开启,上传用户则变为’chown_username=daemon’指定的用户)

chown_username=daemon #匿名上传文件的属主

file_open_mode=0666 #对于上传的文件设定权限

idle_session_timeout=600 #客户端超过600S没有动作则视为超时

data_connection_timeout=300 #数据传输时超过120S没有动作则视为超时

connect_timeout=60 #连接超时时间

pasv_min_port=30000 #建立资料联机所可以使用port 范围的上界,0表示任意,默认值为0

pasv_max_port=30999 #建立资料联机所可以使用port 范围的下界,0表示任意,默认值为0

pasv_enable=YES #是否允许使用PASV模式

pasv_promiscuous+NO #是否关闭PASV安全检查.(删除’+NO’则开启)

pasv_address=(none) #使vsftpd在pasv命令回复时跳转到指定的IP地址.

port_enable=YES #是否允许使用PORT模式

prot_promiscuous #是否开启安全PORT检查(‘+NO’则不开启)

pasv_max_port=0 #指定为被动模式数据连接分配的最大端口(0为任何)

pasv_min_port=0 #指定为被动模式数据连接分配的最小端口(0为任何)

ACCEPT_TIMEOUT=60 #PAVS请求60s无响应则视为超时

ascii_upload_enable=YES #是否可用ASCII 模式上传(默认为NO)

ascii_download_enable=YES #是否可用ASCII 模式下载(默认为NO)

secure_chroot_dir=/usr/share/empty #这个选项必须指定一个空的数据夹且任何登入者都不能有写入的权限,当vsftpd 不需要file system 的权限时,就会将使用者限制在此数据夹中,默认值为/usr/share/empty

ls_recurse_enable=YES #是否能使用ls -R命令以(防止浪费大量的服务器资源)

one_process_model=YES #是否使用单进程模式

text_userdb_names=NO #是否可以查看文件拥有者的UID

use_localtime=NO #显示目录清单时是用本地时间还是GMT时间,可以通过mdtm命令来达到一样的效果

use_sendfile=YES #是否测试平台优化

setproctitle_enable=YES #是否显示状态会话信息

user_config_dir=/etc/vsftpd/userconf #定义用户配置文件的目录

local_root=xxx #定义本地用户登陆的根目录,注意定义根目录可以是相对路径也可以是绝对路径.相对路径是针对用户家目录来说的

max_clients=0 #可接受的最大client数目(0为不限制)

max_per_ip=0 #每个ip的最大client数目(0为不限制)

connect_from_port_20=YES #是否启用FTP数据端口的数据连接

ftp_data_port=20 #设定PORT模式下的连接端口(只要connect_from_port_20被激活)

listen_address=192.168.0.2 #绑定FTP的IP地址(在多网卡或者多IP地址的机器上使用)

listen_port=2121 #绑定FTP使用使用端口

ftp_data_port=2020 #绑定FTP数据传输端口

background=NO #起用时,VSFTPD将把监听进程置于后台,但访问VSFTPD时,控制台将立即被返回到SHELL

force_dot_files=NO #如果激活, 以. 开始的文件和目录在目录列取的时候将会被显示, 即使客户端没有使用”a” 标识. 这不包括”.” 和”..” 目录

ssl_enable=NO #是否启用SSL

force_local_data_ssl=YES #是否要求非匿名用户使用安全的SSL在数据线路上收发数据

force_local_logins_ssl=YES #是否要求非匿名用户使用安全的SSL登录以发送密码

ssl_tlsv1=YES #是否允许以TLS V1协议的连接,TLS V1连接将是首选

ssl_sslv2=NO #是否允许以SSL V2协议的连接,TLS V1连接将是首选

ssl_sslv3=NO #是否允许以SSL V3协议的连接,TLS V1连接将是首选

hide_ids=NO #如果启用,目录资源列表里所有用户和组的信息将显示为\”ftp\”.

run_as_launching_user=NO #如果你使用非root用户启动vsftpd时使用.(不是Linux专业人士请不要使用,除非自己清楚自己在作什么.)

session_support=NO #是否让VSFTPD去尝试管理登录会话

text_userdb_names #默认情况下,在文件列表中,数字ID将被显示在用户和组的区域.你可以编辑这个参数以使其使用数字ID变成文字

本文转载: http://gxjluck.blog.51cto.com/1211751/727896

http://blog.sina.com.cn/s/blog_6311c8c70100n77a.html