基于Vsftpd服务器数据传输模式浅析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于Vsftpd服务器数据传输模式浅析
郭杰
【摘要】Vsftpd是一个在UNIX/Linux操作系统上运行的FTP服务器,Vsftpd 的应用中具有高安全性,免费的、开源等特点,便于使用Linux操作系统植入到嵌入式芯片中,这些特点和应用是其他FTP服务器所不具备的。

PORT(主动)模式和PASV(被动)模式是FTP服务的数据传输中的两种基本模式,客户程序和防火墙状态决定了两种模式的使用环境。

%Vsftpd is a FTP server which runs on the Unix/Linux operating system, the application of Vsftpd has high security, free open source, etc,which makes the use of Linux operating system is esay to implant into the embedded chip,this characteristics and application are not possessed by other server.PORT (active) mode and PASV (passive) mode are the two basic modes of data transmission of FTP service,client program and firewall status decide the use environment of the two modes.【期刊名称】《电子测试》
【年(卷),期】2015(000)014
【总页数】4页(P43-46)
【关键词】Vsftpd;Server;Client;PORT (主动)模式;PASV (被动)模式
【作者】郭杰
【作者单位】西安航空学院计算机学院,西安,710077
【正文语种】中文
【中图分类】TN914.34
0 引言
FTP采用C/S(Client端/服务器)模型,它是基于TCP协议连接其Client端和Server端,UDP协议是一个无连接的协议,故FTP协议不能基于UDP协议。

FTP协议是建立在TCP协议基础上,所以必须经过三次握手来完成Client端和Server端的数据和命令交互。

FTP协议在TCP/IP协议模型中位于顶层,即应用层。

但是它区别于大多数的应用层协议的是,FTP协议要在通信双方之间建立了两条通信链路:控制链路和数据链路。

其各自的功能是:用户发送的FTP命令和FTP服
务器的响应,由控制链路来完成传送会话过程中信息传递;而数据的传输则由数据链路来负责,数据链路在需要数据传输时建立,数据传输完毕即关闭数据链路。

并且信息传递过程中使用的端口,每次进行连接时也不一定相同。

而且,数据连接可由Client端发起的,也可能是Server端发起的。

Vsftpd是一种GPL(General Public License)许可下开放源代码的基于UNIX/Linux操作系统下的FTP服务器。

它是一种安全、快速、稳定的FTP服务器,Vsftpd能够高效地处理大量的并发连接。

在数据连接的建立方式中,PORT(主动)模式和PASV(被动)模式是FTP服务
的数据传输中的两种基本模式。

这两种模式发起数据连接的方向截然相反,PORT(主动)模式是从Server端向Client发起数据连接;与之相反的,PASV(被动)模式是Client端向Server端发起数据连接。

两种模式有各自的适用范围。

1 Vsftpd服务器
大多数的Linux发型版本都内置了Vsftpd服务程序。

随着计算机技术的发展,小型化并且开源的基于嵌入式的操作系统正在被被广泛使用,例如:基于Linux内
核的OpenWrt系统由于其最小仅有3.5MB因而被广泛移植到嵌入式芯片支持的
路由系统中。

同样的Vsftpd服务程序也是开源的,用户可以在指定网站上下载需
要的Vsftpd RPM安装包。

在基于Linux系统下,通过对Vsftpd服务器的配置,可满足在广域网和局域网中对文件的传输需求。

Vsftpd的主要特点包括:(1)提供安全的体系结构,根据任务的最低特权需求单独执行每个任务。

(2)支持虚拟IP配置,可以在提供一个IP地址的情况下,在域中使用该地址建立的多个FTP服务器。

(3)允许配置并使用虚拟用户,从而与系统用户账户分离。

(4)支持TCP封装。

(5)允许配置匿名服务器,用户可以在不需要身份验证的情况下上传和下载文件。

(6)性能稳定,可以处理大量并发连接。

(7)可以配置为独立的
服务。

(8)Vsftpd服务器支持宽带控制。

在有些情况下,系统可能自带Vsftpd服务,通过执行"ntsysv"命令,在系统启动时Vsftpd服务将会自动加载。

找到其中的"vsftpd"服务,在其前面选择"*"号,并选择【确定】按钮即可,如图1所示。

图1 设置自动运行Vsftpd服务
此外,还有一种方法也可完成配置。

依次选择【系统】|【管理】|【服务器设置】|【服务】命令,系统将打开【服务配置】窗口,在窗口中找到【vsftpd】选项,就可以对Vsftpd执行启动、停止和重启等操作。

选中【vsftpd】选项前面的复选框,则可以在每次启动系统时自动运行Vsftpd服务。

同样的,用户可以通过修改主配置文件vsftpd.conf来完成Vsftpd服务器的主要
配置工作。

需要注意的是,一旦用户更改vsftpd.conf文件后,要使设置生效必须重新启动配置后的Vsftpd服务。

Vsftpd的主要配置文件位于Linux操作系统的
/etc/目录下。

