Ubuntu-vsftpd 安装和配置

作者:聂勇 欢迎转载,请保留作者信息并说明文章来源!

运行环境 | Enviroment

  • Ubuntu 10.10

安装vsftpd | How to install vsftpd

1、在终端命令行中输入如下命令。

1
sudo apt-get install vsftpd

2、启动、停止、重启vsftpd。
1) 启动。

1
sudo /etc/init.d/vsftpd start


1
sudo service vsftpd start

系统输出类似如下信息:

vsftpd start/running, process 6668

2)停止。

1
sudo /etc/init.d/vsftpd stop


1
sudo service vsftpd stop

系统输出如下信息:

vsftpd start/running, process 6868

3) 重启。

1
sudo /etc/init.d/vsftpd restart


1
sudo service vsftpd restart

系统输出如下信息:

vsftpd start/running, process 6888

配置vsftpd | How to config vsftpd

1、进入 /etc 目录。
打开/etc/vsftpd.conf文件,其完整内容如下(里面已经加入了各配置项的中文说明)。
提示:
vsftpd.conf的格式很简单,每一行不是一个注释就是一个命令,注释行以#号开头。每个命令行的格式如下:
option=value (选项=值)

注:在option、=、value之间不允许有空白符(空格等)。

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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
# Example config file /etc/vsftpd.conf
#
# The default compiled in settings are fairly paranoid. This sample file
# loosens things up a bit, to make the ftp daemon more usable.
# Please see vsftpd.conf.5 for all compiled in defaults.
#
# READ THIS: This example file is NOT an exhaustive list of vsftpd options.
# Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's
# capabilities.
#
#
# Run standalone? vsftpd can run either from an inetd or as a standalone
# daemon started from an initscript.
# 是否运行于standalone模式。YES表示运行于standlone模式,NO表示运行于inetd模式。
listen=YES
#
# Run standalone with IPv6?
# Like the listen parameter, except vsftpd will listen on an IPv6 socket
# instead of an IPv4 one. This parameter and the listen parameter are mutually
# exclusive.
# 是否运行成IPv6模式。YES表示运行一个Ipv6 socket代替IPv4 socket。默认为IPv4。
#listen_ipv6=YES
#
# Allow anonymous FTP? (Disabled by default)
# 是否允许匿名登录FTP。默认禁止。
anonymous_enable=NO
#
# Uncomment this to allow local users to log in.
# 是否允许本地用户登录。默认允许。
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
# 是否允许写操作(是否允许全局上传)。默认允许。
#write_enable=YES
#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
# 默认权限mask是022,系统的默认权限mask是077。
#local_umask=022
#
# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
# 是否允许匿名用户上传文件。只有在 anonymous_enable 设置成YES才能生效。
#anon_upload_enable=YES
#
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
# 是否允许匿名用户新建目录。只有在 anonymous_enable 设置成YES才能生效。
#anon_mkdir_write_enable=YES
#
# Activate directory messages - messages given to remote users when they
# go into a certain directory.
# 切换目录时,显示目录下.message的内容。
dirmessage_enable=YES
#
# If enabled, vsftpd will display directory listings with the time
# in your local time zone. The default is to display GMT. The
# times returned by the MDTM FTP command are also affected by this
# option.
# 如果设置成YES,vsftpd将列目录清单时使用你的本地时区。默认是GMT(格林威冶时间).
use_localtime=YES
#
# Activate logging of uploads/downloads.
# 是否激活上传/下载日志。
xferlog_enable=YES
#
# Make sure PORT transfer connections originate from port 20 (ftp-data).
# 控制端口类型数据连接是否使用服务器上的20号端口(ftp-data)。
connect_from_port_20=YES
#
# If you want, you can arrange for uploaded anonymous files to be owned by
# a different user. Note! Using "root" for uploaded files is not
# recommended!
# 设置匿名用户上传文件时文件的所属人变成另外一个用户。只有在 anonymous_enable 设置成YES才能生效。
#chown_uploads=YES
#chown_username=whoever
#
# You may override where the log file goes if you like. The default is shown
# below.
# 上传/下载日志文件的位置。
#xferlog_file=/var/log/vsftpd.log
#
# If you want, you can have your log file in standard ftpd xferlog format.
# Note that the default log file location is /var/log/xferlog in this case.
# 写上传/下载日志是否使用标准的 fptd xferlog 格式。
#xferlog_std_format=YES
#
# You may change the default value for timing out an idle session.
# 空闲会话(连接)超时时间。单位:秒。表示远程用户发送FTP命令请求的最大时间间隔。如果超时,远程用户将被踢出。
#idle_session_timeout=600
#
# You may change the default value for timing out a data connection.
# 建立数据连接的超时时间。单位:秒。
#data_connection_timeout=120
#
# It is recommended that you define on your system a unique user which the
# ftp server can use as a totally isolated and unprivileged user.
# 这是vsftpd使用的几乎没有特权的用户名,要注意这应该是一个专用的用户。
#nopriv_user=ftpsecure
#
# Enable this and the server will recognise asynchronous ABOR requests. Not
# recommended for security (the code is non-trivial). Not enabling it,
# however, may confuse older FTP clients.
# 如果启用,一个特殊的FTP命令“async ABOR”将被启用。因安全原因不推荐启用(这项功能的实现有点棘手)。可能那些比较旧的FTP终端会使用这项功能。
#async_abor_enable=YES
#
# By default the server will pretend to allow ASCII mode but in fact ignore
# the request. Turn on the below options to have the server actually do ASCII
# mangling on files when in ASCII mode.
# Beware that on some FTP servers, ASCII support allows a denial of service
# attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd
# predicted this attack and has always been safe, reporting the size of the
# raw file.
# ASCII mangling is a horrible feature of the protocol.
# 如果启用,上传时将以ASCII模式进行数据传输。
#ascii_upload_enable=YES
#
# 如果启用,下载时将以ASCII模式进行数据传输。
#ascii_download_enable=YES
#
# You may fully customise the login banner string:
# vsftpd在连接第一次连进来时显示的欢迎(问候)信息。
#ftpd_banner=Welcome to blah FTP service.
#
# You may specify a file of disallowed anonymous e-mail addresses. Apparently
# useful for combatting certain DoS attacks.
# 如果激活(该选项),你应该提供一个匿名密码电子邮件列表来应答禁止登录。默认情况下,包含这个列表的文件是/etc/vsftpd.banned_emails,但是你可以通过banned_email_file设置更改它。
#deny_email_enable=YES
# (default follows)
#banned_email_file=/etc/vsftpd.banned_emails
#
# You may restrict local users to their home directories. See the FAQ for
# the possible risks in this before using chroot_local_user or
# chroot_list_enable below.
# 如果设置为YES,本地用户将被chroot()限定在其主目录下(默认)。警告:这个选项牵连到安全性,尤其在用户拥有上传权限或者使用 shell权限的情况下。只有在你知道自己在做什么时才启用它。要知道这些安全相关性不是vsftpd所特有的,它们适用于所有提供chroot()限定本地用户机制的FTP守护进程。
#chroot_local_user=YES
#
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
#chroot_local_user=YES
#
# 如果激活(该选项),你应该提供一个在登录时被chroot()限定在其主目录下的本地用户列表。如果chroot_local_user选项设置为 YES,则(该选项)意思稍微不同,在这种情况下,这个列表则变成了不受chroot()限制的用户列表。默认情况下,包含这个用户列表的文件是 /etc/vsftpd.chroot_list,但是你可以通过chroot_list_file选项来更改它。
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd.chroot_list
#
# You may activate the "-R" option to the builtin ls. This is disabled by
# default to avoid remote users being able to cause excessive I/O on large
# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
# the presence of the "-R" option, so there is a strong case for enabling it.
# 如果启用,该设置将允许使用“ls -R”,这是一个次要的安全风险,因为在一个大型站点的顶级目录使用ls -R将消耗大量的系统资源。
#ls_recurse_enable=YES
#
# Debian customization
#
# Some of vsftpd's settings don't fit the Debian filesystem layout by
# default. These settings are more Debian-friendly.
#
# This option should be the name of a directory which is empty. Also, the
# directory should not be writable by the ftp user. This directory is used
# as a secure chroot() jail at times vsftpd does not require filesystem
# access.
# 该选项应该是一个空目录名。而且,ftp用户对该目录没有写权限。偶尔在vsftpd不需要访问文件系统时,该目录被用作一个安全的chroot() jail(监狱)。
secure_chroot_dir=/var/run/vsftpd/empty
#
# This string is the name of the PAM service vsftpd will use.
# 该字符串是vsftpd将要使用的PAM服务名。
pam_service_name=vsftpd
#
# This option specifies the location of the RSA certificate to use for SSL
# encrypted connections.
# 该选项指定用来加密SSL连接的RSA证书的位置(路径)。
rsa_cert_file=/etc/ssl/private/vsftpd.pem

测试连接vsftpd | How to connect to vsftpd

1、在终端命令行中输入如下命令。

1
ftp 10.3.18.52

系统输出如下信息:

Connected to 10.3.18.52.
220 Welcome to AoFeng’s Ftp Server.
Name (10.3.18.52:aofeng): # 系统提示输入用户名
331 Please specify the password.
Password: # 系统提示输入密码
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.

注:其中10.3.18.52 改成你自己的实际vsftpd Server的IP地址。

2、用FTP图形客户端连接vsftpd Server。
启动 FileZilla,设置以ftp 方式连接10.3.18.52,连接成功。如下图所示:
使用FileZilla连接vsftpd