查看: 31462|回复: 30

[原创]应用分析-FTP文件传输应用分析

[复制链接]
发表于 2006-9-6 13:27:59 | 显示全部楼层 |阅读模式
应用分析FTP文件传输应用分析
完整的PDF文档下载:

一、FTP简介

1. 文件传输

文件传输服务是网络互联环境所必需的一种服务,当前网络中文件传输最主要的传输方式是使用FTP协议。
FTP,全称File Transfer Protocol,中文名为文件传输协议,它可以在网络中传输电子文档、图片、声音、影视、程序及程序等多种类型的文件。如果用户需要将文件从自己的计算机上发送到另一台计算机上,可使用FTP上传(upload)或(put)操作,而更多种的情况是用户使用FTP下载(download)或获取(get)操作从FTP服务器上下载文件。

2. FTP工作原理

一个完整的FTP文件传输需要建立两种类型的连接,一种为文件传输下命令,称为控制连接,另一种实现真正的文件传输,称为数据连接。

1) 控制连接

客户端希望与FTP服务器建立上传下载的数据传输时,它首先向服务器的TCP 21端口发起一个建立连接的请求,FTP服务器接受来自客户端的请求,完成连接的建立过程,这样的连接就称为FTP控制连接。

]2) 数据连接

FTP控制连接建立之后,即可开始传输文件,传输文件的连接称为FTP数据连接。FTP数据连接就是FTP传输数据的过程,它有两种传输模式:主动传输模式(PORT)和被动传输模式(PASSIVE,简称PASV)。主动传输模式下,FTP服务器使用20端口与客户端的暂时端口进行连接,并传输数据,客户端只是处于接收状态。被动传输模式下,FTP服务器打开一个暂态端口等待客户端对其进行连接,并传输数据,服务器并不参与数据的主动传输,只是被动接受。

二、具体分析FTP传输

1.    分析FTP传输的具体流程

对FTP传输进行分析,首先需要知道的是这个FTP传输使用的是主动模式还是被动模式,因为这两种模式的实现方法不同,两种模式下的分析存在较大的差异,下面分别对两种模式下的FTP传输进行分析。

1)  主动传输模式

我们使用科来网络分析系统5.0捕获并分析一个主动模式下的FTP数据传输。客户端主机名为“wangym”,FTP服务器地址是192.168.2.100,客户端上使用的FTP客户端软件为SecureFX 2.1.4,传输模式采用主动(PORT)模式。
在客户端主机上打开科来网络分析系统5.0。为避免数据干扰,设定一个过滤器,只捕获本机的数据通讯。在FTP客户端软件SecureFX 2.1.4上,建立一个FTP会话连接到FTP服务器192.168.2.100,并上传一个名为t1.cap的文件到服务器,从服务器上下载一个名为Readme.txt的文件到客户端。完成操作后停止科来网络分析系统5.0的捕获。

图1所示为科来网络分析系统5.0对上述操作进行捕获后的连接视图。
(图1 FTP主动传输模式下的连接及数据流重组信息)

从图1中可知,上述的操作在客户端和服务器之间建立了七个连接,其中第一个为FTP控制连接,其余六个为FTP数据连接。详细查看FTP控制连接对应的数据流重组信息,我们可以知道上述操作的原始步骤(即FTP主动传输模式下的步骤)如下:

A. 客户端(这里是wangym)使用暂时端口作为源端口(这里是1149)向FTP服务器(这里是192.168.2.100)的21端口发起TCP SYN的数据包,请求建立TCP连接;FTP服务器发送SYN/ACK(同步确认)包给客户端,源端口为21,目标端口为客户端上使用的暂时端口1149;客户端向FTP服务器发送一个ACK(确认)包,TCP三次握手成功建立;

B. TP服务器需要对服务器的身份进行验证,要求输入用户名和密码,此处用户名和密码都是ftpuser

C. 客户端使用SYST命令获取FTP服务器的操作系统,此处是Windows_NT version 5.0,即Windows 2000;

