vsftpd 配置文件详解

本贴最后更新于 2288 天前,其中的信息可能已经事过景迁

1.默认配置:

1、允许匿名用户和本地用户登陆。

anonymous_enable=YES

local_enable=YES

2、匿名用户使用的登陆名为 ftp 或 anonymous,口令为空;匿名用户不能离开匿名用户家目录/var/ftp,且只能下载不能上传。

3、本地用户的登录名为本地用户名,口令为此本地用户的口令;本地用户可以在自 己家目录中进行读写操作;本地用户可以离开自家目录切换至有权限访问的其他目录,并在权限允许的情况下进行上传/下载。

write_enable=YES

4、写在文件/etc/vsftpd.ftpusers 中的本地用户禁止登陆。

2.配置文件格式:

vsftpd.conf 的内容非常单纯,每一行即为一项设定。若是空白行或是开头为#的一行,将会被忽略。内容的格式只有一种,如下所示:

option=value

要注意的是,等号两边不能加空白。

3.匿名用户(anonymous)设置

anonymous_enable=YES/NO(YES)

控制是否允许匿名用户登入,YES 为允许匿名登入,NO 为不允许。默认值为 YES。

write_enable=YES/NO(YES)

是否允许登陆用户有写权限。属于全局设置,默认值为 YES。

no_anon_password=YES/NO(NO)

若是启动这项功能,则使用匿名登入时,不会询问密码。默认值为 NO。

ftp_username=ftp

定义匿名登入的使用者名称。默认值为 ftp。

anon_root=/var/ftp

使用匿名登入时,所登入的目录。默认值为/var/ftp。注意 ftp 目录不能是 777 的权限属性,即匿名用户的家目录不能有 777 的权限。

anon_upload_enable=YES/NO(NO)

如果设为 YES,则允许匿名登入者有上传文件(非目录)的权限,只有在 write_enable=YES 时,此项才有效。当然,匿名用户必须要有对上层目录的写入权。默认值为 NO。

anon_world_readable_only=YES/NO(YES)

如果设为 YES,则允许匿名登入者下载可阅读的档案(可以下载到本机阅读,不能直接在 FTP 服务器中打开阅读)。默认值为 YES。

anon_mkdir_write_enable=YES/NO(NO)

如果设为 YES,则允许匿名登入者有新增目录的权限,只有在 write_enable=YES 时,此项才有效。当然,匿名用户必须要有对上层目录的写入权。默认值为 NO。

anon_other_write_enable=YES/NO(NO)

如果设为 YES,则允许匿名登入者更多于上传或者建立目录之外的权限,譬如删除或者重命名。(如果 anon_upload_enable=NO,则匿名用户不能上传文件,但可以删除或者重命名已经存在的文件;如果 anon_mkdir_write_enable=NO,则匿名用户不能上传或者新建文件夹,但可以删除或者重命名已经存在的文件夹。)默认值为 NO。

chown_uploads=YES/NO(NO)

设置是否改变匿名用户上传文件(非目录)的属主。默认值为 NO。

chown_username=username

设置匿名用户上传文件(非目录)的属主名。建议不要设置为 root。

anon_umask=077

设置匿名登入者新增或上传档案时的 umask 值。默认值为 077,则新建档案的对应权限为 700。

deny_email_enable=YES/NO(NO)

若是启动这项功能,则必须提供一个档案/etc/vsftpd/banner_emails,内容为 email address。若是使用匿名登入,则会要求输入 email address,若输入的 email address 在此档案内,则不允许进入。默认值为 NO。

banned_email_file=/etc/vsftpd/banner_emails

此文件用来输入 email address,只有在 deny_email_enable=YES 时,才会使用到此档案。若是使用匿名登入,则会要求输入 email address,若输入的 email address 在此档案内,则不允许进入。

4.本地用户设置

local_enable=YES/NO(YES)

控制是否允许本地用户登入,YES 为允许本地用户登入,NO 为不允许。默认值为 YES。

local_root=/home/username

当本地用户登入时,将被更换到定义的目录下。默认值为各用户的家目录。

write_enable=YES/NO(YES)

是否允许登陆用户有写权限。属于全局设置,默认值为 YES。

local_umask=022

本地用户新增档案时的 umask 值。默认值为 077。

file_open_mode=0755

