ftp是相当古老的传输协议之一,它的主要功能是在服务器与客户端之间进行文件传输。vsftpd是linux下的一款小巧轻快,安全易用的FTP服务器软件,是一款在各个Linux发行版中最受推崇的FTP服务器软件。下面以rhel5.0 linux下介绍vsftpd的安装、配置。
实验坏境:
操作系统:Red Hat Enterprise Linux AS 5.0
内核版本:2.6.18-8.el5
CPU构架:i386 SMP
附件软件:Red Hat Enterprise Linux AS 5.0 DVD ISO文件
在rhel linux下安装vsftpd服务
1. 通过yum方式安装:
- # yum groupinstall "FTP Server"
- 注:如果您的linux操作系统没有rhn上注册,并且未配置yum,请看此文: Linux下使用Yum管理本地软件包(repository)
2. 通过rpm命令安装
- # mkdir -p /mnt/iso
- # mount -o loop /opt/rhel5.0.iso /mnt/iso
- # rpm -ivh /mnt/iso/Server/vsftpd-2.0.5-10.el5.i386.rpm
3. 通过源码编译的方式安装vsftpd
- tar -zxvf vsftpd-2.0.5-10.tar.gz
- cd vsftpd-2.0.5-10
- make && make install
vsftpd 相关文件和目录介绍
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
1.
/
etc
/
vsftpd
/
vsftpd
.
conf
linux
vsftpd最主要的配置文件
2.
/
etc
/
vsftpd
/
ftpusers
此文件用来设置不允许访问
ftp服务的用户,一行一个用户名。
3.
/
etc
/
vsftpd
/
user_list
vsftpd自带的访问阻止功能,此文件能否生效由
vsftpd
.
conf的
userlist_enable
,
userlist_deny两个参数决定。
4.
/
etc
/
pam
.
d
/
vsftpd
这个是
vsftpd使用
pam模块的相关设置文件,主要用来认证身份和阻止特定用户。
5.
/
usr
/
sbin
/
vsftpd
vsftpd的主要执行文件。
6.
/
etc
/
rc
.
d
/
init
.
d
/
vsftpd
vsftpd服务管理文件。
7.
/
var
/
ftp
vsftpd的默认匿名用户登录的根目录。
|
Linux vsftpd配置参数介绍:
linux vsftpd的配置参数很多,我们可以通过man 5 vsftpd.conf命令获取到vsftpd.conf配置文件的详细帮助信息。下面介绍一些vsftpd常用的参数。
1. 与服务器相关的设置参数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
connect_from_port_20
=
YES
|
NO
是否使用
20号端口做为
ftp
-
data的端口号
listen_port
=
21
设置
ftp命令通道的端口号
dirmessange_enable
=
YES
|
NO
message_file
=
.
message
上面两个参数用来配置用户进入到目录时显示某个文件中的内容。
listen
=
YES
|
NO
设置
vsftpd是否
stand
alone方式启动。
pasv_enable
=
YES
|
NO
是否开启被动模式。
write_enable
=
YES
|
NO
用来设置是否允许用户上传文件。
idle_session_timeout
=
300
如果用户
300秒内没有命令操作,则强制离线。
max_Clients
=
0
当
vsftpd以
stand
alone运行时,用来设置最大同时在线数。
max_per_ip
=
0
用于设置同一
IP允许的同时最大连接数。
pasv_max_port
=
0
pasv_min_port
=
0
用来设置被动模式
(
passive
mode
)使用的端口范围,为
0时不受限制。
ftpd_banner
=
"欢迎语句"
banner_file
=
/
path
/
file
设置当用户连接到
vsftpd服务器时显示的欢迎信息。
|
2. 与用户相关的参数
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
|
guest_username
=
ftp
指定来宾用户身份的用户名
guest_enable
=
YES
|
NO
是否将非匿名用户映射成来宾用户。
local_enable
=
YES
|
NO
是否允许
/
etc
/
passwd中的用户以实体用户的身份登录到
ftp服务器。
local_max_rate
=
0
设置实体用户的传输速度,单位为
bytes
/
s。
chroot_local_user
=
YES
|
NO
chroot_list_enable
=
YES
|
NO
chroot_list_file
=
/
etc
/
vsftpd
/
chroot_list
用来设置哪些用户被限制在自己的目录内无法离开。
userlist_enable
=
YES
|
NO
userlist_deny
=
YES
|
NO
userlist_file
=
/
etc
/
vsftpd
/
user_list
用来阻止相关用户登录到
vsftpd服务器。
3.
匿名用户相关的参数
anonymous_enable
=
YES
|
NO
是否允许
anonymouns用户登录到
vsftpd服务器,下面的设置仅在此参数为
YES时才有效。
anon_world_readable_only
=
YES
|
NO
仅仅允许下载可读的文件。
anon_mkdir_write_enable
=
YES
|
NO
anon_upload_enable
=
YES
|
NO
anon_other_write_enable
=
YES
|
NO
用于设置相关可写权限。
no_anon_password
=
YES
|
NO
anonymous登录时是否可以省略密码。
anon_max_rate
=
0
设置
anonymous的最大传输速度。
anon_umask
=
077
anonymous用户上传文件的权限掩码。
|
4. 与安全相关的参数:
|
ascii_download_enable
=
YES
|
NO
ascii_upload_enable
=
YES
|
NO
是否允许
ascii方式传输。
xferlog_enable
=
YES
|
NO
xferlog_file
=
/
var
/
log
/
vsftpd
.
log
是否记录用户下载上传的文件。
|
Linux下vsftpd服务的启动
1. 使用stand alone模式启动:
- # /etc/rc.d/init.d/vsftpd start
- # service vsftpd start
2. 使用super daemon来启动:
①. 将/etc/vsftpd/vsftpd.conf中的"listen=YES"改成"listen=NO"
②. # vi /etc/xinetd.d/vsftpd
- service ftp
- {
- socket_type=stream
- wait=no
- user=root
- server=/usr/sbin/vsftpd
- log_on_success+=DURATION USERID
- log_on_failure+=USERID
- nice=10
- disable=no
- }
- #注意大小写
③. # service vsftpd stop
- # service xinetd restart
常见问题:
1. 问:我在客户端成功的登录到ftp服务器上后,为什么使用dir命令没有任何反应?
答:您可能位于局域网内,请尝试使用被动模式。
2. 问:为什么我的root用户不能登陆到我的vsftpd ftp服务器?
答:linux默认情况下不允许root登陆到ftp服务器的,在ftpuser,user_list去掉root用户就可以登录了。