FTP主动模式及被动模式_第1页
FTP主动模式及被动模式_第2页
FTP主动模式及被动模式_第3页
FTP主动模式及被动模式_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、FTP 主动模式及被动模式 2005-11-13 4:45:00FTP 主动模式及被动模式作者:网络转载FTP 的特殊性:大多数的TCP服务是使用单个的连接,一般是客户向服务器的一个周知端口 发起连接,然后使用这个连接进行通讯。但是,FTP协议却有所不同,它使用 双向的多个连接,而且使用的端口很难预计。一般, FTP 连接包括:一个控制连接(control connection)这个连接用于传递客户端的命令和服务器端对命令的响应。它使用服务器的 2 1端口,生存期是整个FTP会话时间。几个数据连接(data connection) 这些连接用于传输文件和其它数据,例如:目录列表等。这种连接在需

2、要数 据传输时建立,而一旦数据传输完毕就关闭,每次使用的端口也不一定相同。而 且,数据连接既可能是客户端发起的,也可能是服务器端发起的。在FTP协议中,控制连接使用周知端口 21,因此使用ISA的IP PACKET F ILTER就可以这种连接进行很好的安全保护。相反,数据传输连接的目的端口通 常实现无法知道,因此处理这样的端口转发非常困难。 FTP 协议使用一个标准 的端口 21作为ftp-data端口,但是这个端口只用于连接的源地址是服务器端的 情况,在这个端口上根本就没有监听进程。 FTP 的数据连接和控制连接的方向 一般是相反的,也就是说,是服务器向客户端发起一个用于数据传输的连接。连

3、 接的端口是由服务器端和客户端协商确定的。FTP协议的这个特征对ISA转发 以及防火墙和 NAT 的配置增加了很多困难。除此之外,还有另外一种FTP模式,叫做被动模式(passive mod)。在这种模 式下,数据连接是由客户程序发起的,和刚才讨论过的模式(我们可以叫做主动 模式)相反。是否采取被动模式取决于客户程序,在ftp命令行中使用passive命 令就可以关闭/打开被动模式。前面我们讲过, FTP 协议的数据传输存在两种模式:主动模式和被动模式。 这两种模式发起连接的方向截然相反,主动模式是从服务器端向客户端发起;被 动模式是客户端向服务器端发起连接。我们回到ISA的情况,如果采用被动

4、模式,由于IIS是完全随机的选择一个端 口,并告知客户,然后客户进行主动连接,这就意味着在ISA上,你要让所有 的端口都允许动态入站连接才行,这样肯定不行,因为太危险了,等于打开了所 有的端口连接。如果采用主动模式(PORT Mode), IIS选择好端口后,主动与客户进行连接, 这时候不需要像 PASV 模式那样打开所有的动态入站连接,而且正好相反,我 们需要打开所有的动态出站连接即可,安全性增加很多。而且由ISA的IP PAC KET FILTER只对ISA本机起作用,不会造成局域网内的客户“放了羊”。所以,我个人这样做的:(1)由于IIS和ISA都在一台机器上,所以它俩都在侦听21号端口

5、(IIS默 认情况下会侦听所有地址的21端口),所以我们首先要让IIS只侦听内网地址的PORT 21,在DOS下,你可以通过NETSTAT -NA abc.txt,然 后打开这个文件,你会看到 21 LISTENING 字样。输入如下命令:net stop msftpsvc (停止 FTP 服务)进入 l netpubadmi nscripts 目录cscript adsutil.vbs set msftpsvc/disablesocketpooling true (停止侦听) net start msftpsvc (启动 FTP 服务)(2)在 IIS 控制台里面,ftp-Property-

6、FTP Site-IP Address 改为内网地 址。现在,FTP服务只侦听内网IP的21号端口了。(3)大家可能这时候有疑问,如果是IIS主动连接客户端,那客户端的防火 墙是不是会阻止这个连接(PASV模式不存在这个问题)。为了防止这种情况, 我们可以强制IIS不能与客户端的任意端口进行连接,而只有客户端连接IIS的 端口进行数据传输。这样就可以解决PORT MODE与客户端防火墙的冲突。方 法:修改注册表, HKEY_LOCAL_MACHINESystemCurrentControlSetServicesMsftpsv cParameters,将EnablePortAttack的值由0改

7、为1,然后重新启动FTP服务。(4)在ISA里面,使用SERVER PUBLISH的方法发布FTP服务,其中:I P address of in ter nal server 填写 ISA 的内部网卡的 IP, IP address of exte rnal server 填写 ISA 的外部网卡的 IP, Mapped server protocol 选择 FTP S erver。(5)然后在 IP Packet Filter 建立一条新 RULES, Protocol-TCP,Direction -Outbound,Local Port-Dymanic,Remote Port-All。这是