D. 客户端使用PWD命令获取当前目录,当前为“/”,即当前处于FTP服务器的根目录;

E. 客户端使用PORT命令向FTP服务器发送一个上传或下载文件的请求,这个命令包含自己的地址(这里是192.168.2.44)和一个暂时端口(这里是是4126,目标端口的计算方法是,4*256+126=1150),FTP服务器在收到请求后,以20作为源端口,1150作为目标端口与客户端建立TCP连接;

F. 客户端使用LIST命令获取FTP服务器当前目录下的文件列表;

G. 客户端再次使用PWD或CWD命令获取当前目录,当前为“/”;

]H. 客户端再次使用PORT命令向FTP服务器发起上传或下载文件的请求,并同时给出暂时端口以用于建立TCP连接;

I. 客户端使用TYPE命令设置文件的传输类型,这里的传输类型为I。一般情况下传输类型有两种,默认为ASCII,简称A,另一种是二进制文件,简称I;

J. 客户端使用STOR命令上传文件到FTP服务器,这里上传的文件是t1.cap;

K. FTP服务器使用226应答码告诉客户端t1.cap文件的传输成功完成;

L. 客户端使用PWD或CWD命令再次获取当FTP服务器的当前目录,即刷新当前目录;

M. 客户端使用TYPE命令将FTP服务器的传输方式重新设置为默认的ASCII方式;

N. 客户端再次使用PORT命令向FTP服务器发起上传或下载文件的请求,并同时给出暂时端口以用于建立TCP连接;

O. 客户端使用RETR命令从FTP服务器下载文件到本地,这里下载的文件是Readme.txt;

P. FTP服务器使用226应答码告诉客户端Readme.txt的传输成功完成;

Q. 数据传输完成以后,客户端向FTP服务器发送一个TCP FIN的数据包通知FTP服务器结束连接。这个FIN数据包需要FTP服务器以TCP ACK数据包确认,同时FTP服务器发送一个TCP FIN的数据包给客户端,这个FIN数据包同样需要客户端以TCP ACK数据包确认,双方成功确认后,关闭FTP控制连接。

图1中共有七个连接,其中第一个是FTP控制连接,客户端使用暂时端口与FTP服务器的21端口通讯。其余六个是FTP数据连接,客户端使用暂时端口与FTP服务器的20端口通讯,其作用分别是:第二个LIST命令列目录、第三个PORT命令请求传输文件、第四个STOR上传文件t1.cap、第五个PORT命令请求传输文件、第六个RETR命令下载文件Readme.txt、第七个关闭连接。

(注意:客户端在FTP控制连接上发送的不同命令,将打开和关闭另外的FTP数据连接。上传下载的每一个文件,都分别打开一个FTP数据连接来完成,当所有数据连接完成并关闭后,控制连接才会按照上面的方法进行关闭。)

图2所示的是在进行主动模式的FTP数据传输后,科来网络分析系统5.0的日志视图记录下的FTP传输日志信息。从中可以知道,当前FTP数据传输操作的客户端、FTP服务器端、使用的账号、操作的类型(上传或下载)、传输的文件及路径、传输模式(主动或被动)等信息。要查看日志的所有信息,请在图2所示视图的列头(序号、客户端IP……)中,单击鼠标右键,在弹出的快捷菜单中,单击“More …”,在弹出的“列表选项”对话框中,选中所有的项,单击确定保存即可
(图2 FTP主动传输模式下的日志信息)

[ 本帖最后由 KelvinFu 于 2006-9-6 14:05 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?CSNA会员注册

×

评分

1

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2006-9-6 13:32:25 | 显示全部楼层
2)  被动传输模式

