一个、ftp的port和pasv工作方式

       FTP使用2个TCPport,首先是建立一个命令port(控制port),然后再产生一个数据port。

国内非常多教科书都讲ftp使用21命令port和20数据port,这个应该是教书更新太慢的原因吧。实际上FTP分为主动模式和被动模式两种。ftp工作在主动模式使用tcp 21和20两个port,而工作在被动模式会工作在大于1024随机port。FTP最权威的參考见RFC 959。有兴趣的朋友能够细致阅读ftp://nic.merit.edu/documents/rfc/rfc0959.txt的文档了解FTP具体工作模式和命令。眼下主流的FTP
Serverserver模式都是同一时候支持port和pasv两种方式,可是为了方便管理安全管理防火墙和设置ACL了解FTP Server的port和pasv模式是非常有必要的。

1.1 ftp port模式(主动模式)

       主动方式的FTP是这种:client从一个随意的非特权portN(N>1024)连接到FTPserver的命令port(即tcp 21port)。紧接着client開始监听portN+1,并发送FTP命令“port N+1”到FTPserver。最后server会从它自己的数据port(20)连接到client指定的数据port(N+1)。这样client就能够和ftpserver建立传输数据通道了。ftp port模式工作流程例如以下图所看到的:

针对FTPserver前面的防火墙来说,必须同意下面通讯才干支持主动方式FTP:

1、客户port>1024port到FTPserver的21port (入:client初始化的连接 S<-C)

2、FTPserver的21port到client>1024的port(出:server响应client的控制port S->C) 

3、FTPserver的20port到client>1024的port(出:server端初始化数据连接到client的数据port S->C)

4、client>1024port到FTPserver的20port(入:client发送ACK响应到server的数据port S<-C)

假设server的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

1.2 ftp pasv模式(被动模式)

       在被动方式FTP中,命令连接和数据连接都由client。

当开启一个FTP连接时,client打开两个随意的非特权本地port(N > 1024和N+1)。第一个port连接server的21port,但与主动方式的FTP不同,client不会提交PORT命令并同意server来回连它的数据port。而是提交PASV命令。这样做的结果是server会开启一个随意的非特权port(P > 1024)。并发送PORT P命令给client。然后client发起从本地portN+1到server的portP的连接用来传送数据。ftp pasv模式工作流程例如以下图所看到的:

对于server端的防火墙来说。必须同意以下的通讯才干支持被动方式的FTP: 

1、client>1024port到server的21port (入:client初始化的连接 S<-C) 

2、server的21port到client>1024的port (出:server响应到client的控制port的连接 S->C) 

3、client>1024port到server的大于1024port (入:client初始化数据连接到server指定的随意port S<-C) 

4、server的大于1024port到远程的大于1024的port(出:server发送ACK响应和数据到client的数据port S->C)

假设server的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

二、ftp的port和pasv模式的工作方式

       ftp的port和pasv模式最主要差别就是数据端口连接方式不同,ftp port模式仅仅要开启server的21和20端口,而ftp pasv须要开启server大于1024全部tcp端口和21端口。重网络安全的角度来看的话似乎ftp port模式更安全。而ftp pasv更不安全,那么为什么RFC要在ftp port基础再制定一个ftp pasv模式呢?事实上RFC制定ftp pasv模式的主要目的是为了数据传输安全角度出发的。由于ftp port使用固定20端口进行数据传输,那么作为黑客非常容使用sniffer等探嗅器抓取ftp数据,这样一来通过ftp
port模式数据传输非常easy被黑客窃取,因此使用pasv方式来架设ftp server是最安全绝佳方案。

       假设作为一个有经验的网络管理员就会发现使用ftp pasv方式会给网络安全非常大隐患,那就是ftp pasv须要开启servertcp大于1024全部port,这样对server的安全保护是非常不利的。在此我建议两种方法来完好FTP Pasv模式的port开放问题,第一种就是使用弱洞扫描工具比方Xscan找出server开放的port然后使用acl把portdeny掉,第二种方法就是使用具有状态检測防火墙开启ftp pasv的port。

在ftp pasv模式下是使用状态检測防火墙比acl最大的优点就是使用状态检測防火墙仅仅要开启ftp 21port就能够了。状态检測防火墙会检測客户port连接ftp server的21命令port,一但检測client使用ftp 21命令port然后就会同意这个Session使用ftpserver大于1024port。而其它方式是无法直接訪问ftpserver大于1024port。通过状态检測防火墙就能够保证ftp server大于1024port仅仅对FTP Session开放了。

眼下像IPTable、ISA Server 2000/2004/2006、以及主流硬件防火墙都能够支持状态检測。

转自:http://leowzy.iteye.com/blog/1279265

版权声明:本文博客原创文章,博客,未经同意,不得转载。

