Vsftpd完全攻略(一)ftp原理与vsftp安装

 
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
会话时包含了两个通道,一个叫控制通道,一个叫数据通道。
 
Vsftpd完全攻略(一)ftp原理与vsftp安装_第1张图片
 
控制通道 :控制通道是和 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
 

你可能感兴趣的:(vsftpd,port,pasv,ftp原理与vsftp安装,Vsftpd完全攻略)