VSFTPD
是一款小巧易用
FTP
服务器程序
,vsftpd
在安全性、高性能及稳定性三个方面有上佳的表现。它提供的主要功能包括虚拟IP
设置、虚拟用户、Standalone
、inetd
操作模式、强大的单用户设置能力及带宽限流等。在安全方面,它从原理上修补了大多数Wu-FTP
、ProFTP
,乃至BSD-FTP
的安装缺陷,使用安全编码技术解决了缓冲溢出问题,并能有效避免“globbing”
类型的拒绝服务攻击。目前正在使用vsftpd
的官方网站有Red Hat
、SuSE
、Debian
、GNU
、GNOME
、KDE
、Gimp
和OpenBSD
等。
它支持很多其他的
FTP
服务器不支持的特征。
比如:
非常高的安全性需求
带宽限制
良好的可伸缩性
创建虚拟用户的可能性
IPv6
支持
中等偏上的性能
分配虚拟
IP
的可能性
高速
目录
一. ftp原理与vsftpd安装
二. 设置匿名用户也支持下载和上传,创建目录
三. 基于系统用户支持ftp上传 访问和vsftp安全设置
四. 搭建支持SSL加密传输的vftpd
五. vsftpd.conf配置详解
六. 建立多个虚拟用户支持ftp不同访问权限(1)
建立多个虚拟用户支持ftp不同访问权限(2)
七. 利用quota对Vsftpd做磁盘配额
ftp原理与vsftp安装
1.ftp
原理
FTP Transfer Protocol
件传输协议的缩写
,
在
RFC 959
中具体说明。
FTP
会话时包含了两个通道,一个叫控制通道,一个叫数据通道。
控制通道
:控制通道是和
FTP
服务器进行沟通的通道,连接
FTP
,发送
FTP
指令都是通过控制通道来完成的,
PI
称为控制连接
数据通道
:数据通道是和
FTP
服务器进行文件传输或者列表的通道。
FTP
协议中,控制连接均有客户端发起,而数据连接有两种工作方式:
PORT
方式和
PASV
方式,
DTP
称为数据连接
PORT
模式(
主动方式)
FTP
客户端首先和
FTP Server
的
TCP 21
端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送
PORT
命令。
PORT
命令包含了客户端用什么端口
(
一个大于
1024
的端口
)
接收数据。在传送数据的时候,服务器端通过自己的
TCP 20
端口发送数据。
FTP server
必须和客户端建立一个新的连接用来传送数据。
PASV
模式(
被动方式)
在建立控制通道的时候和
PORT
模式类似,当客户端通过这个通道发送
PASV
命令的时候,
FTP server
打开一个位于
1024
和
5000
之间的随机端口并且通知客户端在这个端口上传送数据的请求,然后
FTP server
将通过这个端口进行数据的传送,这个时候
FTP server
不再需要建立一个新的和客户端之间的连接传送数据。
如果从
C/S
模型这个角度来说,
PORT
对于服务器来说是OUTBOUND
,而PASV
模式对于服务器是INBOUND
,这一点请特别注意,尤其是在使用防火墙的企业里,这一点非常关键,如果设置错了,那么客户将无法连接。
2.安装vsftpd
[root@localhost /]# rpm -qa |grep vsftpd
查询是否安装了
vsftpd
(提示无)
[root@localhost /]# mkdir /mnt/cdrom
创建挂载光驱目录文件
[root@localhost /]# mount /dev/cdrom /mnt/cdrom/
挂载光驱到刚创建目录
mount: block device /dev/cdrom is write-protected, mounting read-only
[root@localhost /]# cd /mnt/cdrom/Server/
[root@localhost Server]# rpm -ivh vsftpd-2.0.5-12.el5.i386.rpm
安装
vsftp RPM
包
warning: vsftpd-2.0.5-12.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing... ########################################### [100%]
1:vsftpd ########################################### [100%]
[root@localhost Server]# rpm -qa |grep vsftpd
再查询是否安装了
vsftpd
vsftpd-2.0.5-12.el5
[root@localhost ~]# rpm -qi vsftpd
查询
vsftpd
详细信息
Name : vsftpd Relocations: (not relocatable)
Version : 2.0.5 Vendor: Red Hat, Inc.
Release : 12.el5 Build Date: 2007
年
12
月
13
日
星期四
19
时
35
分
37
秒
Install Date: 2009
年
12
月
26
日
星期六
00
时
35
分
03
秒
Build Host: ls20-bc1-14.build.redhat.com
Group : System Environment/Daemons Source RPM: vsftpd-2.0.5-12.el5.src.rpm
Size : 289673 License: GPL
Signature : DSA/SHA1, 2007
年
12
月
17
日
星期一
23
时
43
分
34
秒
, Key ID 5326810137017186
Packager : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
URL : http://vsftpd.beasts.org/
Summary : vsftpd -
非常安全
Ftp
守护进程
Description :
vsftpd
是一个非常安全
FTP
守护进程。它是完全从零开始编写的。
[root@localhost ~]# rpm -ql vsftpd
列出
vsftpd
中包含文件
/etc/logrotate.d/vsftpd.log vsftpd
的日志文件
/etc/pam.d/vsftpd PAM
认证文件
/etc/rc.d/init.d/vsftpd
启动脚本
/etc/vsftpd vsftpd
的配置文件存放的目录
/etc/vsftpd/ftpusers
禁止使用
vsftpd
的用户列表文件
/etc/vsftpd/user_list
禁止或允许使用
vsftpd
的用户列表文件
/etc/vsftpd/vsftpd.conf
主配置文件
/etc/vsftpd/vsftpd_conf_migrate.sh vsftpd
操作的一些变量和设置
/usr/sbin/vsftpd vsftpd
的主程序
其他一些说明文档和手册文件略!
/var/ftp
匿名用户主目录
/var/ftp/pub
匿名用户的下载目录
[root@localhost /]# service vsftpd start
启动
vsftpd
为
vsftpd
启动
vsftpd
:
[
确定
]
[root@localhost ~]# chkconfig --level 3 vsftpd on
打开
3
级别随系统自动启动
vsftpd