本地用户上传档案后的档案权限,与 chmod 所使用的数值相同。默认值为 0666。

5.欢迎语设置

dirmessage_enable=YES/NO(YES)
如果启动这个选项,那么使用者第一次进入一个目录时,会检查该目录下是否有.message 这个档案,如果有,则会出现此档案的内容,通常这个档案会放置欢迎话语,或是对该目录的说明。默认值为开启。

message_file=.message

设置目录消息文件,可将要显示的信息写入该文件。默认值为.message。

banner_file=/etc/vsftpd/banner

当使用者登入时,会显示此设定所在的档案内容,通常为欢迎话语或是说明。默认值为无。如果欢迎信息较多,则使用该配置项。

ftpd_banner=Welcome to BOB's FTP server

这里用来定义欢迎话语的字符串,banner_file 是档案的形式,而 ftpd_banner 则是字符串的形式。预设为无。

6.控制用户是否允许切换到上级目录

在默认配置下,本地用户登入 FTP 后可以使用 cd 命令切换到其他目录,这样会对系统带来安全隐患。可以通过以下三条配置文件来控制用户切换目录。

chroot_list_enable=YES/NO(NO)

设置是否启用 chroot_list_file 配置项指定的用户列表文件。默认值为 NO。

chroot_list_file=/etc/vsftpd.chroot_list

用于指定用户列表文件,该文件用于控制哪些用户可以切换到用户家目录的上级目录。

chroot_local_user=YES/NO(NO)

用于指定用户列表文件中的用户是否允许切换到上级目录。默认值为 NO。

通过搭配能实现以下几种效果:

当 chroot_list_enable=YES,chroot_local_user=YES 时,在/etc/vsftpd.chroot_list 文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录。

当 chroot_list_enable=YES,chroot_local_user=NO 时,在/etc/vsftpd.chroot_list 文件中列出的用户,不能切换到其他目录;未在文件中列出的用户,可以切换到其他目录。

当 chroot_list_enable=NO,chroot_local_user=YES 时,所有的用户均不能切换到其他目录。

当 chroot_list_enable=NO,chroot_local_user=NO 时,所有的用户均可以切换到其他目录。

7.数据传输模式设置

FTP 在传输数据时,可以使用二进制方式,也可以使用 ASCII 模式来上传或下载数据。

ascii_upload_enable=YES/NO(NO)

设置是否启用 ASCII 模式上传数据。默认值为 NO。

ascii_download_enable=YES/NO(NO)

设置是否启用 ASCII 模式下载数据。默认值为 NO。

8.访问控制设置

两种控制方式:一种控制主机访问,另一种控制用户访问。

① 控制主机访问:

tcp_wrappers=YES/NO(YES)

设置 vsftpd 是否与 tcp wrapper 相结合来进行主机的访问控制。默认值为 YES。如果启用,则 vsftpd 服务器会检查/etc/hosts.allow 和/etc/hosts.deny 中的设置,来决定请求连接的主机,是否允许访问该 FTP 服务器。这两个文件可以起到简易的防火墙功能。

比如:若要仅允许 192.168.0.1—192.168.0.254 的用户可以连接 FTP 服务器,则在/etc/hosts.allow 文件中添加以下内容:

vsftpd:192.168.0. :allow

all:all :deny

② 控制用户访问:

对于用户的访问控制可以通过/etc 目录下的 vsftpd.user_list 和 ftpusers 文件来实现。

userlist_file=/etc/vsftpd.user_list

控制用户访问 FTP 的文件,里面写着用户名称。一个用户名称一行。

**userlist_enable=YES/NO(NO)**ex

是否启用 vsftpd.user_list 文件。

userlist_deny=YES/NO(YES)

决定 vsftpd.user_list 文件中的用户是否能够访问 FTP 服务器。若设置为 YES,则 vsftpd.user_list 文件中的用户不允许访问 FTP,若设置为 NO,则只有 vsftpd.user_list 文件中的用户才能访问 FTP。

/etc/vsftpd/ftpusers 文件专门用于定义不允许访问 FTP 服务器的用户列表(注意:如果 userlist_enable=YES,userlist_deny=NO,此时如果在 vsftpd.user_list 和 ftpusers 中都有某个用户时,那么这个用户是不能够访问 FTP 的,即 ftpusers 的优先级要高)。默认情况下 vsftpd.user_list 和 ftpusers,这两个文件已经预设置了一些不允许访问 FTP 服务器的系统内部账户。如果系统没有这两个文件,那么新建这两个文件,将用户添加进去即可。

