一个、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. Objective-C之成魔之路【9-类构造方法和成员变量作用域、以及变量】

    郝萌主倾心贡献,尊重作者的劳动成果.请勿转载. 假设文章对您有所帮助,欢迎给作者捐赠,支持郝萌主,捐赠数额任意,重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源代码下载:点我传送 构造方法 ...

  2. android EditText的美化

    今天要做一个页面,有EditText,于是就搞起了它的美化. EditText的美化,我的第一反应是,在EditText的左边设置显示一张图片,这样会比較好看. 设置左边显示图片的属性为:androi ...

  3. Android定义自己的面板共享系统

    在Android分享知道有一个更方便的方法.调用的共享面板来分享我们的应用程序的系统.主要实现例如,下面的: public Intent getShareIntent(){ Intent intent ...

  4. Google Map API V2密钥申请

    之前用的都是v1,用的是MapView,好吧,仅仅能认命了.废话不再多说,開始android 的Google Maps Android API v2吧 之前參考了http://www.cnblogs. ...

  5. ZOJ Problem Set - 3829Known Notation(贪心)

    ZOJ Problem Set - 3829Known Notation(贪心) 题目链接 题目大意:给你一个后缀表达式(仅仅有数字和符号),可是这个后缀表达式的空格不幸丢失,如今给你一个这种后缀表达 ...

  6. mysql回想一下基础知识

    创建数据库 creat table test( #整数通常用于int test_id int, #十进制通常使用decimal test_price decimal, #普通文本通常使用.并使用Def ...

  7. Cocos2d-x学习笔记(六) 定时器Schedule的简单应用

     Cocos2d-x中的定时器使用非常easy,共同拥有3种:schedule.scheduleUpdate和scheduleOnce.简介一下三种的差别: schedule,每隔指定时间运行某个 ...

  8. Paint获取Text的宽和高的数据

    获取字符串的宽度: public static float GetTextWidth(String text, float Size) { // 第一个参数是要计算的字符串,第二个参数是字提大小 Te ...

  9. oracle 转让日期格式字符串

    字符串传递日期格式 SELECT trunc(to_date(SALE_MON,'yyyy-mm'),'y'),trunc(to_date(SALE_MON,'yyyy-mm'),'mm')  FRO ...

  10. 跟我extjs5(03--在项目过程中加载文件)

    跟我extjs5(03--在项目过程中加载文件) 上一节中用sencha工具自己主动创建了一个项目.而且能够在浏览器中查看. 如今我们来看看js类载入过程. 例如以下图所看到的: watermark/ ...