当前位置: 首页 > 图文教程 > 服务器 > FTP服务器 > ISA下FTP的解决办法(2)

FTP服务器
创建IIS下用户隔离模式FTP站点
利用SSL加密增强FTP服务器的安全性
Gene FTP服务不支持中文目录巧解决
FTP上传文件经常中断或超时的解决方案
Windows 2003 Server FTP用户隔离
服务器架站务实:零起步学FTP概念篇
巧用DOS命令远程管理FTP服务器
FTP连接后为何无法列表,列表错误
Serv-U:快速构建功能强大FTP服务器
实现文件双向传输 搭建FTP服务器
用windows2000架设自己的FTP SERVER
FrontPage 2000网站FTP到NT服务器
巧改传输模式解决FTP连接问题
迫在眉睫:保护FTP服务器口令安全
详解:FTP登陆错误问题完全分析
Linux下用vsftpd构建FTP服务器
用Serv-U构建功能强大FTP服务器
ArGoSoft FTP服务器:架设只要一分钟
架设FTP服务器教程
webshell+servu获取系统最高权限

FTP服务器 中的 ISA下FTP的解决办法(2)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-17   浏览: 48 ::
收藏到网摘: n/a

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

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

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

所以,我个人这样做的:

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

输入如下命令:

netstopmsftpsvc(停止FTP服务)

进入\Inetpub\adminscripts\目录

cscriptadsutil.vbssetmsftpsvc/disablesocketpoolingtrue(停止侦听)

netstartmsftpsvc(启动FTP服务)

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

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

(4)在ISA里面,使用SERVERPUBLISH的方法发布FTP服务,其中:IPaddressofinternalserver填写ISA的内部网卡的IP,IPaddressofexternalserver填写ISA的外部网卡的IP,Mappedserverprotocol选择FTPServer。

(5)然后在IPPacketFilter建立一条新RULES,Protocol->TCP,Direction->Outbound,LocalPort->Dymanic,RemotePort->All。
  
这是我的解决办法,但是并不完美,主要是:

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

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