我们使用科来网络分析系统5.0捕获并分析一个被动模式下的FTP数据传输。客户端主机名为“wangym”,FTP服务器地址是192.168.2.100,客户端上使用的FTP客户端软件为SecureFX 2.1.4,传输模式采用被动(PASSIVE)模式。
在客户端主机上打开科来网络分析系统5.0。为避免数据干扰,设定一个过滤器,只捕获本机的数据通讯。在FTP客户端软件SecureFX 2.1.4上,建立一个FTP会话连接到FTP服务器192.168.2.100,并上传一个名为t1.cap的文件到服务器,从服务器上下载一个名为Readme.txt的文件到客户端。完成操作后停止科来网络分析系统5.0的捕获。

图3所示为科来网络分析系统5.0对上述操作进行捕获后的连接视图。
(图3 FTP被动传输模式下的连接及数据流重组信息)

从图3中可知,上述的操作在客户端和服务器之间建立了七个连接,其中第一个为FTP控制连接,其余六个为TCP连接。详细查看FTP控制连接对应的数据流重组信息,我们可以知道,上述操作的原始操作步骤(即FTP被动模式下的操作步骤)如下:

A. 客户端(这里是wangym)使用暂时端口作为源端口(这里是1204)向FTP服务器(这里是192.168.2.100)的21端口发起TCP SYN的数据包,请求建立TCP连接;FTP服务器发送SYN ACK(同步确认)包给客户端,源端口为21,目标端口为客户端上使用的暂时端口1204;客户端向FTP服务器发送一个ACK(确认)包,TCP三次握手成功建立;

B. FTP服务器需要对服务器的身份进行验证,要求输入用户名和密码,此处用户名和密码都是ftpuser;

C. 客户端使用SYST命令获取FTP服务器的操作系统,此处是Windows_NT version 5.0,即Windows 2000;

D. 客户端使用PWD命令获取当前目录,当前为“/”,即当前处于FTP服务器的根目录;

E. 客户端使用PASV命令告诉FTP服务器,当前客户端使用的是被动传输模式;

F. FTP服务器对客户端的PASV命令进行响应,响应内容包括FTP服务器的地址和一个暂时端口,这里是192.168.2.100,437,用437计算出目标端口是4*256+37=1061;

G. 客户端使用LIST命令获取FTP服务器当前目录下的文件列表;

H. 客户端再次使用PWD或CWD命令获取当FTP服务器的当前目录,即刷新当前目录;

I. 客户端再次使用PASV命令向FTP服务器发起上传或下载文件的请求,FTP服务器接受请求,并返回地址和暂时端口以用于建立连接;

J. 客户端使用TYPE命令设置文件的传输类型,这里的传输类型为I;

K. 客户端使用STOR命令上传文件到FTP服务器,这里上传的文件是t1.cap;

L. FTP服务器使用226应答码告诉客户端t1.cap文件的传输成功完成;

M. 客户端使用PWD或CWD命令再次获取当FTP服务器的当前目录,即刷新当前目录;

N. 客户端使用TYPE命令将FTP服务器的传输方式重新设置为默认的ASCII方式;

O. 客户端再次使用PASV命令向FTP服务器发起上传或下载文件的请求,FTP服务器接受请求,并返回地址和暂时端口以用于建立连接,方法与第9步相同;

P. 客户端使用RETR命令从FTP服务器下载文件到本地,这里下载的文件是Readme.txt;

Q. FTP服务器使用226应答码告诉客户端Readme.txt文件的传输成功完成;

R. 数据传输完成以后,客户端向FTP服务器发送一个TCP FIN的数据包通知FTP服务器结束连接。这个FIN数据包需要FTP服务器以TCP ACK数据包确认,同时FTP服务器发送一个TCP FIN的数据包给客户端,这个FIN数据包同样需要客户端以TCP ACK数据包确认,双方成功确认后,关闭FTP控制连接。

图3中共有七个连接,其中第一个是FTP控制连接,客户端使用暂时端口与FTP服务器的21端口通讯。其余六个是FTP数据连接,客户端使用暂时端口与FTP服务器暂时端口通讯,其作用分别是:第二个LIST命令列目录、第三个PASV命令请求传输文件、第四个STOR上传文件t1.cap、第五个PASV命令请求传输文件、第六个RETR命令下载文件Readme.txt、第七个关闭连接。