8、我的解决办法,但是并不完美,主要是:(1)客户不能使用PASV方法进行连接,原因上面已经讲了。(2)由于第五条,所以ISA服务器随着保证了对外部访问的限制,却无法限 制ISA本机对外部的访问。我也把我的方法做了一下实验,使用serv-u做的,有一点错误,不过终归做 了出来,下面总结一下:PASV服务器放在ISA后面,其实就是要解决两个问题:1。PASV的端口。我上面的方法提出使用secondary connection,但事实证 明不对,应该每个PASV端口都建立一条primary connection,然后分别建立s erver publishing rules,有多少个PASV端口,就要建

9、立多少条。这里还可以引出另一个话题,就是对web publishing rules的运用,tony你 应该知道,通过web publishing rules也可以发布ftp服务器,但rule里面只给 了一个ftp端口的选项,很明显,这是为PORT模式的FTP服务器准备的,因 为PORT模式的数据连接是由服务器发起的,在服务器一边,不存在穿过防火 墙的问题。使用 web publishing rules 还有一个很令人振奋的特性,就是支持动态公用 I P用户,不需要象server publishing rules那样,每拨一次号都要修改一次外部 地址。如果在web publishing rule

10、s中也能搞定PASV问题,那么对于那些使 用拨号上网而又想在内网发布PASV服务器的人来说,简直是天大的喜讯。需要好好考虑的是如何通过那个只能填一个端口的选项来发布随机的PASV 端口?我从今天的实验找到了一点灵感,就是也象上面说的那样,每个PASV 端口都设置一条web publishing rules!我还未做这个实验,还不能证实这样做 行不行,相信晚上就会有结果了。当然,还需要考虑如何控制PASV模式端口的范围,serv-u可以设定,而II S的FTP不行。2。是服务器向客户端传送IP的问题。当FTP客户端登录进入服务器的时候, PASV模式服务器会向客户端传送本机的IP地址和数据端口,

11、当服务器放在内 网中的时候,服务器会向客户端返回内网的IP,这当然是不能完成连接的,需 要让服务器返回ISA的外网地址。本来,解决方法可以使用firwall client的ap plication settings 中的 nameresolutionforlocalhost 参数,设为 P 就可以让应用 程序返回ISA的外网地址,但这个参数是供firewall client使用的,而发布服务 器不能安装firewall client,这很可惜。幸好,还是有一个好消息,就是serv-u本身具有返回ISA外网地址这样的功 能,方法是先选中新建FTP服务器的属性,在domain标签里选择“enabl

12、e dyn amic dns”,此时会出现第二个标签,叫dynamic dns”,然后到申请动 态域名,申请后会得到一个key,在此标签中填入此key即可。最后一步,是到 新建服务器的settings属性中,选择advaneed标签,选中allow passive mod e data transfer”,旁边的IP地址框留空。这个框对于拨号用户不用填,只有出 口使用固定地址才需要填。这样,serv-u向客户端返回IP和端口前,会先向查询到ISA外网的 地址,再发送给客户端。解决了这两个问题,剩下的工作就简单了。从以上内容也可以说明一点,从内网不能发布IIS的FTP服务器,因为IIS既 没有选

13、项可以选择PASV端口的范围,也没有办法让其返回ISA外网的地址。 而serv-u这两条都可以满足。当然,在微软的网站上也可能有方法解决IIS的这 两个问题。发布FTP服务器的时候,要注意FTP服务器有PORT和PASV两种模式。 两者的共同点,是都使用 21 端口进行用户验证及管理,差别在于传送数据的方 式不同,PORT模式的FTP服务器数据端口固定在20,而PASV模式则在102 5-65535 之间随机。发布的时候要考虑这个差别。如果FTP服务器在内部网络中,在建立server publish rules时(虽然web publish rules也能发布ftp服务器,但它并没有提供对po

14、rt和pasv模式的处理), protocol defi niti ons 中的 21 inbound 条目要建立一个 sec on dary conn ecti on, 为20 端口上的 inbound 或1 025-65535端口之间的 inbound。如果FTP服务器建立在ISA服务器上,就需要在ip packet filters中设置相 关的条目,对于PORT模式,很简单,开放20 inbound就是,但pasv模式就 麻烦一点,因为 ip packet filters 不能设置端口段,但我们也不可能把几万个端 口逐个写一遍,只能把local port设置为dynamic,remote port设置为all por ts,当然,对安全性这是个损害。幸运的是,有些PASV模式的FTP服务器能够设置PASV模式端口的范围, 比如serv-u,它能够把PASV模式端口控制在最多50个端口范围内,如果为s erv-u设置的并发用户数不多,那么我们就可以为每个PASV端口写一条filter, 不需要开放所有的端口了。如果使用IIS的FTP服务器,这个FTP服务器没有 提供选择PASV模式端口的功能,只能如上所述那样,开放dynamic和all por ts。从你上面的出错信息来看,你应该是使用IE来访问FTP服务器吧。IE的FT P客户端与其它专业FT

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论