格式
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客户端要使用这一点。并且,这个功能又难于操做,因此,默认是把它关闭了。可是,有些客户端在取消一个传送的时候会被挂死(估计是客户端无响应了),那你只有启用这个功能才能避免这种状况。
默认值:NO
background
启用时,而且VSFTPD是“listen”模式启动的(就是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目录,锁定在虚根下(进入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表(咱们都知道,匿名用户是用邮件地址作密码的)以阻止以这些密码登陆的匿名用户。
默认状况下,这个列表文件是/etc/vsftpd.banner_emails,但你也能够经过设置banned_email_file来改变默认值。
默认值:NO
dirlist_enable
若是设置为NO,全部的列表命令(如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里)以.开始的文件和目录都会显示在目录资源列表里。可是把"."和".."不会显示。(即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文件时,有时候看上去象被挂死(无响应)了。原文以下: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
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。肯定后再启用它(原话是:只有你清楚你在作什么时才启用它!) 合理的用法是:在一些安全隧道配置环境下,或者更好地支持FXP时(才启用它)。
默认值:NO
port_enable
若是你想关闭以端口方式得到数据链接时,请关闭它。
默认值:YES
port_promiscuous
若是你想关闭端口安全检查(这个检查能够确保对外的(outgoing)数据线路只通向客户端)时,请关闭它。确认后再作!
默认值:NO
run_as_launching_user
若是你想让一个用户能启动VSFTPD的时候,能够设为YES。当ROOT用户不能去启动VSFTPD的时候会颇有用(应该不是说ROOT用户没有权限启VSFTPD,而是由于别的,例如安全限制,而不能以ROOT身份直接启动VSFTPD)。强烈警告!!别启用这一项,除非你彻底清楚你在作什么!随意地启动这一项会致使 很是严重的安全问题,特别是VSFTPD没有或者不能使用虚根技术来限制文件访问的时候(甚至VSFTPD是被ROOT启动的)。有一个愚蠢的替代方案是启用deny_file,将其设置为{/*,*..*}等, 但其可靠性却不能和虚根相比,也靠不住。若是启用这一项,其余配置项的限制也会生效。例如,非匿名登陆请求,上传文件的全部权的转换,用于链接的20端口和低于1024的监听端口将不会工做。其余一些配置项也可能被影响。
默认值:NO
secure_email_list_enable
若是你想只接受以指定E-MAIL地址登陆的匿名用户的话,启用它。这通常用来在没必要要用虚拟用户的状况下,以较低的安全限制去访问较低安全级别的资源。若是启用它,匿名用户除非 用在email_password_file里指定的E-MAIL作为密码,不然不能登陆。这个文件的格式是一个密码一行,并且没有额外的空格。默认的文件名是:/etc/vsftpd.email_passwords.
默认值:NO
session_support
这将配置是否让VSFTPD去尝试管理登陆会话。若是VSFTPD管理会话,它会尝试并更新utmp和wtmp。它也会打开一个pam会话(pam_session),直到LOGOUT才会关闭它,若是使用PAM进行认证的话。若是你不须要会话纪录,或者想VSFTPD运行更少的进程,或者让它更大众化,你能够关闭它。
注:utmp和wtmp只在有PAM的环境下才支持。
默认值:NO
setproctitle_enable
若是启用,VSFTPD将在系统进程列表中显示会话状态信息。换句话说,进程名字将变成VSFTPD会话当前正在执行的动做(等待,下载等等)。为了安全目的,你能够关闭这一项。
默认值:NO
ssl_enable
若是启用,vsftpd将启用openSSL,经过SSL支持安全链接。这个设置用来控制链接(包括登陆)和数据线路。同时,你的客户端也要支持SSL才行。
注意:当心启用此项.VSFTPD不保证OpenSSL库的安全性。启用此项,你必须确信你安装的OpenSSL库是安全的。
默认值:NO
ssl_sslv2
要激活ssl_enable才能启用它。若是启用,将容许SSL V2协议的链接。TLS V1链接将是首选。
默认值:NO
ssl_sslv3
要激活ssl_enable才能启用它。若是启用,将容许SSL V3协议的链接。TLS V1链接将是首选。
默认值:NO
ssl_tlsv1
要激活ssl_enable才能启用它。若是启用,将容许TLS V1协议的链接。TLS V1链接将是首选。
默认值:YES
syslog_enable
若是启用,系统log将取代vsftpd的log输出到/var/log/vsftpd.log.FTPD的了log工具将不工做。
默认值:NO
tcp_wrappers
若是启用,vsftpd将被tcp_wrappers所支持。进入的(incoming)链接将被tcp_wrappers访问控制所反馈。若是tcp_wrappers设置了
VSFTPD_LOAD_CONF环境变量,那么vsftpd将尝试调用这个变量所指定的配置。
默认值:NO
text_userdb_names
默认状况下,在文件列表中,数字ID将被显示在用户和组的区域。你能够编辑这个参数以使其使用数字ID变成文字。为了保证FTP性能,默认状况下,此项被关闭。
默认值:NO
tilde_user_enable
若是启用,vsftpd将试图解析相似于~chris/pics的路径名(一个"~"(tilde)后面跟着个用户名)。注意,vsftpd有时会一直解析路径名"~"和"~/"(在这里,~被解析成内部登陆目录)。
~用户路径(~user paths)只有在当前虚根下找到/etc/passwd文件时才被解析。
默认值:NO
use_localtime
若是启用,vsftpd在显示目录资源列表的时候,在显示你的本地时间。而默认的是显示GMT(格林尼治时间)。经过MDTM FTP命令来显示时间的话也会被这个设置所影响。
默认值:NO
use_sendfile
一个内部设定,用来测试在你的平台上使用sendfile()系统呼叫的相关好处(benefit).
默认:YES
userlist_deny
这个设置在userlist_enable被激活后能被验证。若是你设置为NO,那么只有在userlist_file里明确列出的用户才能登陆。
若是是被拒绝登陆,那么在被询问密码前,用户就将被系统拒绝。
默认值:YES
userlist_enable
若是启用,vsftpd将在userlist_file里读取用户列表。若是用户试图以文件里的用户名登陆,那么在被询问用户密码前,他们就将被系统拒绝。
这将防止明文密码被传送。参见userlist_deny。
默认值:NO
virtual_use_local_privs
若是启用,虚拟用户将拥有和本地用户同样的权限。默认状况下,虚拟用户就拥有和匿名用户同样的权限,然后者每每有更多的限制(特别是写权限)。
默认值:NO
write_enable
这决定是否容许一些FTP命令去更改文件系统。这些命令是STOR, DELE, RNFR, RNTO, MKD, RMD, APPE 和 SITE。
默认值:NO
xferlog_enable
若是启用,一个log文件将详细纪录上传和下载的信息。默认状况下,这个文件是/var/log/vsftpd.log,但你也能够经过更改vsftpd_log_file来指定其默认位置。
默认值:NO (但在范例配置文件中,启用了这一项)
xferlog_std_format
若是启用,log文件将以标准的xferlog格式写入(wu-ftpd使用的格式),以便于你用现有的统计分析工具进行分析。但默认的格式具备更好的可读性。默认状况下,log文件是在/var/log/xferlog。可是,你能够经过修改xferlog_file来指定新路径。
默认值:NO
======
数字选项
如下是数字配置项。这些项必须设置为非负的整数。为了方便umask设置,容许输入八进制数,那样的话,数字必须以0开始。
accept_timeout
超时,以秒为单位,设定远程用户以被动方式创建链接时最大尝试创建链接的时间。
默认值:60
anon_max_rate
对于匿名用户,设定容许的最大传送速率,单位:字节/秒。
默认值:0 (无限制)
anon_umask
为匿名用户建立的文件设定权限。注意:若是你想输入8进制的值,那么其中的0不一样于10进制的0。
默认值:077
connect_timeout
超时。单位:秒。是设定远程用户必须回应PORT类型数据链接的最大时间。
默认值:60
data_connection_timeout
超时,单位:秒。设定数据传输延迟的最大时间。时间一到,远程用户将被断开链接。
默认值:300
file_open_mode
对于上传的文件设定权限。若是你想被上传的文件可被执行,umask要改为0777。
默认值:0666
ftp_data_port
设定PORT模式下的链接端口(只要connect_from_port_20被激活)。
默认值:20
idle_session_timeout
超时。单位:秒。设置远程客户端在两次输入FTP命令间的最大时间。时间一到,远程客户将被断开链接。
默认值:300
listen_port
若是vsftpd处于独立运行模式,这个端口设置将监听的FTP链接请求。
默认值:21
local_max_rate
为本地认证用户设定最大传输速度,单位:字节/秒。
默认值:0(无限制)
local_umask
设置本地用户建立的文件的权限。注意:若是你想输入8进制的值,那么其中的0不一样于10进制的0。
默认值:077
max_clients
若是vsftpd运行在独立运行模式,这里设置了容许链接的最大客户端数。再后来的用户端将获得一个错误信息。
默认值:0(无限制)
max_per_ip
若是vsftpd运行在独立运行模式,这里设置了容许一个IP地址的最大接入客户端。若是超过了最大限制,将获得一个错误信息。
默认值:0(无限制)
pasv_max_port
指定为被动模式数据链接分配的最大端口。可用来指定一个较小的范围以配合防火墙。
默认值:0(使用任何端口)
pasv_min_port
指定为被动模式数据链接分配的最小端口。可用来指定一个较小的范围以配合防火墙。
默认值:0(使用任何端口)
trans_chunk_size
你通常不须要改这个设置。但也能够尝试改成如8192去减少带宽限制的影响。
默认值:0(让vsftpd自行选择)
===========
STRING 配置项
如下是STRING 配置项
anon_root
设置一个目录,在匿名用户登陆后,vsftpd会尝试进到这个目录下。若是失败则略过。
默认值:无
banned_email_file
deny_email_enable启动后,匿名用户若是使用这个文件里指定的E-MAIL密码登陆将被拒绝。
默认值:/etc/vsftpd.banned_emails
banner_file
设置一个文本,在用户登陆后显示文本内容。若是你设置了ftpd_banner,ftpd_banner将无效。
默认值:无
chown_username
改变匿名用户上传的文件的全部者。需设定chown_uploads。
默认值:root
chroot_list_file
这个项提供了一个本地用户列表,表内的用户登陆后将被放在虚根下,并锁定在home目录。这须要chroot_list_enable项被启用。
若是chroot_local_user项被启用,这个列表就变成一个不将列表里的用户锁定在虚根下的用户列表了。
默认值:/etc/vsftpd.chroot_list
cmds_allowed
以逗号分隔的方式指定可用的FTP命令(post login. USER, PASS and QUIT 是始终可用的命令)。
其余命令将被屏蔽。这是一个强有力的locking down一个FTP服务器的手段。例如:cmds_allowed=PASV,RETR,QUIT
默认值:无
deny_file
这能够设置一个文件名或者目录名式样以阻止在任何状况下访问它们。并非隐藏它们,而是拒绝任何试图对它们进行的操做(下载,改变目录层,和其余有影响的操做)。这个设置很简单,并且不会用于严格的访问控制-文件系统权限将优先生效。然而,这个设置对肯定的虚拟用户设置颇有用。特别是若是一个文件能多个用户名访问的话(多是经过软链接或者硬链接),那就要拒绝全部的访问名。建议你为使用文件系统权限设置一些重要的安全策略以获取更高的安全性。如deny_file={*.mp3,*.mov,.private}
默认值:无
dsa_cert_file
这个设置为SSL加密链接指定了DSA证书的位置。
默认值:无(有一个RSA证书就够了)
email_password_file
在设置了secure_email_list_enable后,这个设置能够用来提供一个备用文件。
默认值:/etc/vsftpd.email_passwords
ftp_username
这是用来控制匿名FTP的用户名。这个用户的home目录是匿名FTP区域的根。
默认值:ftp
ftpd_banner
当一个链接首次接入时将现实一个欢迎界面。
默认值:无(默认的界面会被显示)
guest_username
参见相关设置guest_enable。这个设置设定了游客进入后,其将会被映射的名字。
默认:ftp
hide_file
设置了一个文件名或者目录名列表,这个列表内的资源会被隐藏,不论是否有隐藏属性。但若是用户知道了它的存在,将可以对它进行彻底的访问。hide_file里的资源和符合hide_file指定的规则表达式的资源将被隐藏。vsftpd的规则表达式很简单,例如hide_file={*.mp3,.hidden,hide*,h?}
默认值:无
listen_address
若是vsftpd运行在独立模式下,本地接口的默认监听地址将被这个设置代替。须要提供一个数字化的地址。
默认值:无
listen_address6
若是vsftpd运行在独立模式下,要为IPV6指定一个监听地址(若是listen_ipv6被启用的话)。须要提供一个IPV6格式的地址。
默认值:无
local_root
设置一个本地(非匿名)用户登陆后,vsftpd试图让他进入到的一个目录。若是失败,则略过。
默认值:无
message_file
当进入一个新目录的时候,会查找这个文件并显示文件里的内容给远程用户。dirmessage_enable需启用。
默认值:.message
nopriv_user
这是vsftpd作为彻底无特权的用户的名字。这是一个专门的用户,比nobody更甚。用户nobody每每用来在一些机器上作一些重要的事情。
默认值:nobody
pam_service_name
设定vsftpd将要用到的PAM服务的名字。
默认值:ftp
pasv_address
当使用PASV命令时,vsftpd会用这个地址进行反馈。须要提供一个数字化的IP地址。
默认值:无(地址将取自进来(incoming)的链接的套接字)
rsa_cert_file
这个设置指定了SSL加密链接须要的RSA证书的位置。
默认值:/usr/share/ssl/certs/vsftpd.pem
secure_chroot_dir
这个设置指定了一个空目录,这个目录不容许ftp user写入。在vsftpd不但愿文件系统被访问时,目录为安全的虚根所使用。
默认值: /usr/share/empty
ssl_ciphers
这个设置将选择vsftpd为加密的SSL链接所用的SSL密码。详细信息参见ciphers。
默认值:DES-CBC3-SHA
user_config_dir
这个强大的设置容许覆盖一些在手册页中指定的配置项(基于单个用户的)。用法很简单,最好结合范例。若是你把user_config_dir
改成/etc/vsftpd_user_conf,那么以chris登陆,vsftpd将调用配置文件/etc/vsftpd_user_conf/chris。
默认值:无
user_sub_token
这个设置将依据一个模板为每一个虚拟用户建立home目录。例如,若是真实用户的home目录经过guest_username为/home/virtual/$USER 指定,
而且user_sub_token设置为 $USER ,那么虚拟用户fred登陆后将锁定在/home/virtual/fred下。
默认值:无
userlist_file
当userlist_enable被激活,系统将去这里调用文件。
默认值:/etc/vsftpd.user_list
vsftpd_log_file
只有xferlog_enable被设置,而xferlog_std_format没有被设置时,此项才生效。这是被生成的vsftpd格式的log文件的名字。
dual_log_enable和这个设置不能同时启用。若是你启用了syslog_enable,那么这个文件不会生成,而只产生一个系统log.
默认值:/var/log/vsftpd.log
xferlog_file
这个设置是设定生成wu-ftpd格式的log的文件名。只有启用了xferlog_enable和xferlog_std_format后才能生效。
但不能和dual_log_enable同时启用。
默认值:/var/log/xferlogshell