ftp的port和pasv型号比较的更多相关文章

  1. FTP的PORT和PASV的连接方式以及数据连接端口号计算

    FTP的PORT和PASV的连接方式以及数据连接端口号计算   PORT(自动)方法的连接途中是: 客户端向服务器的FTP端口(原始是21)发送连接请求,服务器领受连接,建立一条command链路. ...

  2. FTP的PORT(主动模式)和PASV(被动模式)

    最近做一个项目用到FTP和其它系统进行文件传输,结果在FTP网络连接的问题上花了很多时间,由于太久没搞多FTP,忘记了FTP不单单开放21端口,客户端采用不同连接模式对网络有不同.在此重温一下FTP的 ...

  3. FTP出现PORT模式成功, 请更新你的站点配置文件

    最近用FTP连接站点,经常出现连接不上或者连接失败,提示以PASV模式连接失败,正在使用PORT模式连接,最后才能连接成功,连接时间也是相当长,又慢又不稳定.   工具/原料   FlashFXP等F ...

  4. FTP Service mode : PORT & PASV

    PORT Mode: 1. FTP client use TCP port 1026 for command to FTP server command port 212. FTP server us ...

  5. ftp:500 Illegal PORT command. 425

    局域网用FTP命令访问外网的FTP SERVER,执行任何命令(如dir,ls,put,get)总是报下面的错误ftp:500 Illegal PORT command. 425ftp:Use POR ...

  6. android(十五) FTP的两种工作模式

    (一)PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链 当需要传送数据时,客户端在命令链路上用 PORT命令告诉服务器:“我打开了 ...

  7. FTP的连接方式(防火墙的配置)

         FTP是仅基于TCP的服务,不支持UDP.与众不同的是FTP使用2个端口,一个数据端口和一个命令端口(也可叫做控制端口).通常来说这两个端口是21(命令端口)和20(数据端口).       ...

  8. 98、配置ftp服务器(vsftpd)

    98.1.安装vsftpd: 1.安装: [root@m01 ~]# yum install -y vsftpd #安装vsftpd [root@m01 ~]# vsftpd -v #查看ftp的版本 ...

  9. FTP基础知识 FTP port(主动模式) pasv(被动模式) 及如何映射FTP

    您是否正准备搭建自己的FTP网站?您知道FTP协议的工作机制吗?您知道什么是PORT方式?什么是PASV方式吗?如果您不知道,或没有完全掌握,请您坐下来,花一点点时间,细心读完这篇文章.所谓磨刀不误砍 ...

随机推荐

  1. App域名劫持之DNS高可用 - 开源版HttpDNS方案详解(转)

      http://mp.weixin.qq.com/s?__biz=MzAwMDU1MTE1OQ==&mid=209805123&idx=1&sn=ced8d67c3e2cc3 ...

  2. CC2530 外部中断 提醒

    #include "ioCC2530.h" #define uchar unsigned char #define led1    P1_0 #define led2    P1_ ...

  3. Why 使用TLS记录封装IP层VPN IS A Bad Idea

    一个很自然的想法,使用TLS套餐一IP数据报实现第三层VPN.这种想法必须经过深思熟虑的,但不幸的是,.这是一个错误的想法.有文章<Why TCP Over TCP Is A Bad Idea& ...

  4. 我的学习笔记_Windows_HOOK计划 2009-12-03 11:19

    一.什么是HOOK? "hook"这个单词的意思是"钩子","Windows Hook"是Windows消息处理机制的一个重要扩展,程序猿能 ...

  5. ACE 主动对象模式的按部就班的实现方法

    ACE的主动对象模式的实现 对分布式系统设计来说,ACE提供的主动对象模式是让我们在系统框架构建的时候,回归到传统的单线程编程思维.你可能要问,既然有主动对象,那必然有被动对象,没有错,确实有被动对象 ...

  6. Android 游戏开发 View框架

    按键盘的上下键矩形就会上下移动: 通过实例化Handler对象并重写handkeMessage方法实现了一个消息接收器.然后再线程中通过sendMessage方法发送更新界面的消息,接收器收到更新界面 ...

  7. Case when 的使用方法

    SQL Case when 的使用方法 Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THE ...

  8. 第4周 页面限制8060 bytes

    原文:第4周 页面限制8060 bytes 恭喜您!在你面前就只剩下几页了,然后你就可以完成第1个月的SQL Server性能调优培训了.今天我将讲下页的一些限制,还有为什么你会喜欢这些限制,同时也会 ...

  9. HDU 4883 Best Coder Round 2 TIANKENG’s restaurant 解读

    有一组数据是在客人到达和出发时间,问:多少把椅子的能力,以满足所有客人的需求,可以有一个地方坐下要求. 有些人甚至开始考虑暴力法,这些数据是少,其实这个问题很多数据, 暴力需求O(n*n)的时间效率, ...

  10. .net 一些常用的工具来破解

    在.net  我们经常提到破 Reflector\SimpleAssemblyExplorer和CFF Explore几个工具. 我们有一个非常简单的Windows Form方案,例如,说他们如何使用 ...