9.访问速率设置

anon_max_rate=0

设置匿名登入者使用的最大传输速度,单位为 B/s,0 表示不限制速度。默认值为 0。

local_max_rate=0

本地用户使用的最大传输速度,单位为 B/s,0 表示不限制速度。预设值为 0。

10.超时时间设置

accept_timeout=60

设置建立 FTP 连接的超时时间,单位为秒。默认值为 60。

connect_timeout=60

PORT 方式下建立数据连接的超时时间,单位为秒。默认值为 60。

data_connection_timeout=120

设置建立 FTP 数据连接的超时时间,单位为秒。默认值为 120。

idle_session_timeout=300

设置多长时间不对 FTP 服务器进行任何操作,则断开该 FTP 连接,单位为秒。默认值为 300。

11.日志文件设置

xferlog_enable= YES/NO(YES)

是否启用上传/下载日志记录。如果启用,则上传与下载的信息将被完整纪录在 xferlog_file 所定义的档案中。预设为开启。

xferlog_file=/var/log/vsftpd.log

设置日志文件名和路径,默认值为/var/log/vsftpd.log。

xferlog_std_format=YES/NO(NO)

如果启用,则日志文件将会写成 xferlog 的标准格式,如同 wu-ftpd 一般。默认值为关闭。

log_ftp_protocol=YES|NO(NO)

如果启用此选项,所有的 FTP 请求和响应都会被记录到日志中,默认日志文件在/var/log/vsftpd.log。启用此选项时,xferlog_std_format 不能被激活。这个选项有助于调试。默认值为 NO。

12.定义用户配置文件

在 vsftpd 中,可以通过定义用户配置文件来实现不同的用户使用不同的配置。

user_config_dir=/etc/vsftpd/userconf

设置用户配置文件所在的目录。当设置了该配置项后,用户登陆服务器后,系统就会到/etc/vsftpd/userconf 目录下,读取与当前用户名相同的文件,并根据文件中的配置命令,对当前用户进行更进一步的配置。

例如:定义 user_config_dir=/etc/vsftpd/userconf,且主机上有使用者 test1,test2,那么我们就在 user_config_dir 的目录新增文件名为 test1 和 test2 两个文件。若是 test1 登入,则会读取 user_config_dir 下的 test1 这个档案内的设定。默认值为无。利用用户配置文件,可以实现对不同用户进行访问速度的控制,在各用户配置文件中定义 local_max_rate=XX,即可。

13.FTP 的工作方式与端口设置

FTP 有两种工作方式:PORT FTP(主动模式)和 PASV FTP(被动模式)

listen_port=21

设置 FTP 服务器建立连接所监听的端口,默认值为 21。

connect_from_port_20=YES/NO

指定 FTP 使用 20 端口进行数据传输,默认值为 YES。

ftp_data_port=20

设置在 PORT 方式下,FTP 数据连接使用的端口,默认值为 20。

pasv_enable=YES/NO(YES)

若设置为 YES,则使用 PASV 工作模式;若设置为 NO,则使用 PORT 模式。默认值为 YES,即使用 PASV 工作模式。

pasv_max_port=0

在 PASV 工作模式下,数据连接可以使用的端口范围的最大端口,0 表示任意端口。默认值为 0。

pasv_min_port=0

在 PASV 工作模式下,数据连接可以使用的端口范围的最小端口,0 表示任意端口。默认值为 0。

14.与连接相关的设置

listen=YES/NO(YES)

设置 vsftpd 服务器是否以 standalone 模式运行。以 standalone 模式运行是一种较好的方式,此时 listen 必须设置为 YES,此为默认值。建议不要更改,有很多与服务器运行相关的配置命令,需要在此模式下才有效。若设置为 NO,则 vsftpd 不是以独立的服务运行,要受到 xinetd 服务的管控,功能上会受到限制。

max_clients=0

设置 vsftpd 允许的最大连接数,默认值为 0,表示不受限制。若设置为 100 时,则同时允许有 100 个连接,超出的将被拒绝。只有在 standalone 模式运行才有效。