(注意:客户端在FTP控制连接上发送的不同命令,将打开和关闭另外的FTP数据连接。上传下载的每一个文件,都分别打开一个FTP数据连接来完成,当所有数据连接完成并关闭后,控制连接才会按照上面的方法进行关闭。)
注意图1和图3的比较,图1为主动传输模式,图3为被动传输模式,图1中连接视图列表里的第2到第7个连接的协议显示的是FTP Data,而图3中,显示的是TCP,原因是FTP在使用被动模式进行数据传输时,其数据连接的端口是不固定的,FTP服务器并不使用主动模式下的20端口进行通讯,而在连接的两端都使用随机的暂时端口,因为暂时端口为随机的,所以就显示为TCP连接。

图4所示的是在进行被动模式的FTP数据传输后,科来网络分析系统5.0的日志视图记录下的FTP传输日志信息。从中可以知道,当前FTP数据传输操作的客户端、FTP服务器端、使用的账号、操作的类型(上传或下载)、传输的文件及路径、传输模式(主动或被动)等信息。要查看日志的所有信息,请在图2所示视图的列头(序号、客户端IP……)中,单击鼠标右键,在弹出的快捷菜单中,单击“More …”,在弹出的“列表选项”对话框中,选中所有的项,单击确定保存即可。
(图4 FTP被动传输模式下的日志信息)

