当前位置: 主页 > 服务器技术 > Ftp服务器 > ISA下FTP的解决方案

ISA下FTP的解决方案

时间:2009-11-27来源:图片处理网 点击:

      如果FTP服务器使用serv-u做的,把服务器放在ISA后面,其实就是要解决两个问题:

  1、PASV的端口。我上面的方法提出使用secondary connection,但事实证明不对,应该每个PASV端口都建立一条primary connection,然后分别建立server publishing rules,有多少个PASV端口,就要建立多少条。
这里还可以引出另一个话题,就是对Web publishing rules的运用,tony你应该知道,通过Web publishing rules也可以发布ftp服务器,但rule里面只给了一个ftp端口的选项,很明显,这是为PORT模式的Ftp服务器准备的,因为PORT模式的数据连接是由服务器发起的,在服务器一边,不存在穿过防火墙的问题。

  使用Web publishing rules还有一个很令人振奋的特性,就是支持动态公用IP用户,不需要象server publishing rules那样,每拨一次号都要修改一次外部地址。如果在Web publishing rules中也能搞定PASV问题,那么对于那些使用拨号上网而又想在内网发布PASV服务器的人来说,简直是天大的喜讯。

  需要好好考虑的是如何通过那个只能填一个端口的选项来发布随机的PASV端口?我从今天的实验找到了一点灵感,就是也象上面说的那样,每个PASV端口都设置一条Web publishing rules!我还未做这个实验,还不能证实这样做行不行,相信晚上就会有结果了。

  当然,还需要考虑如何控制PASV模式端口的范围,serv-u可以设定,而IIS的FTP不行。

  2、是服务器向客户端传送IP的问题。当FTP客户端登录进入服务器的时候,PASV模式服务器会向客户端传送本机的IP地址和数据端口,当服务器放在内网中的时候,服务器会向客户端返回内网的IP,这当然是不能完成连接的,需要让服务器返回ISA的外网地址。本来,解决方法可以使用firwall client的application settings中的nameresolutionforlocalhost参数,设为P就可以让应用程序返回ISA的外网地址,但这个参数是供firewall client使用的,而发布服务器不能安装firewall client,这很可惜。

  幸好,还是有一个好消息,就是serv-u本身具有返回ISA外网地址这样的功能,方法是先选中新建Ftp服务器的属性,在domain标签里选择“enable dynamic dns”,此时会出现第二个标签,叫“dynamic dns”,然后到tz0.com申请动态域名,申请后会得到一个key,在此标签中填入此key即可。最后一步,是到新建服务器的settings属性中,选择advanced标签,选中“allow passive mode data transfer”,旁边的IP地址框留空。这个框对于拨号用户不用填,只有出口使用固定地址才需要填。

  这样,serv-u向客户端返回IP和端口前,会先向tz0.com查询到ISA外网的地址,再发送给客户端。

解决了这两个问题,剩下的工作就简单了。

  从以上内容也可以说明一点,从内网不能发布IIS的Ftp服务器,因为IIS既没有选项可以选择PASV端口的范围,也没有办法让其返回ISA外网的地址。而serv-u这两条都可以满足。当然,在微软的网站上也可能有方法解决IIS的这两个问题。

  发布FTP服务器的时候,要注意FTP服务器有PORT和PASV两种模式。两者的共同点,是都使用21端口进行用户验证及管理,差别在于传送数据的方式不同,PORT模式的Ftp服务器数据端口固定在20,而PASV模式则在1025-65535之间随机。发布的时候要考虑这个差别。

  如果FTP服务器在内部网络中,在建立server publish rules时(虽然Web publish rules也能发布Ftp服务器,但它并没有提供对port和pasv模式的处理),protocol definitions中的21 inbound条目要建立一个secondary connection,为20端口上的inbound或1025-65535端口之间的inbound。

  如果Ftp服务器建立在ISA服务器上,就需要在ip packet filters中设置相关的条目,对于PORT模式,很简单,开放20 inbound就是,但pasv模式就麻烦一点,因为ip packet filters不能设置端口段,但我们也不可能把几万个端口逐个写一遍,只能把local port设置为dynamic,remote port设置为all ports,当然,对安全性这是个损害。

  幸运的是,有些PASV模式的FTP服务器能够设置PASV模式端口的范围,比如serv-u,它能够把PASV模式端口控制在最多50个端口范围内,如果为serv-u设置的并发用户数不多,那么我们就可以为每个PASV端口写一条filter,不需要开放所有的端口了。如果使用IIS的FTP服务器,这个Ftp服务器没有提供选择PASV模式端口的功能,只能如上所述那样,开放dynamic和all ports。

  从你上面的出错信息来看,你应该是使用IE来访问FTP服务器吧。IE的FTP客户端与其它专业FTP客户端不同,不能够自动检测Ftp服务器的类型以及根据服务器的类型改变客户端的种类。IE只提供了一个手工选项来改变PORT和PASV客户端角色,就是internet选项->高级->为FTP站点启用文件夹视图,选择它,IE为PASV模式客户端,不选则为PORT客户端。你需要根据服务器的类型手工更改这个选项。如果服务器的出口是ADSL类的链路,还要把“使用被动FTP(为防火墙和DSL调制解调器兼容性)”一项选上,这两个选项只在IE5.5以上版本提供

站长资讯网
.
分页: [1] [2]
TAG: ISA FTP 方案
推荐内容最近更新人气排行
关于我们 | 友情链接 | 网址推荐 | 常用资讯 | 网站地图 | RSS | 留言