• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

ISA下FTP的解决办法(2)

发布: 2007-6-23 14:09 | 作者:   | 来源:   | 查看: 18次 | 进入软件测试论坛讨论

领测软件测试网

   
  前面我们讲过,FTP协议的数据传输存在两种模式:主动模式和被动模式。这两种模式发起连接的方向截然相反,主动模式是从服务器端向客户端发起;被动模式是客户端向服务器端发起连接。

  我们回到ISA的情况,如果采用被动模式,由于IIS是完全随机的选择一个端口,并告知客户,然后客户进行主动连接,这就意味着在ISA上,你要让所有的端口都允许动态入站连接才行,这样肯定不行,因为太危险了,等于打开了所有的端口连接。

  如果采用主动模式(PORT Mode),IIS选择好端口后,主动与客户进行连接,这时候不需要像PASV模式那样打开所有的动态入站连接,而且正好相反,我们需要打开所有的动态出站连接即可,安全性增加很多。而且由ISA的IP PACKET FILTER只对ISA本机起作用,不会造成局域网内的客户“放了羊”。

  所以,我个人这样做的:

  (1)由于IIS和ISA都在一台机器上,所以它俩都在侦听21号端口(IIS默认情况下会侦听所有地址的21端口),所以我们首先要让IIS只侦听内网地址的PORT 21,在DOS下,你可以通过NETSTAT -NA > abc.txt,然后打开这个文件,你会看到0.0.0.0 21 LISTENING字样。

  输入如下命令:

  net stop msftpsvc (停止FTP服务)
  进入\Inetpub\adminscripts\目录
  cscript adsutil.vbs set msftpsvc/disablesocketpooling true (停止侦听)
  net start msftpsvc (启动FTP服务)

  (2)在IIS控制台里面,ftp->Property->FTP Site->IP Address改为内网地址。现在,FTP服务只侦听内网IP的21号端口了。

  (3)大家可能这时候有疑问,如果是IIS主动连接客户端,那客户端的防火墙是不是会阻止这个连接(PASV模式不存在这个问题)。为了防止这种情况,我们可以强制IIS不能与客户端的任意端口进行连接,而只有客户端连接IIS的端口进行数据传输。这样就可以解决PORT MODE与客户端防火墙的冲突。方法:修改注册
表,HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Msftpsvc\Parameters\,将EnablePortAttack的值由0改为1,然后重新启动FTP服务。

  (4)在ISA里面,使用SERVER PUBLISH的方法发布FTP服务,其中:IP address of internal server 填写ISA的内部网卡的IP,IP address of external server 填写ISA的外部网卡的IP,Mapped server protocol 选择 FTP Server。

  (5)然后在IP Packet Filter建立一条新RULES,Protocol->TCP,Direction->Outbound,Local Port->Dymanic,Remote Port->All。

  这是我的解决办法,但是并不完美,主要是:

  (1)客户不能使用PASV方法进行连接,原因上面已经讲了。

  (2)由于第五条,所以ISA服务器随着保证了对外部访问的限制,却无法限制ISA本机对外部的访问。

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网