max_per_ip=0

设置每个 IP 允许与 FTP 服务器同时建立连接的数目。默认值为 0,表示不受限制。只有在 standalone 模式运行才有效。

listen_address=IP 地址

设置 FTP 服务器在指定的 IP 地址上侦听用户的 FTP 请求。若不设置,则对服务器绑定的所有 IP 地址进行侦听。只有在 standalone 模式运行才有效。

setproctitle_enable=YES/NO(NO)

设置每个与 FTP 服务器的连接,是否以不同的进程表现出来。默认值为 NO,此时使用 ps aux |grep ftp 只会有一个 vsftpd 的进程。若设置为 YES,则每个连接都会有一个 vsftpd 的进程。

15.虚拟用户设置

虚拟用户使用 PAM 认证方式。

pam_service_name=vsftpd

设置 PAM 使用的名称,默认值为/etc/pam.d/vsftpd。

guest_enable= YES/NO(NO)

启用虚拟用户。默认值为 NO。

guest_username=ftp

这里用来映射虚拟用户。默认值为 ftp。

virtual_use_local_privs=YES/NO(NO)

当该参数激活(YES)时,虚拟用户使用与本地用户相同的权限。当此参数关闭(NO)时,虚拟用户使用与匿名用户相同的权限。默认情况下此参数是关闭的(NO)。

16.其他设置

text_userdb_names= YES/NO(NO)

设置在执行 ls –la 之类的命令时,是显示 UID、GID 还是显示出具体的用户名和组名。默认值为 NO,即以 UID 和 GID 方式显示。若希望显示用户名和组名,则设置为 YES。

ls_recurse_enable=YES/NO(NO)

若是启用此功能,则允许登入者使用 ls –R(可以查看当前目录下子目录中的文件)这个指令。默认值为 NO。

hide_ids=YES/NO(NO)

如果启用此功能,所有档案的拥有者与群组都为 ftp,也就是使用者登入使用 ls -al 之类的指令,所看到的档案拥有者跟群组均为 ftp。默认值为关闭。