其中重要的配置如下:
# nymous_enable=YES/NO
# local_enable=YES/NO
# write_enable=YES
# local_umask=022(或者其他值)
# anon_upload_enable= YES/NO)
# anon_world_readable_only= YES/NO
# anon_mkdir_write_enable= YES/NO
# chroot_list_enable=YES
# chroot_list_file=/etc/vsftpd/chroot_list
2 FTP的Client端配置
图2 PORT(主动)模式数据传输示意图
在Linux系统中对Client端的配置,要完成以下工作:设置要连接的FTP服务器
的IP,端口,用户名,密码,连接模式等,根据访问法可分为三种:命令行方式、浏览器方式、FTPClient端工具方式。

3 FTP数据传输PORT(主动)模式
在FTP协议中,提供FTP服务的默认端口为:21(命令端口)和20(数据端口)。

在不同的工作方式下,FTP数据端口并不总是20。

连接发起的对象不同,
就是PORT (主动)模式与PASV (被动)模式在FTP数据传输中的最大不同之处。

PORT (主动)模式的FTP工作原理:首先需要Client端从的一个非特权端口N连
接到FTP服务器的21端口(命令端口)。

然后Client开始监听端口N+1,并发送FTP命令“port N+1”到FTP服务器。

接着Server端会将从其20端口(数
据端口),连接到Client端指定的数据端口(N+1)。

一般的网络设备都是将防火墙配置于FTP服务器前面,因而数据传输采取
PORT(主动)方式的FTP配置须有以下条件:(1)Client端到FTP服务器的21
端口(命令端口)的连接(Client端初始化的连接)。

(2)FTP服务器的21(命令端口)到Client端的连接(Server 端响应 Client 端的 21(命令端口))。

(3)FTP 服务器的20端口(数据端口)到Client端的连接(Server端初始化数据连
接到Client端的20端口(数据端口))。

(4)Client端到FTP服务器的20端
口(数据端口)的连接(Client端发送ACK响应到服务器的20端口(数据端
口))
PORT(主动)模式配置方法:
#主动式连接使用的数据通道
connect_from_port_20=YES
#支持数据流的被动式连接模式
pasv_enable=NO
4 FTP数据传输被动(PASV)模式
PASV(被动)模式的FTP工作原理:在PASV(被动)方式FTP服务中,由Client端发起连接,即命令连接和数据连接,这样就可以解决从Server端到Client端的数据端口的入方向连接被Client端防火墙过滤掉的问题。

当FTP连接
一但开启时,Client端将会提供两个任意的端口号大于1024的非特权本地端口(N >1024和N+1)。

其中的一个端口连接Server端的21(命令端口),但
与PORT(主动)方式的FTP配置不同,Client端不被允许提交PORT命令也不允许Server端来回连它的20(数据端口),而是提交 PASV命令。

由此产生的结果是Server端会开启一个任意的大于1024的非特权端口P(P >1024),并发送PORT P命令给Client端。

然后Client端发起从本地端口N+1到Server端的端
口P的连接,用来传送数据。

图3 (被动)模式数据传输示意图
对于Server端的防火墙来说,需要有以下的通讯才能支持PASV(被动)方式的FTP 服务: (1)Client端到Server端的21(命令端口)的连接(Client 端初始化的
连接)。

(2)Server 端的21(命令端口)到Client端的连接(Server端响应到Client端的控制端口的连接)。

(3)Client端到Server端的大于1024端口的连接(Client端初始化数据连接后Server端返回的的20端口(数据端口))。

(4)Server端大于1024端口到Client端的连接(Server端发送ACK响应和数据到
Client端的20端口(数据端口))。

PASV(被动)模式配置方法:
# PASV(被动)式连接使用的数据通道
connect_from_port_20=NO
pasv_enable=YES(默认为YES) #设置是否允许PASV(被动)模式
pasv_min_port=1024(default:0(use any port))
pasv_max_port=65536(default:0(use any port))
5 总结
Vsftpd是基于UNIX/Linux等操作系统上运行的FTP服务器,因此其具有安全、免费、便于移植到小型嵌入式系统等特点,在实际应用中具有较好的应用范围。

对数据传输模式的使用可采纳以下结论:(1)Client端没有防火墙时,用PORT(主动)模式连接即可。

(2Server端没有防火墙时,用PASV(被动)模式即可。

(2)双方都有防火墙时,vsftpd设置被动端口范围,Server端防火墙打开被动端口范围,Client端用被动模式连接即可.发布FTP服务器的时候,要注意FTP服务器有PORT(主动)和PASV(被动)两种模式。

两者的共同点,是都使用21(命令端口)进行用户验证及管理,差别在于传送数据的方式不同,PORT(主动)模式的FTP服务器数据端口被固定在20,而PASV模式则在1025-65535之间随机。

发布的时候要考虑这个差别。

参考文献
A.连续出版物
[1]周晓林.彭延昌.胡庆梅.周冉.陈宝锋.基于广域网防火墙技术的FTP被动模式的文件传输[J].计算机系统应用,2006,6:80-83
[2]陈倩.嵌入式FTP服务器的设计与实现[J].电子元器件应用,2010,3:36-38B.专著
[1]杨明华.谭励.于重重等.Linux系统与网络服务管理技术大全[M].北京:电子工业出版社,2008:387
[2]褚建立.刘彦舫等.计算机网路技术实用教程[M].北京:清华大学出版社,2008:375C.学位论文
[1]李杰.Linux环境下FTP系统的设计与实现[D].长春:吉林大学,2012。

相关文档
最新文档