1.ISA下FTP的解决办法
有很多人对FTP的问题多多,大家参考、讨论一下。
我的环境:
SERVER:ISA SP1,IIS
CLIENT:Windows 2000 and XP, CuteFTP
主要讨论ISA和FTP在同一台机器上的处理办法。
FTP的特殊性:
大多数的TCP服务是使用单个的连接,一般是客户向服务器的一个周知端口发起连接,然后使用这个连接进行通讯。但是,FTP协议却有所不同,它使用双向的多个连接,而且使用的端口很难预计。一般,FTP连接包括:
一个控制连接(control connection)
这个连接用于传递客户端的命令和服务器端对命令的响应。它使用服务器的21端口,生存期是整个FTP会话时间。
几个数据连接(data connection)
这些连接用于传输文件和其它数据,例如:目录列表等。这种连接在需要数据传输时建立,而一旦数据传输完毕就关闭,每次使用的端口也不一定相同。而且,数据连接既可能是客户端发起的,也可能是服务器端发起的。
在FTP协议中,控制连接使用周知端口21,因此使用ISA的IP PACKET FILTER就可以这种连接进行很好的安全保护。相反,数据传输连接的目的端口通常实现无法知道,因此处理这样的端口转发非常困难。FTP协议使用一个标准的端口21作为ftp-data端口,但是这个端口只用于连接的源地址是服务器端的情况,在这个端口上根本就没有监听进程。FTP的数据连接和控制连接的方向一般是相反的,也就是说,是服务器向客户端发起一个用于数据传输的连接。连接的端口是由服务器端和客户端协商确定的。FTP协议的这个特征对ISA转发以及防火墙和NAT的配置增加了很多困难。
除此之外,还有另外一种FTP模式,叫做被动模式(passive mod)。在这种模式下,数据连接是由客户程序发起的,和刚才讨论过的模式(我们可以叫做主动模式)相反。是否采取被动模式取决于客户程序,在ftp命令行中使用passive命令就可以关闭/打开被动模式。
前面我们讲过,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本机对外部的访问。
我也把我的方法做了一下实验,使用serv-u做的,有一点错误,不过终归做了出来,下面总结一下:
PASV服务器放在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以上版本提供。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2.使用ISA Server 安全地发布多个Web 站点
这篇文章中的信息适用于:
Microsoft Windows 2000 SP2 Server
--------------------------------------------------------------------------------
概要
本分步指南介绍了 Internet Security and Acceleration (ISA) Server 2000 如何将多个 Web 站点发布到 Internet 上。本指南使用两台服务器,一个运行 Windows 2000 Server SP2 和 Microsoft Internet Information Services (IIS),另一个运行 Windows 2000 Server Service Pack 2 (SP2) 和 ISA Server。
对于要在 Internet 上查找 Web 站点的人们来说,站点名称必须与 ISA Server 计算机的外部网络适配器的公用 IP 地址相关联。ISP 或网络管理员可以帮助做到这一点。DNS 通常会有一个用于将 www.您的域名.com 指向 ISA Server 计算机的外部适配器的条目。
1. 发布 Web 站点
若要将 http://www.example.com/site1 的请求路由到 SERVER1,将 http://www.example.com/site2 的请求路由到 SERVER2,必须先为每个内部服务器创建目标集合。以后创建的 Web 发布规则会将这些 URL 链接到相应的内部服务器。
创建第一个目标集合
启动 ISA Server 管理控制台:单击开始,指向程序,指向 Microsoft ISA Server,然后单击 ISA Management(ISA 管理)。
展开左窗格中的"Servers(服务器)"文件夹,然后展开您的服务器文件夹。
右键单击 Destination Sets(目标集合),指向新建,然后单击 Set(集合)。
命名该集合(例如 Site 1),然后单击 Add(添加),将一个服务器添加到该集合中。
在 Destination(目标)框中,键入您通过 ISP 建立的站点名称(在本例中为 www.example.com)。
在 Path(路径)框中,键入 /site1/*。星号非常重要。
在接下来的对话框中都单击确定。
备注:重复这些步骤,创建名为 Site 2(第 6 步)的目标集合,路径为"/site2/*"(第 9 步)。
创建 Web 发布规则
Web 发布规则将请求定向到正确的服务器。请按照下列步骤创建第一个规则:
在左窗格中,展开"Publishing(发布)"文件夹。
右键单击 Web Publishing Rules(Web 发布规则),指向新建,然后单击 Rule(规则)。
将规则命名为 Site 1。
单击 Specified destination set(指定的目标集合),然后单击 Site 1。
单击 Any request(任何请求)。
单击 Redirect the request to this internal Web server (name or IP address)(将请求重定向到此内部 Web 服务器(名称或 IP 地址))。
单击 Browse(浏览),单击 SERVER1,然后单击完成。
备注:重复这些步骤,创建名为 Site 2(第 3 步)的规则,使用 Site 2 目标集合(第 4 步),重定向到 SERVER2(第 7 步)。
2. 缺陷
当人们连接到站点时,看不到您发布的服务器。
人们连接到站点时,可能会看到"正在建设中"页,或者什么也看不到。这很可能是因为 IIS 正在 ISA Server 计算机上运行。于是,对站点的请求被定向到 ISA Server 计算机上的 IIS。您应该将 IIS 从该 ISA Server 计算机卸载。ISA Server 计算机应该只运行 ISA Server,不应该运行其他服务。
您正尝试发布多个站点,但是它们都不能正确工作。
请确保您的目标集合和发布规则的配置正确无误。目标集合应该将您的 ISA Server 计算机的外部名称连同一个路径指定为目标,该路径与您想让用户在访问相应内部服务器时在其浏览器中键入的路径相匹配。Web 发布规则应该包括正确的目标集合,并且应该引用正确的内部服务器。返回去查看第 1 节中的示例,特别注意一下依存关系。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3.配置ISA使用PPPoE连接
SUMMARY
摘要
Some broadband (DSL, ADSL) Internet service providers (ISPs) require a special dial-up connection that uses Point-to-Point Protocol over Ethernet (PPPoE). This article describes how to configure Internet Security and Acceleration (ISA) Server to use this type of connection as the primary route to the internet. Please see your ISP's documentation for installation and configuration of the PPPoE software.
一些提供DSL和ADSL的宽带的ISP需要一个特殊的用于在Ethernet使用点对点协议(PPPoE)的拨号连接。这片文章描述了怎样配置ISA来使用这种类型的连接,参照ISP的文档和安装配置PPPoE的软件。
MORE INFORMATION
In this type of configuration, the ISA Server-based computer is configured with two network adapters (one on the internal network and one connected to the broadband modem) and a dial-up network adapter (the PPPoE adapter).
在这个配置的例子里面,基于ISA的服务器配置了两块网卡(一块连接着内网,一块连接着宽带猫)并且有一个拨号网络适配器(PPPoE 适配器)。
To properly configure ISA Server, add the dial-up entry, configure the Local Address Table (LAT), and then configure any routes to use the dial-up entry.
合理的配置ISA,添加拨号登陆,配置ISA中的LAT,然后配置所有的路由使用拨号登陆。
Part I: To Add the Dial-Up Entry to ISA Server
第一部分:在ISA上添加拨号登陆
Some PPPoE software (such as WinPoet) are represented by a dial up entry. To configure ISA to use this entry for internet access:
一些PPPoE软件(比如Winpoet)是支持拨号登陆的,使用这个互联网访问登陆来配置ISA。
1. In the ISA Management interface, expand Policy Elements.
在 ISA管理界面,展开Policy Elements。
2. Right-click Dial-up Entries, click New, and then click Dial-up Entry.
右键点击Dial-up Entries,点击New,再点击Dial-up Entry。
3. Type a name and description, click the PPPoE dial-up entry by clicking Select, and then specify the appropriate account information (user name and password for the PPPoE connection) by clicking Set Account.
输入描述的名字,点击PPPoE dial-up entry的Select,再点击Set Account指定适当的账号信息(使用PPPoE连接的用户名和密码)。
4. Click OK.
点击OK
Part II: To Construct the LAT
第二部分:创建LAT
When you construct the LAT, include only the network adapter that represents the internal local area network (LAN). The inclusion of the network adapter that is connected to the DSL modem does not prevent network access, but it does pose a security risk on the internal network.
当你创建LAT的时候,只包括内网范围的网卡,提供DSL猫连接的网卡不提供网络访问,但是他可能会导致内部网络的安全隐患。
Part III: To Configure Routing and Firewall/SecureNAT
第三部分:配置路由和防火墙/SecureNAT
The final step is to ensure that both Web and Firewall/Secure NAT clients are routed through the PPPoE connection.
最后的步骤是确认Web和Firewall/Secure NAT的客户端的路由经过PPPoE连接。
1. Right-click Network Configuration, click Properties.
右键点击Network Configuration,点击Properties.
2. Click to select Use Dial-up Entry check box.
点击选择Use Dial-up Entry 选框
3. Click OK.
点击OK
4. Expand Network Configuration.
展开Network Configuration.
5. Click Routing.
点击Routing
6. Right-click, and then click Properties of any routes that you have configured that require access through the PPPoE adapter.
右键,点击Properties,选择any routes that you have configured that require access through the PPPoE adapter.
7. On the Action tab, click to select the Use dial-up entry for primary route check box.
点击Action,点击选择Use dial-up entry for primary route选框
8. Click OK.
点击OK
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4.关于isa和icq2000的一点兼容性问题及解决方法
SUMMARY
This article discusses how to enable outgoing ICQ 2000b beta version traffic to pass through Microsoft Internet Security and Acceleration (ISA) Server.
简介:本文讨论如何让ICQ 2000b beta版的通信通过ISA服务器
MORE INFORMATION
You may be unable to have outbound network traffic pass through ISA Server when you use ICQ 2000b beta version for client-to-server connectivity, even if you have the ICQ protocol definition enabled for outbound access. Earlier versions of ICQ do not experience this problem.
更多的信息
当你使用ICQ 2000b beta版 作客户端-服务器的连接时,即使你在 "outbound access" 中打开了ICQ协议定义(protocol definition ), 你也可能无法让网络通信通过ISA服务器. 早期版本的ICQ没有此问题.
ICQ 2000b beta version uses Transmission Control Protocol (TCP) port 5190, which is the same port used in the protocol definition for AOL Instant Messenger.
ICQ 2000b beta版使用TCP 5190端口, 在协议定义(protocol definition )中此端口由AOL Instant Messenger使用.
If you add AOL Instant Messenger to the list of permitted protocols, you may be able to use ICQ 2000b beta version to connect to ISA Server.
如果你在许可协议列表中添加了AOL Instant Messenger,你将可以使用ICQ 2000b beta版连接至ISA服务器
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
5.ISA发布PCANYWHERE
1. 先在protocol definitions定义一下4条protocol
· PC-Anywhere-1 : 5631 - TCP - Inbound
· PC-Anywhere-2 : 5631 - UDP - Receive-Send
· PC-Anywhere-3 : 5632 - TCP- Inbound
· PC-Anywhere-4 : 5632 - UDP - Receive-Send
(记得在protocol rules ---定义的rule---protocol中应用这4条protocols。 已设定为all ip traffic的不用设定。)
2 在publishing中设置4条rules,分别对应刚才设定的4条protocol
(external ip 设定为isa 的外部ip,internal ip为 pcanywhere主机ip )
3 ok!就这么简单 (在isa/pcanywhere9.x测试通过)
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
6.exchange 2000 放在isa server后面该如何设置
1. 先安装好Exchange2K Server
2. 安装ISA Server,安装时要选择全部安装(因为需要用到其中的
Message Screener)
3. 打开Exchange System Manager---Server---你的Server--
Protocols---SMTP
右击Default SMTP Virtual Server,选择Properties.
选择General标签下的IP address---Advanced
在List中只保留内部的IP地址,其它的都要 Remove
4.打开Internet Security and Acceleration Server---Servers and Arrays---你的Server---Extensions---Application Filters.
右击SMTP Filter,选择Properties.
在General标签下, 确定已选中 Enable this filter。
6.做server-publishing rule,(记住这里不能使用Mail Server Security Wizard来做)
打开Server Publishing Rules--New---Rule
给这条rule起一个名,如'Exch Publishing',在Address Mapping设定中,IP address of internal server填上服务器的内部IP Address
External IP address on ISA Server填上服务器的外部IP Address
Protocol Settings中选择SMTP Server
Client Type中选择 Any Request
7.完成设置 (完成后最好重新启动一下服务器)