« 上一篇下一篇 »

FTP的PORT和PASV传输模式

  1)从10月23日现在都没备份博客数据,因为这段时间照牛排用CuteFTP老是连不上服务器,部分提示信息如下:

命令:>   [2010-11-13 9:01:41] PORT 192,168,0,5,11,4
  [2010-11-13 9:01:41] 200 PORT command successful.
命令:>   [2010-11-13 9:01:41] LIST
  [2010-11-13 9:01:41] 150 Opening ASCII mode data connection for /bin/ls.
错误:>    [2010-11-13 9:02:12] 接受来自服务器的数据连接时发生超时(30000 毫秒)
状态:>   [2010-11-13 9:02:12] 正在等候 60 秒...
  [2010-11-13 9:02:12] 425 Can't open data connection.
错误:>    [2010-11-13 9:02:12] 接收到无效应答

  “接受来自服务器的数据连接时发生超时”,貌似客户端在接收服务器的数据时出现问题?我未装任何杀毒软件,关了防火墙(据说不关也行,只要打开20端口,或者在例外里添加CuteFTP程序即可),FTP传输模式也改为被动模式,但实践证明这些解决方法行不通。

  2)百度一下FTP的PORT和PASV传输模式,摘录如下:

  一、什么是FTP? 

  我们常说的FTP实际上指的是FTP协议,即文件传输协议(File Transfer Protocol),网络诞生的初期人们要交换文件时只能采取磁盘复制的方法,非常不方便。有的人就提出既然有了网络为什么不能通过网络传送文件呢?为了实现这个功能国际组织制定了FTP协议,他是internet最早的应用层协议,随着TCP/IP协议的诞生而诞生。这个协议用于主机间传送文件,主机类型可以相同也可以不同,还可以传送不同类型的文件,通过FTP我们可以在网络中直接传送文件而不用再使用磁盘媒介了。所以说FTP的应用范围很广,是最普及的文件传输协议。 

  早期的FTP是直接在DOS或命令行模式下输入一条条指令来实现文件的传输的,而目前随着图形界面软件的越来越多,用户只要通过简单的鼠标操作就可以轻松实现FTP传输功能了。这类软件很多例如FLASHFXP,CUTEFTP等。 

  二、什么是TFTP?  

  除了FTP还有一个协议也可以用于传输文件,他就是TFTP协议。TFTP协议是一个传输文件的简单协议,为什么说他简单是因为他只提供传输文件而不确保文件的成功传送。正因为他在安全性上没有保证,所以没有FTP普及。不过由于他不用消耗相应的网络资源用于传输确保,所以在一些对连接要求不高或者可以通过其他辅助手段确保安全的场所,TFTP还是有用武之地的。例如路由器上设置的保存方面。不过总体上讲FTP比TFTP功能更加强大,占据了文件传输协议的主导地位。正因为TFTP的安全问题,所以即便用TFTP协议也往往只开放其下载权限而不分配上传权限。

  三、FTP的传输原理与两种工作模式:PORT和PASV

  首先笔者为大家介绍下FTP的工作原理,只有把原理弄清楚后才能更好的理解FTP的两种工作模式。整个FTP建立连接的过程有以下几步:

  第一步:对于一个FTP服务器来说他会自动对默认端口进行监听(默认端口是可以修改的,一般为21),当某个客户机向这个专用端口请求建立连接时便激活了服务器上的控制进程,通过这个控制进程进行用户名密码及权限的验证。

  第二步:当验证完成后服务器和客户机之间还会建立另外一条专有连接进行文件数据的传输。 

  第三步:在传输过程中服务器上的控制进程将一直工作,并不断发出指令操作整个FTP传输,传输完毕后控制进程发送给客户机结束指令。

  以上就是FTP建立连接的整个过程,不过FTP自身有两种工作模式,也就是说在第二步中提示“建立另外一条专有连接方式”的方法有两种。习惯上我们称为主动模式和被动模式。

  FTP使用2个TCP端口,首先是建立一个命令端口(控制端口),然后再产生一个数据端口。国内很多教科书都讲FTP使用21命令端口和20数据端口,这个应该是教书更新太慢的原因吧。实际上FTP分为主动模式和被动模式两种,FTP工作在主动模式使用tcp 21和20两个端口,而工作在被动模式会工作在大于1024随机端口。FTP最权威的参考见RFC 959。目前主流的FTP Server服务器模式都是同时支持PORT和PASV两种方式,但是为了方便管理安全管理防火墙和设置ACL了解FTP Server的PORT和PASV模式是很有必要的。

