51CTO技术论坛_中国领先的IT技术社区's Archiver

sunny 发表于 2005-12-7 15:48

How to :使用域名发布多个Web站点

[i]内容概要:在这篇文章中介绍了如何利用ISA防火墙强大的应用层状态过滤,通过域名使用TCP 80端口发布多个Web站点,而不再需要使用其他端口。[/i]
 
如果你的内部网络中具有多个Web站点,而你又想同时发布到外部网络中,你该如何做呢?在过去的包过滤防火墙中,由于发布(端口映射)时需要占用端口,你只能使用TCP 80端口发布一个Web站点,而其他的Web站点只有通过更换外部侦听端口(如TCP 81)来发布。
在这篇文章中我们不是探讨如何通过上面的步骤去实现,那样做一点技术含量都没有。[b]利用ISA防火墙强大的应用层状态过滤,我们可以就使用TCP 80端口来发布我们所有的Web站点,而不再需要使用其他端口[/b]。
本文中的试验网络如下图所示:
[img]http://www.isacn.org/pic/publishMultiWeb/publishmultiweb.jpg[/img]

 
ISA防火墙作为边缘防火墙,连接内部和外部网络;内部网络Denver和Istanbul是Web服务器,分别拥有1个和2个Web站点。各计算机的TCP/IP设置如下(DNS服务器均设置为空):
[color=#ff0000][b]ISA防火墙[/b]:[/color]

External Interface:
IP:61.139.0.5/24
DG:61.139.0.9
Internal Interface:
IP:10.2.1.254/24
DG:None
 
[b]
[color=#006666]Denver(Web Server):[/color]
[/b]
IP:10.2.1.2/24
DG:10.2.1.254
1 Website :默认站点 (FQDN:[url]www.isacn.org[/url])
 
[b]
[color=#800080]Istanbul(Web Server):[/color]
[/b]
IP:10.2.1.8/24
DG:10.2.1.254
2 Website :默认站点 (FQDN:www2.isacn.org);
www3.isacn.org(FQDN:ww3.isacn.org);
 
[color=#ff9900][b]External_Client[/b]:[/color]

IP:61.139.0.9/24
DG:None
 
[b]在ISA防火墙中,利用强大的应用层状态过滤系统,可以让你按照域名进行Web服务器发布[/b]。在本文中,我们将发布Denver和Istanbul上的这三个Web站点,并且都使用标准的TCP 80端口进行发布。
在ISA防火墙中建立Web侦听器后,你可以在多个Web服务器发布规则中使用它;但是存在多条使用相同Web侦听器的发布规则时,ISA防火墙会根据规则的顺序进行评估,执行第一条匹配发布的域名(公共名称)的规则。
[color=#ff0000]所以在这种时候,你需要小心的对规则进行排序[/color]
。例如,你使用相同的Web侦听器发布了[url]www.isacn.org[/url]和所有域名,那么发布[url]www.isacn.org[/url]的规则必须放在发布所有域名的规则前面,否则永远都不会执行发布[url]www.isacn.org[/url]的Web服务器发布规则。
这儿需要注意一点的是,
[color=#ff0000]ISA防火墙默认情况下是不转发原始主机名头。这样如果被发布的Web服务器上具有多个站点,ISA防火墙总是会转发到默认站点上[/color]
;发布Istanbul上的www3.isacn.org就是这样的情况,所以我们在发布www3.isacn.org时需要转发主机名头;而其他两个站点都是默认站点,不需要再转发主机名头。
在这篇文章中,我们将按照以下步骤进行:
[color=#006699]建立Web侦听器;[/color]

[color=#006699]建立Web服务器发布规则;[/color]

[color=#006699]测试一;[/color]

[color=#006699]修改Web服务器发布规则后进行测试;[/color]


[b]
[color=#006699]建立Web侦听器[/color]
[/b]
在ISA防火墙中,所有的相关任务都是集成的,你可以在建立Web发布规则时创建Web侦听器。不过为了更好的进行说明,我先建立Web侦听器,然后再建立Web服务器发布规则。
在ISA防火墙管理控制台,点击[b]防火墙策略[/b],在右边[b]任务面板[/b]的[b]工具箱[/b]中,点击[b]网络对象[/b],然后点击[b]新建[/b],再点击[b]Web侦听器[/b];
[img]http://www.isacn.org/pic/publishMultiWeb/pubmultiweb01.jpg[/img]

在弹出的[b]欢迎使用新建Web侦听器向导[/b]页,输入Web侦听器的名字,在此我命名为[b]Listen External 80[/b],点击[b]下一步[/b];
[img]http://www.isacn.org/pic/publishMultiWeb/pubmultiweb02.jpg[/img]

在[b]IP地址[/b]页,勾选[b]外部[/b]网络,点击[b]下一步[/b];
[img]http://www.isacn.org/pic/publishMultiWeb/pubmultiweb03.jpg[/img]

在[b]端口指定[/b]页,接受默认的[b]80[/b]端口,点击[b]下一步[/b];
[img]http://www.isacn.org/pic/publishMultiWeb/pubmultiweb04.jpg[/img]

在[b]正在完成新建Web侦听器向导[/b]页,点击[b]完成[/b];此时Web侦听器就建立好了。

[b]
[color=#006699]建立Web服务器发布规则[/color]
[/b]
 
[b]1、发布[url]www.isacn.org[/url][/b]
 
我们先发布位于Denver上的默认站点[url]www.isacn.org[/url],右击[b]防火墙策略[/b],点击[b]新建[/b],选择[b]Web服务器发布规则[/b];
在弹出的[b]欢迎使用新建Web发布规则向导[/b]页,输入规则名称,在此我命名为[b]Publish [url]www.isacn.org[/url][/b],点击[b]下一步[/b];
在[b]规则操作[/b]页,选择[b]允许[/b],然后点击[b]下一步[/b];
在[b]请定义要发布的网站[/b]页,输入Denver的IP地址[b]10.2.1.2[/b],点击[b]下一步[/b];
[img]http://www.isacn.org/pic/publishMultiWeb/pubmultiweb09.jpg[/img]

在[b]公共名称细节[/b]页,在[b]接受请求[/b]栏选择[b]此域名(在以下输入)[/b],然后在下面的[b]公共名称[/b]栏输入[b]www.isacn.org[/b],点击[b]下一步[/b];
[img]http://www.isacn.org/pic/publishMultiWeb/pubmultiweb10.jpg[/img]

在[b]选择Web侦听器[/b]页,选择刚才我们建立的[b]Listen External 80[/b],点击[b]下一步[/b];
[img]http://www.isacn.org/pic/publishMultiWeb/pubmultiweb11.jpg[/img]

在[b]用户集[/b]页,接受默认的[b]所有用户[/b],点击[b]下一步[/b];
在[b]正在完成新建Web发布规则向导[/b]页,点击[b]完成[/b];
此时发布[url]www.isacn.org[/url]的Web服务器发布规则就建立好了。
 
 
[b]2、发布www2.isacn.org[/b]
 
再次右击[b]防火墙策略[/b],点击[b]新建[/b],选择[b]Web服务器发布规则[/b];
在弹出的[b]欢迎使用新建Web发布规则向导[/b]页,输入规则名称,在此我命名为[b]Publish www2.isacn.org[/b],点击[b]下一步[/b];
在[b]规则操作[/b]页,选择[b]允许[/b],然后点击[b]下一步[/b];
在[b]请定义要发布的网站[/b]页,输入Istanbul的IP地址[b]10.2.1.8[/b],点击[b]下一步[/b];
[img]http://www.isacn.org/pic/publishMultiWeb/pubmultiweb16.jpg[/img]

在[b]公共名称细节[/b]页,在[b]接受请求[/b]栏选择[b]此域名(在以下输入)[/b],然后在下面的[b]公共名称[/b]栏输入[b]www2.isacn.org[/b],点击[b]下一步[/b];
[img]http://www.isacn.org/pic/publishMultiWeb/pubmultiweb17.jpg[/img]

在[b]选择Web侦听器[/b]页,同样选择刚才我们建立的[b]Listen External 80[/b],点击[b]下一步[/b];
在[b]用户集[/b]页,接受默认的[b]所有用户[/b],点击[b]下一步[/b];
在[b]正在完成新建Web发布规则向导[/b]页,点击[b]完成[/b];
此时发布www2.isacn.org的Web服务器发布规则就建立好了。

[b]3、发布www3.isacn.org[/b]
最后一个Web服务器发布规则我们通过更为简单的办法来实现。
右击才建立好的Web服务器发布规则[b]Publish www2.isacn.org[/b],点击[b]复制[/b];
[img]http://www.isacn.org/pic/publishMultiWeb/pubmultiweb21.jpg[/img]

再斡一?B>Publish www2.isacn.org[/b],然后点击[b]粘贴[/b],
[img]http://www.isacn.org/pic/publishMultiWeb/pubmultiweb22.jpg[/img]

双击粘贴出来的Web服务器发布规则[b]Publish www2.isacn.org(1)[/b],弹出规则属性对话框。我们首先将规则名称修改为[b]Publish www3.isacn.org[/b];
[img]http://www.isacn.org/pic/publishMultiWeb/pubmultiweb23.jpg[/img]

然后在[b]公共名称[/b]标签,将应用到的公共名称从[b]www2.isacn.org[/b]修改为[b]www3.isacn.org[/b];
[img]http://www.isacn.org/pic/publishMultiWeb/pubmultiweb24.jpg[/img]

最后[b]到[/b]标签,勾选[b]转发初始主机头[/b]。这样ISA防火墙在转发客户的访问请求时,会将客户发送的原始主机名头转发给发布的Web服务器;
[color=#ff0000]如果发布的Web站点不是Web服务器上的默认站点,必须勾选[/color]

[img]http://www.isacn.org/pic/publishMultiWeb/pubmultiweb25.jpg[/img]

最后点击[b]确定[/b],此时所有的Web服务器发布规则都建立好了,点击[b]应用[/b]按钮保存修改和更新防火墙策略。
完成后的防火墙策略如下图所示:
[img]http://www.isacn.org/pic/publishMultiWeb/pubmultiweb26.jpg[/img]


[b]
[color=#006699]测试一[/color]
[/b]
现在我们在外部的External_Client上进行测试,我们已经在它的Hosts文件中建立好了名字解析项,
[img]http://www.isacn.org/pic/publishMultiWeb/pubmultiweb27.jpg[/img]

 
我们分别访问[url]www.isacn.org[/url]、www2.isacn.org、www3.isacn.org和ISA防火墙的外部IP地址61.139.0.5,结果如下图所示:
[img]http://www.isacn.org/pic/publishMultiWeb/pubmultiweb28.jpg[/img]

对于三个Web站点的访问均成功;当直接使用IP地址访问时,由于建立的三条Web服务器发布规则都限定了对应的域名,没有匹配的Web服务器发布规则,所以ISA拒绝了客户的访问请求。

[b]
[color=#006699]修改Web服务器发布规则后进行测试[/color]
[/b]
现在我们通过复制[b]Publish www3.isacn.org[/b]这条规则再进行粘贴的办法新建一条发布所有域名的名为[b]Publish ALL[/b]的Web服务器发布规则,
[img]http://www.isacn.org/pic/publishMultiWeb/pubmultiweb29.jpg[/img]

[b]Publish ALL[/b]应用到[b]所有请求[/b](所有域名);
[img]http://www.isacn.org/pic/publishMultiWeb/pubmultiweb30.jpg[/img]

现在我们在External_Client上进行测试,我们访问发布的三个站点和ISA防火墙的外部IP地址,结果却如下图所示,Why?
[img]http://www.isacn.org/pic/publishMultiWeb/pubmultiweb31.jpg[/img]

这是由于[b]Publish ALL[/b]这条Web服务器发布规则发布所有域名,无论客户连接任何域名(包括直接使用IP地址进行访问)都可以匹配。ISA防火墙从上到下评估规则时,发现客户连接请求匹配位于第一的[b]Publish ALL[/b],于是执行[b]Publish ALL[/b],根据规则的定义转发到了Istanbul(10.2.1.8)上。只有在客户访问www3.isacn.org时Istanbul将客户的连接请求转向到了www3.isacn.org站点,其他时候均转向到了默认站点www2.isacn.org。
 
我们对发布规则进行调整,将[b]Publish [url]www.isacn.org[/url][/b]这条规则上移到第一,如下图所示:
[img]http://www.isacn.org/pic/publishMultiWeb/pubmultiweb32.jpg[/img]

现在我们继续在External_Client上进行测试,访问发布的三个站点和ISA防火墙的外部IP地址,结果如下图所示,Why?
[img]http://www.isacn.org/pic/publishMultiWeb/pubmultiweb33.jpg[/img]

当客户访问[url]www.isacn.org[/url],ISA评估第一条Web服务器发布规则[b]Publish [url]www.isacn.org[/url][/b]时发现匹配客户请求,于是按照规则定义执行,将客户连接转发到Denver上,访问成功;而访问其他域名和ISA防火墙外部IP地址时,均通过Publish ALL转发到了Istanbul上。
 
在这个试验中,是两台Web服务器。如果你是一台服务器上具有多个Web站点,你甚至可以只建立一条发布所有域名的Web服务器发布规则,然后[b]勾选转发原始主机名头[/b],这样就可以实现这台服务器上所有Web站点的发布。

cdhhw 发表于 2006-4-24 21:31

这个是转帖的

石头 发表于 2006-6-28 23:33

风间子的

yesky521 发表于 2006-6-29 05:37

学习。。

deshen_feng 发表于 2007-4-25 17:57

好多图片为什么看不过呢?遗感!!!

mengrui 发表于 2007-6-24 22:44

学习学习啊!谢了

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.