ISA下FTP的解决办法(2)

前面我们讲过,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本机对外部的访问。

时间: 2024-10-15 05:13:09

ISA下FTP的解决办法(2)的相关文章

ISA下FTP的解决办法

有很多人对FTP的问题多多,大家参考.讨论一下.我的环境如下: SERVER:ISA SP1,IIS CLIENT:Windows 2000 and XP, CuteFTP 本文主要讨论ISA和FTP在同一台机器上的处理办法. 大多数的TCP服务是使用单个的连接,一般是客户向服务器的一个周知端口发起连接,然后使用这个连接进行通讯.但是,FTP协议却有所不同,它使用双向的多个连接,而且使用的端口很难预计.一般,FTP连接包括: 一个控制连接(control connection) 这个连接用于传递

ISA下FTP的解决办法(1)

有很多人对FTP的问题多多,大家参考.讨论一下.我的环境如下: SERVER:ISASP1,IIS CLIENT:Windows2000andXP,CuteFTP 本文主要讨论ISA和FTP在同一台机器上的处理办法. 大多数的TCP服务是使用单个的连接,一般是客户向服务器的一个周知端口发起连接,然后使用这个连接进行通讯.但是,FTP协议却有所不同,它使用双向的多个连接,而且使用的端口很难预计.一般,FTP连接包括: 一个控制连接(controlconnection) 这个连接用于传递客户端的命令

ISA下FTP的解决办法(4)

解决了这两个问题,剩下的工作就简单了. 从以上内容也可以说明一点,从内网不能发布IIS的FTP服务器,因为IIS既没有选项可以选择PASV端口的范围,也没有办法让其返回ISA外网的地址.而serv-u这两条都可以满足.当然,在微软的网站上也可能有方法解决IIS的这两个问题. 发布FTP服务器的时候,要注意FTP服务器有PORT和PASV两种模式.两者的共同点,是都使用21端口进行用户验证及管理,差别在于传送数据的方式不同,PORT模式的FTP服务器数据端口固定在20,而PASV模式则在1025-

ISA下FTP的解决办法(3)

解决 我也把我的方法做了一下实验,使用serv-u做的,有一点错误,不过终归做了出来,下面总结一下: PASV服务器放在ISA后面,其实就是要解决两个问题: 1.PASV的端口.我上面的方法提出使用secondary connection,但事实证明不对,应该每个PASV端口都建立一条primary connection,然后分别建立server publishing rules,有多少个PASV端口,就要建立多少条.这里还可以引出另一个话题,就是对Web publishing rules的运用

isa下ftp配置

有很多人对FTP的问题多多,大家参考.讨论一下.我的环境如下: SERVER:ISA SP1,IISCLIENT:Windows 2000 and XP, CuteFTP 本文主要讨论ISA和FTP在同一台机器上的处理办法. 大多数的TCP服务是使用单个的连接,一般是客户向服务器的一个周知端口发起连接,然后使用这个连接进行通讯.但是,FTP协议却有所不同,它使用双向的多个连接,而且使用的端口很难预计.一般,FTP连接包括: 一个控制连接(control connection) 这个连接用于传递客

Vmware Workstation 在Ubuntu12.04下无法运行解决办法

自从把Ubuntu升级到12.04后,Vmware Workstation就不能使用了,因为升级了内核,Vmware需要更新内核模块,但是每次都会失败.以为Vmware升级后能解决问题,重新下了8.0.3的Vmware问题依旧存在,总是在更新内核模块的时候提示虚拟网络设备失败(This fails on Virtual Network Device),最后在网上搜了,有些方法很复杂,最后在这里找到了解决办法,从这里下载老外做好的补丁,针对8.0.2的. 先安装好  代码如下 复制代码 VMwar

php curl获取网页内容(IPV6下超时)的解决办法

如果开启了IPv6,curl默认会优先解析 IPv6,在对应域名没有 IPv6 的情况下,会等待 IPv6 dns解析失败 timeout 之后才按以前的正常流程去找 IPv4   原因:在程序中我对curl获取内容都作了较为严格的超时限制,所以就会造成无法获取内容的问题. 解决方法:设置默认访问为ipv4.php的curl设置方法如下: 复制代码 代码如下: <?php /** * IPV6下curl超时问题 */ $ch = curl_init(); curl_setopt ($ch, CU

serv_u要关闭被动模式(PASV),使用PORT模式才能连接FTP的解决办法_FTP服务器

问题表现: 使用 flashfxp 或传东西时必须要关闭被动模式,否则无法连接,连接FTP时客户端总是提示:"PORT 模式成功, 请更新你的站点配置文件"! 原因分析: 防火墙或者serv-u没有开放被动模式(PASV)的端口) 解决方法一:(只使用Port模式连接) 如图设置: 解决方法二:(可使用 PASV 和 Port 两种模式连接) 服务器如果启用了防火墙,需要在防火墙上打开一些端口给FTP的PASV模式使用,否则使用PASV模式无法登录. 一.在 Serv-U的本地服务器

WordPress后台更新提示输入FTP信息解决办法

最后转换了一下思路,搜索WordPress后台的提示,找到解决方法. 我安装的是WDCP一键包,所有网站都放在了Web目录下,执行以下命令后问题就解决了:  代码如下 复制代码 chown -R www /www/web 也就是修改了Web目录及其以下所有目录文件的授权组. 对于没有SSH权限的用户,另外还有一个解决方法: 在wp-config.php文件中添加以下代码行:  代码如下 复制代码 define("FS_METHOD","direct"); defin