download_enable=YES/NO(YES)
如果设置为 NO,所有的文件都不能下载到本地,文件夹不受影响。默认值为 YES。

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • 京东

    京东是中国最大的自营式电商企业,2015 年第一季度在中国自营式 B2C 电商市场的占有率为 56.3%。2014 年 5 月,京东在美国纳斯达克证券交易所正式挂牌上市(股票代码:JD),是中国第一个成功赴美上市的大型综合型电商平台,与腾讯、百度等中国互联网巨头共同跻身全球前十大互联网公司排行榜。

    14 引用 • 102 回帖 • 404 关注
  • Hprose

    Hprose 是一款先进的轻量级、跨语言、跨平台、无侵入式、高性能动态远程对象调用引擎库。它不仅简单易用,而且功能强大。你无需专门学习,只需看上几眼,就能用它轻松构建分布式应用系统。

    9 引用 • 17 回帖 • 597 关注
  • IBM

    IBM(国际商业机器公司)或万国商业机器公司,简称 IBM(International Business Machines Corporation),总公司在纽约州阿蒙克市。1911 年托马斯·沃森创立于美国,是全球最大的信息技术和业务解决方案公司,拥有全球雇员 30 多万人,业务遍及 160 多个国家和地区。

    16 引用 • 53 回帖 • 123 关注
  • Hexo

    Hexo 是一款快速、简洁且高效的博客框架,使用 Node.js 编写。

    21 引用 • 140 回帖 • 25 关注
  • 房星科技

    房星网,我们不和没有钱的程序员谈理想,我们要让程序员又有理想又有钱。我们有雄厚的房地产行业线下资源,遍布昆明全城的 100 家门店、四千地产经纪人是我们坚实的后盾。

    6 引用 • 141 回帖 • 559 关注
  • Latke

    Latke 是一款以 JSON 为主的 Java Web 框架。

    70 引用 • 532 回帖 • 712 关注
  • 心情

    心是产生任何想法的源泉,心本体会陷入到对自己本体不能理解的状态中,因为心能产生任何想法,不能分出对错,不能分出自己。

    59 引用 • 369 回帖 • 1 关注
  • HBase

    HBase 是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的 Google 论文 “Bigtable:一个结构化数据的分布式存储系统”。就像 Bigtable 利用了 Google 文件系统所提供的分布式数据存储一样,HBase 在 Hadoop 之上提供了类似于 Bigtable 的能力。

    17 引用 • 6 回帖 • 45 关注
  • Swift

    Swift 是苹果于 2014 年 WWDC(苹果开发者大会)发布的开发语言,可与 Objective-C 共同运行于 Mac OS 和 iOS 平台,用于搭建基于苹果平台的应用程序。

    34 引用 • 37 回帖 • 497 关注
  • JWT

    JWT(JSON Web Token)是一种用于双方之间传递信息的简洁的、安全的表述性声明规范。JWT 作为一个开放的标准(RFC 7519),定义了一种简洁的,自包含的方法用于通信双方之间以 JSON 的形式安全的传递信息。

    20 引用 • 15 回帖 • 17 关注
  • Thymeleaf

    Thymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎。类似 Velocity、 FreeMarker 等,它也可以轻易的与 Spring 等 Web 框架进行集成作为 Web 应用的模板引擎。与其它模板引擎相比,Thymeleaf 最大的特点是能够直接在浏览器中打开并正确显示模板页面,而不需要启动整个 Web 应用。

    11 引用 • 19 回帖 • 319 关注
  • 新人

    让我们欢迎这对新人。哦,不好意思说错了,让我们欢迎这位新人!
    新手上路,请谨慎驾驶!

    51 引用 • 226 回帖
  • BookxNote

    BookxNote 是一款全新的电子书学习工具,助力您的学习与思考,让您的大脑更高效的记忆。

    笔记整理交给我,一心只读圣贤书。

    1 引用 • 1 回帖 • 2 关注
  • frp

    frp 是一个可用于内网穿透的高性能的反向代理应用,支持 TCP、UDP、 HTTP 和 HTTPS 协议。

    15 引用 • 7 回帖 • 11 关注
  • golang

    Go 语言是 Google 推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发 Go,是因为过去 10 多年间软件开发的难度令人沮丧。Go 是谷歌 2009 发布的第二款编程语言。

    492 引用 • 1383 回帖 • 375 关注
  • Sublime

    Sublime Text 是一款可以用来写代码、写文章的文本编辑器。支持代码高亮、自动完成,还支持通过插件进行扩展。

    10 引用 • 5 回帖
  • Solo

    Solo 是一款小而美的开源博客系统,专为程序员设计。Solo 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!

    1425 引用 • 10043 回帖 • 469 关注
  • Docker

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的操作系统上。容器完全使用沙箱机制,几乎没有性能开销,可以很容易地在机器和数据中心中运行。

    476 引用 • 899 回帖 • 3 关注
  • flomo

    flomo 是新一代 「卡片笔记」 ,专注在碎片化时代,促进你的记录,帮你积累更多知识资产。

    3 引用 • 80 回帖 • 1 关注
  • Openfire

    Openfire 是开源的、基于可拓展通讯和表示协议 (XMPP)、采用 Java 编程语言开发的实时协作服务器。Openfire 的效率很高,单台服务器可支持上万并发用户。

    6 引用 • 7 回帖 • 89 关注
  • TensorFlow

    TensorFlow 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。

    20 引用 • 19 回帖 • 3 关注
  • VirtualBox

    VirtualBox 是一款开源虚拟机软件,最早由德国 Innotek 公司开发,由 Sun Microsystems 公司出品的软件,使用 Qt 编写,在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox。

    10 引用 • 2 回帖 • 6 关注
  • Vim

    Vim 是类 UNIX 系统文本编辑器 Vi 的加强版本,加入了更多特性来帮助编辑源代码。Vim 的部分增强功能包括文件比较(vimdiff)、语法高亮、全面的帮助系统、本地脚本(Vimscript)和便于选择的可视化模式。

    27 引用 • 66 回帖
  • 服务器

    服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。

    124 引用 • 580 回帖
  • gRpc
    10 引用 • 8 回帖 • 54 关注
  • SSL

    SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS 与 SSL 在传输层对网络连接进行加密。

    69 引用 • 190 回帖 • 493 关注
  • 负能量

    上帝为你关上了一扇门,然后就去睡觉了....努力不一定能成功,但不努力一定很轻松 (° ー °〃)

    85 引用 • 1201 回帖 • 450 关注