FTP采用主、被动传输模式时的通信过程及解决方案

转载 2012年03月26日 16:45:54

原文地址:http://ewangsoft.blog.163.com/blog/static/7721558220108219013713/

一、主动传输模式:

【原创】FTP客户端采用主、被动传输模式时标准FTP协议通信过程 - 大河 - 大河Blog

       上图是使用标准FTP协议(明文传输)通信抓包截图。通信过程简单描述如下:
          1、FTP客户端使用TCP随机端口2308主动连接FTP服务器的TCP 21端口,进行TCP三次握手
          2、TCP三次握手之后,FTP客户端主动提供用于登录验证的用户名和密码,验证通过,服务器返回信息
          3、FTP客户端发出命令PORT,并打开比自己刚才连接FTP服务器大1的端口TCP 2309端口供FTP服务器来连接
          4、FTP服务器使用自己的TCP 20端口主动连接FTP客户端的TCP 2309端口,连接成功后则可以在服务器、客户端之间传递数据
 
      标号为1、2的抓包可以看到FTP用户登录时的用户名和密码明文,这是FTP的一个不安全之处。标号为3的抓包中我们可以看到客户端传送了PORT命令,此命令正是客户端发起主动请求数据连接的命令,从抓图中我们可以看到,客户端要求FTP服务器主动连接自己的2309端口,如下图示:

【原创】FTP客户端采用主、被动传输模式时标准FTP协议通信过程 - 大河 - 大河Blog

    随后标记为4的抓包,FTP服务器端使用TCP20端口主动连接FTP客户端TCP 2309端口,如下图示:

【原创】FTP客户端采用主、被动传输模式时标准FTP协议通信过程 - 大河 - 大河Blog

二、被动传输模式

       被动传输模式通信过程:

          1、FTP客户端使用TCP随机端口2153主动连接FTP服务器的TCP 21端口,进行TCP三次握手

          2、TCP三次握手之后,FTP客户端主动提供用于登录验证的用户名和密码,验证通过,服务器返回信息

          3、FTP客户端发出命令PASV,要求FTP服务器打开数据端口让客户端连接

【原创】FTP客户端采用主、被动传输模式时标准FTP协议通信过程 - 大河 - 大河Blog

           4、FTP服务器进入Passive Mode,打开自己的TCP8445端口供FTP客户端连接

【原创】FTP客户端采用主、被动传输模式时标准FTP协议通信过程 - 大河 - 大河Blog

          5、FTP客户端使用比刚才连接FTP服务器大1的端口即2154端口主动连接FTP服务器提供的8445端口,连接成功后则可以在服务器、客户端之间传递数据 

【原创】FTP客户端采用主、被动传输模式时标准FTP协议通信过程 - 大河 - 大河Blog

 
 三、我所用过的支持主动、被动传输的防火墙
      1、pfsense(m0n0wall不支持)
          在pfsense的网络接口设置界面中,提供了FTP Helper功能,即启用FTP主动被动模式支持。开启此功能后,不需要添加FTP通信的允许规则就可以使用FTP。如果是发布pfsense内的FTP服务器,则需要在WAN接口启用它;如果是pfsense内部的PC要与外部的FTP服务器使用主、被动传输模式,则需要在LAN接口开启它。设置操作如下图:

【原创】FTP客户端采用主、被动传输模式时标准FTP协议通信过程 - 大河 - 大河Blog

      2、ISA Server

          我使用的是ISA2006,在ISA2006中,只要使用服务器发布规则发布的内部FTP服务器,其就支持主、被动传输模式;使用访问规则允许FTP出站通信(用系统创建的协议),则内部PC就可以与外部FTP服务器间使用主、被动传输模式。

四、如果防火墙不支持主动或被动传输模式,那就要手工添加防火墙允许规则。

      主动模式:由于主动传输模式是FTP服务器用20端口主动连接FTP客户端提供的数据传输端口,而FTP客户端提供的数据传输端口一般是随机的(客户端连接服务器端口+1),如果想固定此端口,则需要FTP客户端软件支持,在Cuteftp中的设置如下:

【原创】FTP客户端采用主、被动传输模式时标准FTP协议通信过程 - 大河 - 大河Blog

 知道了主动传输模式服务器要连接客户端的端口后,在两侧防火墙上就可以添加相应的入站和出站访问规则即可。针对如上的设置,对于FTP服务器端的防火墙,则需要添加TCP 20端口到TCP 50000-50010端口的出站允许访问规则;对于FTP客户端的防火墙,则需要添加外部TCP 20端口到内部TCP 50000-50010端口的入站允许访问规则。
      被动传输模式:被动传输模式是FTP服务器打开端口让客户端连接,因此首先要在FTP服务器上设置被动模式时让客户端连接的端口范围,然后在两侧的防火墙上添加对应的出站和入站访问规则即可。
      下面是Server-U和filezilla服务器上关于被动模式设置的界面:

【原创】FTP客户端采用主、被动传输模式时标准FTP协议通信过程 - 大河 - 大河Blog

【原创】FTP客户端采用主、被动传输模式时标准FTP协议通信过程 - 大河 - 大河Blog 

 如果FTP服务器被动模式使用的端口是30000-30010,对于FTP服务器端的防火墙,则需要添加允许外部到内部TCP 30000-30010的入站允许访问规则;对于FTP客户端的防火墙,则需要添加内部到外部TCP 30000-30010的出站允许访问规则。

【原创】FTP客户端采用主、被动传输模式时标准FTP协议通信过程 - 大河 - 大河Blog


FTP通信过程分析

原文地址:http://hi.baidu.com/thezenger/blog/item/f4c8b929edca1721d42af1b0.html FTP通信过程分析 2010-04-0...
  • chengfangang
  • chengfangang
  • 2012年03月26日 17:37
  • 2809

使用Socket通信实现FTP客户端程序【很详细】

FTP 客户端如 FlashFXP,File Zilla 被广泛应用,原理上都是用底层的 Socket 来实现。FTP 客户端与服务器端进行数据交换必须建立两个套接字,一个作为命令通道,一个作为数据通...
  • wumenglu1018
  • wumenglu1018
  • 2016年12月19日 21:50
  • 1093

FTP工作过程的抓包分析

其实这个是我在写C#FTP编程时,总感觉写的时候模棱两可的,就姑且抓包看看,到底什么情况。第一次使用抓包工具,暂且做简单的分析吧我在本机登陆ftp,输入用户名,密码进行登录。对该过程,使用 CommV...
  • nndtdx
  • nndtdx
  • 2011年06月15日 23:57
  • 12087

ftp通讯方式以及应用

  • 2011年02月17日 13:13
  • 39KB
  • 下载

第1篇 Pfsense的安装和固定IP的设置

 官方文档:pfsense是基于freebsd6.0。pfsense是一个为了在X86平台上面建立一个高集成性的防火墙项目,以便和其他的商业防火墙媲美。为了达到这些目的,pfsense使用了一些在fr...
  • LuckArcher
  • LuckArcher
  • 2007年06月05日 09:40
  • 4827

FTP协议--工作模式和传输模式

FTP协议--工作模式和传输模式: FTP的工作模式       主动与被动是相对于服务器来说的。       主动模式,服务器用20号端口主动连接客户端的某端口建立数据连接       ...
  • TKDwave520
  • TKDwave520
  • 2013年09月15日 10:54
  • 1649

FTP的传输有两种方式:ASCII传输模式和二进制数据传输模式

FTP的传输有两种方式:ASCII传输模式和二进制数据传输模式   1.ASCII传输方式:假定用户正在拷贝的文件包含的简单ASCII码文本,如果在远程机器上运行的不是UNIX,当文件传输时ft...
  • z507263441
  • z507263441
  • 2014年08月15日 16:05
  • 9940

FTP文件传输协议两种模式-主动模式和被动模式

编辑本段使用模式 FTP有两种使用模式:主动和被动。主动模式要求客户端和服务器端同时打开并且监听一个端口以建立连接。在这种情况下,客户端由于安装了防火墙会产生一些问题。所以,创立了被动模式。被动...
  • xwdpepsi
  • xwdpepsi
  • 2013年07月08日 10:59
  • 31504

文件传输协议FTP、SFTP和SCP

网络通信协议分层和文件传输协议FTP、SFTP和SCP的使用。
  • Geurney
  • Geurney
  • 2015年09月11日 07:53
  • 16398

Wireshark抓包验证FTP明文传输

本人菜鸟,喜欢计算机网络,致力信息安全!网上看到一篇求助帖咨询FTP账号密码是否能被抓包获取,故亲自本地测试测试过程如下: 1、设计环境如下 测试软件:Filezilla Server/FTP...
  • kelonsen
  • kelonsen
  • 2013年06月14日 22:21
  • 3459
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:FTP采用主、被动传输模式时的通信过程及解决方案
举报原因:
原因补充:

(最多只允许输入30个字)