[ 本帖最后由 KelvinFu 于 2006-9-6 14:09 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?CSNA会员注册

×

评分

1

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2006-9-6 13:41:14 | 显示全部楼层
2.  FTP命令

从上面的分析及截图中我们可以知道,FTP传输过程中所有的操作都是通过在客户端发送命令完成的,FTP常见的命令如表1所示。
(表1 FTP常见命令)

3.  FTP应答

从上面的分析及截图中我们可以知道,对客户端发出的所有命令,FTP服务器都会对其做出应答,FTP常见的应答代码如表2所示。
(表2 FTP常见应答代码)

三、     总结

以上简单介绍了FTP协议,并使用科来网络分析分析系统5.0跟踪分析了主动模式和被动模式下的FTP数据传输。据此,用户在遇到FTP传输的故障时,即可结合上面的分析,使用网络检测分析软件(这里是科来网络分析系统5.0)对FTP数据传输进行跟踪分析,以完成对此类故障的快速排查。



                                                                                                  CSNA网络分析论坛

                                                                                                        2006年9月

[ 本帖最后由 KelvinFu 于 2006-9-6 14:10 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?CSNA会员注册

×
回复

使用道具 举报

发表于 2006-9-6 14:26:28 | 显示全部楼层
本来就是科来网站上的,拿来交流还可以,但不能说是原创!!郁闷。。。
回复

使用道具 举报

发表于 2006-9-6 14:41:14 | 显示全部楼层
原帖由 artico 于 2006-9-6 14:26 发表
本来就是科来网站上的,拿来交流还可以,但不能说是原创!!郁闷。。。

KelvinFu大大乃科来的高人,只是刚注册这个ID,呵呵!

兄弟不要郁闷了,多谢支持!
回复

使用道具 举报

 楼主| 发表于 2006-9-6 14:53:01 | 显示全部楼层
非常之不好意思!!

回复

使用道具 举报

发表于 2006-9-6 15:02:57 | 显示全部楼层
。。。。原来是这样啊。。。
不打不相识
回复

使用道具 举报

发表于 2006-9-9 12:58:04 | 显示全部楼层
原帖由 菜鸟人飞 于 2006-9-6 14:41 发表


KelvinFu大大乃科来的高人,只是刚注册这个ID,呵呵!

兄弟不要郁闷了,多谢支持!


HOHO 偶也支持一下 热烈欢迎KelvinFu大大
回复

使用道具 举报

发表于 2006-12-7 13:51:27 | 显示全部楼层
太好了~~~~~~~~~~~
回复

使用道具 举报

发表于 2006-12-7 15:59:28 | 显示全部楼层
斑竹,你是不是个MM啊?
回复

使用道具 举报

发表于 2007-1-2 23:57:05 | 显示全部楼层
原帖由 lingyungong79 于 2006-12-7 15:59 发表
斑竹,你是不是个MM啊?


严重同意中,楼上的你眼真尖啊
回复

使用道具 举报

发表于 2007-1-4 10:03:27 | 显示全部楼层
证实:KelvinFu是一位男性同胞。
请勿再讨论此问题,谢谢!
回复

使用道具 举报

发表于 2007-2-12 03:44:23 | 显示全部楼层
这个好呀,如果能看到其它机子的密码就好了。
回复

使用道具 举报

发表于 2007-7-18 14:03:11 | 显示全部楼层
支持!!!!!!!!!!!!
回复

使用道具 举报

发表于 2007-9-28 13:28:57 | 显示全部楼层
感谢分享,继续努力,还要加油
回复

使用道具 举报

发表于 2009-3-28 09:40:51 | 显示全部楼层
非常不错,多谢楼主!!!!
回复

使用道具 举报

发表于 2009-4-7 19:58:06 | 显示全部楼层
不错,学到不少知识~!·!
回复

使用道具 举报

发表于 2009-4-13 18:13:50 | 显示全部楼层
学习了。下载收藏。。。
回复

使用道具 举报

发表于 2009-5-25 22:49:18 | 显示全部楼层
这么好的贴子不顶不行,希望能多出一些像这样的贴子,我看到这个贴子后,才对ftp有了微观的认识
回复

使用道具 举报

发表于 2010-1-26 09:07:13 | 显示全部楼层
哈哈 收藏了。。。。。。。。。。。。。。。。。
回复

使用道具 举报

发表于 2010-2-9 08:17:39 | 显示全部楼层
好贴要顶 学习中,,,,
回复

使用道具 举报

发表于 2010-3-14 17:02:35 | 显示全部楼层
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
回复

使用道具 举报

发表于 2010-3-15 09:43:14 | 显示全部楼层
对于ftp的应用在现实的环境中我也遇到过很多的问题,最有意思的一次是网络中的华为防火墙没有开启应用检测功能,造成的后果是一个业务采用PORT的形式可以正常的通讯,但是采用PASV形式就没有办法通讯,经过抓包分析发现问题所在,是在华为防火墙上只是对IP层次的地址做了NAT,而没有对FTP层次的地址做NAT.因为是金融行业的案例所以不便贴出来,希望各位以后再遇到FTP问题的时候可以作为参考.
回复

使用道具 举报

发表于 2010-3-23 09:03:18 | 显示全部楼层
哈哈哈哈哈哈 谢谢楼主  ~~~~~哈哈哈哈哈哈 谢谢楼主  ~~~~~
回复

使用道具 举报

发表于 2010-4-1 15:17:19 | 显示全部楼层
tai hao lw wo jiu shi hen xian yao zhel dong
回复

使用道具 举报

发表于 2010-4-4 11:50:28 | 显示全部楼层
谢谢楼主分享。。。。。。。。。。。。。。。。
回复

使用道具 举报

发表于 2010-4-5 17:26:32 | 显示全部楼层
很详尽,非常好。看了真是加深了理解
回复

使用道具 举报

发表于 2010-5-17 13:38:33 | 显示全部楼层
学习中。。。。。。。。。。。。。。。。。。。。。。。
回复

使用道具 举报

发表于 2010-8-11 23:55:46 | 显示全部楼层
学习一下  非常感谢 谢谢哦 呵呵呵呵呵
回复

使用道具 举报

发表于 2011-1-11 15:25:48 | 显示全部楼层
慢慢享受
回复

使用道具 举报

您需要登录后才可以回帖 登录 | CSNA会员注册

本版积分规则

快速回复 返回顶部 返回列表