FTP的PORT模式  主动模式:PORT模式

       PORT其实是Standard模式的另一个名字,又称为Active模式,中文意思是“主动模式。主动方式的FTP是这样的:客户端从一个任意的非特权端口N(N>1024)连接到FTP服务器的命令端口(即tcp 21端口)。紧接着客户端开始监听端口N+1,并发送FTP命令“PORT N+1”到FTP服务器。最后服务器会从它自己的数据端口(20)连接到客户端指定的数据端口(N+1),这样客户端就可以和FTP服务器建立数据传输通道了。FTP PORT模式工作流程如下图所示:

  针对FTP服务器前面的防火墙来说,必须允许以下通讯才能支持主动方式FTP:
  1、客户端口>1024端口到FTP服务器的21端口 (入:客户端初始化的连接 S<-C)
  2、FTP服务器的21端口到客户端>1024的端口(出:服务器响应客户端的控制端口 S->C)
  3、FTP服务器的20端口到客户端>1024的端口(出:服务器端初始化数据连接到客户端的数据端口 S->C)
  4、客户端>1024端口到FTP服务器的20端口(入:客户端发送ACK响应到服务器的数据端口 S<-C)

  如果服务器的ip为192.168.10.1在H3C 8500的GigabitEthernet 2/1/10 上创建in acl策略允许FTP 主动模式其他禁止:
  rule permit tcp source 192.168.10.1 0 source-PORT eq 21 destination-PORT gt 1024
  rule permit tcp source 192.168.10.1 0 source-PORT eq 20 destination-PORT gt 1024
  rele deny ip

FTP的PASV模式  被动模式:PASV模式

       PASV也就是Passive的简写,中文就是“被动模式。在被动方式FTP中,命令连接和数据连接都由客户端。当开启一个FTP连接时,客户端打开两个任意的非特权本地端口(N > 1024和N+1)。第一个端口连接服务器的21端口,但与主动方式的FTP不同,客户端不会提交PORT命令并允许服务器来回连它的数据端口,而是提交PASV命令。这样做的结果是服务器会开启一个任意的非特权端口(P > 1024),并发送PORT P命令给客户端。然后客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。FTP PASV模式工作流程如下图所示:

  对于服务器端的防火墙来说,必须允许下面的通讯才能支持被动方式的FTP:
  1、客户端>1024端口到服务器的21端口 (入:客户端初始化的连接 S<-C)
  2、服务器的21端口到客户端>1024的端口 (出:服务器响应到客户端的控制端口的连接 S->C)
  3、客户端>1024端口到服务器的大于1024端口 (入:客户端初始化数据连接到服务器指定的任意端口 S<-C)
  4、服务器的大于1024端口到远程的大于1024的端口(出:服务器发送ACK响应和数据到客户端的数据端口 S->C)

  如果服务器的ip为192.168.10.1在H3C 8500的GigabitEthernet 2/1/10 上创建in acl策略允许FTP 主动模式其他禁止:
  rule permit tcp source 192.168.10.1 0 source-PORT eq 21 destination-PORT gt 1024
  rule permit tcp source 192.168.10.1 0 source-PORT gt 1024 destination-PORT gt 1024
  rele deny ip

  IE6默认是用PASV方式的,如果要在IE里启用PORT方式,可在菜单里选择:工具/Internet选项/高级/浏览,将“使用被动FTP(为防火墙和DSL调制解调器兼容性)”前面的勾去掉。

  FTP的PORT和PASV模式最主要区别就是数据端口连接方式不同,FTP PORT模式只要开启服务器的21和20端口,而FTP PASV需要开启服务器大于1024所有tcp端口和21端口。重网络安全的角度来看的话似乎FTP PORT模式更安全,而FTP PASV更不安全,那么为什么RFC要在FTP PORT基础再制定一个FTP PASV模式呢?其实RFC制定FTP PASV模式的主要目的是为了数据传输安全角度出发的,因为FTP PORT使用固定20端口进行传输数据,那么作为黑客很容使用sniffer等探嗅器抓取FTP数据,这样一来通过FTP PORT模式传输数据很容易被黑客窃取,因此使用PASV方式来架设FTP server是最安全绝佳方案。

  如果作为一个有经验的网络管理员就会发现使用FTP PASV方式会给网络安全很大隐患,那就是FTP PASV需要开启服务器tcp大于1024所有端口,这样对服务器的安全保护是非常不利的。在此我建议两种方法来完善FTP PASV模式的端口开放问题,第一种就是使用弱洞扫描工具比如Xscan找出服务器开放的端口然后使用acl把端口deny掉,另外一种方法就是使用具有状态检测防火墙开启FTP PASV的端口。

  在FTP PASV模式下是使用状态检测防火墙比acl最大的好处就是使用状态检测防火墙只要开启FTP 21端口就可以了,状态检测防火墙会检测客户端口连接FTP server的21命令端口,一但检测客户端使用FTP 21命令端口然后就会允许这个Session使用FTP服务器大于1024端口,而其他方式是无法直接访问FTP服务器大于1024端口。通过状态检测防火墙就可以保证FTP 服务器大于1024端口只对FTP Session开放了。目前像IPTable、ISA Server 2000/2004/2006、以及主流硬件防火墙都可以支持状态检测。

