linux-doc-vsftpd搭建和使用

搭建

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# yum 安装
yum install vsftpd

# 修改配置开启端口限制
vi /etc/vsftpd/vsftpd.conf
pasv_min_port=4000 #随机最小端口
pasv_max_port=5000 #随机最大端口

# 如果有开启iptables
# 添加开放端口
vi /etc/sysconfig/iptables 在*filter下加入下
-A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
-A OUTPUT -p tcp --sport 4000:5000 -j ACCEPT
-A INPUT -p tcp --dport 4000:5000 -j ACCEPT

使用

文件说明

1
2
3
/etc/vsftpd/vsftpd.conf:vsftpd 的核心配置文件
/etc/vsftpd/ftpusers:用于指定哪些用户不能访问FTP 服务器。 黑名单
/etc/vsftpd/user_list:指定允许使用vsftpd 的用户列表文件。 白名单

目录

1
/var/ftp/

conf变量说明

  • 用户相关
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 设置是否允许匿名用户登录FTP服务器。默认为YES
anonymous_enable=YES
# 是否允许本地用户登录FTP服务器。默认为NO
local_enable=YES
# 是否对登录用户开启写权限。属全局性设置。默认NO
write_enable=YES
# 是否允许匿名用户上传文件,默认为NO
anon_upload_enable=YES
# 是否允许匿名用户创建目录,默认为NO
anon_mkdir_write_enable=YES
# 黑名单设置。如果很讨厌某些email address,就可以使用此设定来取消他的登录权限
deny_email_enable=YES
# 当deny_email_enable=YES时,可以利用这个设定项来规定哪些邮件地址不可登录vsftpd服务器
banned_email_file=/etc/vsftpd/banned_emails
  • 文件相关
1
2
3
4
5
6
# 设置本地用户的文件生成umask为022。默认是077
local_umask=022
# 用于设置是否改变匿名用户上传的文档的属主。默认为NO。
chown_uploads=YES
# 设置匿名用户上传的文档的属主名。只有chown_uploads=YES时才有效。默认为root(建议不要为root用户)
chown_username=whoever
  • 设定相关
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# 是够允许主动模式FTP,默认为NO
connect_from_port_20=YES
# 设置多长时间不对FTP服务器进行任何操作,则断开该FTP连接,单位为秒,默认为300
idle_session_timeout=600
# 设置建立FTP数据连接的超时时间,默认为300秒。
data_connection_timeout=120
# 运行vsftpd需要的非特权系统用户,默认是nobody
nopriv_user=ftpsecure
# 是否识别异步ABOR请求
async_abor_enable=YES
# 设置是否启用ASCII模式下载数据。默认为NO。
ascii_upload_enable=YES
# 设置是否启用ASCII模式上传数据。默认为NO。
ascii_download_enable=YES
# 是否将实体用户限制在自己的家目录内,默认为NO
chroot_local_user=YES
# 设置是否启用chroot_list_file配置项指定的用户列表文件,默认为NO
chroot_list_enable=YES
# 用于指定用户列表文件,该文件用于控制哪些用户限制在家目录
chroot_list_file=/etc/vsftpd/chroot_list
# 是否允许递归查询。默认为NO,以防止远程用户造成过量的I/O
ls_recurse_enable=YES
# 设置vsftpd服务器是否以standalone模式运行,默认为NO
listen=NO
# 是否监听ipv6地址,默认为NO
listen_ipv6=YES
# 设置在PAM所使用的名称,默认值为vsftpd
pam_service_name=vsftpd
# 决定/etc/vsftpd/user_list文件是否启用生效。YES则生效,NO不生效
userlist_enable=YES
# 用来设置vsftpd服务器是否与tcp wrapper相结合,进行主机的访问控制
tcp_wrappers=YES
# 是否使用本地时间,默认为NO(默认使用GMT时间)
use_localtime=YES
# vsftpd的端口号,默认为21
listen_port=21
# 是否启用数据的被动模式连接,默认为YES
pasv_enable=YES
# 设置FTP被动模式连接的最小端口。默认为0,表示不受限制
pasv_min_port=0
# 设置FTP被动模式连接的最大端口。默认为0,表示不受限制
pasv_max_port=0
# PORT方式下建立数据连接的超时时间,单位为秒 ,默认为60
connect_timeout=60
# 被动(PASV)数据连接的超时时间,单位为秒,默认值为60
accept_timeout=60
# vsftpd允许每个客户端的最大连接数,默认为0,表示不受限制
max_clients=0
# vsftpd允许每个IP的最大连接数,默认为0,表示不受限制
max_per_ip=0
# 本地用户所能使用的最大传输速度。默认为0,表示不受限制
local_max_rate=0
# 匿名用户所能使用的最大传输速度。默认为0,表示不受限制
anon_max_rate=0
# 仅允许匿名用户具有下载可读文件的权限,默认为YES
anon_world_readable_only=YES
# 是否允许匿名用户具有除了写之外的权限,包括删除与修改文件和目录,默认为NO
anon_other_write_enable=YES
# 定义匿名用户的账户名称,默认值为ftp。
ftp_username=ftp
# 匿名用户登录时是否询问口令。设置为YES,则询问。默认NO
no_anon_password=YES
# 设置匿名用户新增文档的umask。默认077
anon_umask=022
  • 提示相关
1
2
3
4
5
6
7
8
9
10
# 设置是否显示目录消息。若设置为YES,进入目录时候将显示该目录中message_file配置文件(.message)中的内容
dirmessage_enable=YES
# 是否启用FTP上传或下载日志记录。默认为NO
xferlog_enable=YES
# 设置日志文件名及路径。需启用xferlog_enable选项
xferlog_file=/var/log/xferlog
# 日志文件是否使用标准的xferlog日志文件格式(与wu-ftpd使用的格式相同) 。默认为NO
xferlog_std_format=YES
# 该配置项用于设置比较简短的欢迎信息。若欢迎信息较多,则可使用banner_file配置项
ftpd_banner=Welcome to blah FTP service.

命令

1
2
3
4
5
6
7
8
# 启动
service vsftpd start

# 停止
service vsftpd stop

# 重启
service vsftpd restart

参考

史上最详细的vsftpd配置文件讲解