参考资料:http://hi.baidu.com/xianyang1981/blog/item/f17d6f6d8650c0f842169427.html http://www.chinaz.com/Server/FTP/102T22B2008.html

  还没注册Payoneer的朋友可免费申请一个,现在申请Payoneer可获得25美元奖励并且直接享受1.2%全包的优惠:不仅入账免费,全币种提现只收1.2%的费用,无汇损,当你累积收款100美元时将一次性获得25美元奖励。需要注意的是,如果你直接打开Payoneer官网进行注册,是没有上述优惠的,请务必打开【野猪尖的推荐链接】进行注册。Payoneer注册咨询QQ:2822129880

Payoneer

野猪尖的推荐链接https://www.payoneer.com/zh/znp (此地址要完整地复制,建议直接点击)

【Payoneer申请教程:个人账户企业账户订购Payoneer实体卡(P卡)

Payoneer注册与使用指南(包括P卡申请、Payoneer官方、手续费、收款、提现和消费):
注册-收款工具那么多,为何选择Payoneer? | 为何申请Payoneer万事达预付卡+欧美日收款银行账号
   Payoneer有卡账户和无卡账户的区别Payoneer个人账户注册申请教程P卡公司帐户注册教程
   Payoneer欧元帐户虚拟卡) | Payoneer英镑帐户Payoneer日元帐户订购实体卡(P卡
   Payoneer卡年费啥时候扣? | Payoneer卡休眠和激活P卡到期后如何更换? | 如何注销P卡

官方-Payoneer秉承公正、公开、透明服务Payoneer官方最新政策汇总官方客服联系方式
   Payoneer官方费用表如何减少Payoneer的手续费?点此免除入账费点此降低提现费
   跨境收款服务商拷问篇——PayoneerPayoneer客户答疑手册(FAQ)Payoneer手机App

收款-跨境电商/外贸收款方式对比Payoneer可以错名收款吗
   Amazon亚马逊卖家设置Payoneer卡收款教程Payoneer支持从美国电商平台Newegg收款
   Amazon亚马逊收款方式对比(Payoneer,World First,PingPong,美国/香港银行卡)
   CJ联盟设置Payoneer卡收款ClickBank联盟设置Payoneer收款Amazon联盟设置P卡收款
   Payoneer如何从东南亚电商平台Lazada收款如何在Lazada开店
   Payoneer如何从拉美电商平台Linio收款? | Payoneer绑定非洲电商平台Jumia收款
   Payoneer如何从跨境移动电商Wish收款? | Wish模式正在改变电商格局
   Payoneer支持从法国乐天Priceminister收款法国电商平台CDiscount对接Payoneer收款
   Payoneer可接受个人与公司信用卡付款(请求付款)关于Payoneer卡充值
   从PayPal提现到Payoneer卡教程及手续费用PayPal无法绑定并转账到Payoneer卡

提现-从Payoneer卡提现到国内银行账户Payoneer无法从Dating联盟收款并限制提现方式
   用P卡在中国银行ATM机取款4000元用Payoneer卡在中国建设银行ATM机取款500元

消费-用Payoneer卡在GoDaddy买域名主机教程


人在做天在看,转载请以链接的形式注明本文地址
本文地址:http://www.zhaoniupai.com/blog/archives/715.html