ISA2006最常用的三大功能是访问控制,服务器发布和VPN。访问控制我们在之前的博文中已经谈了不少,今天我们来讨论一下服务器发布。ISA把服务器发布分为Web服务器发布和非Web服务器发布,Web服务器发布又可以细分为安全Web站点发布和Web站点发布,今天我们讨论的是Web站点发布,也就是不使用证书的Web服务器发布。本文将介绍发布Web站点常用的一些技巧以及注意事项,希望能对大家有所帮助。
服务器发布简单地说就是把内网或DMZ的服务器发布到ISA的外网网卡上,让外网用户通过ISA的外网IP就能访问到被发布的服务器。但为什么需要用发布规则呢?为什么不能用访问内规则呢?创建一条访问规则允许外网访问内网被发布的服务器岂不是很简单,而且有些朋友还真就这么做过。俺来解释一下这个问题,什么时候该用访问规则,什么时候该用发布规则取决于源网络和目标网络的网络规则(请参考[url]http://yuelei.blog.51cto.com/202879/84995[/url])。如果源网络和目标网络间的网络规则允许访问,那我们就应该使用访问规则;如果源网络和目标网络间的网络规则不允许访问,那我们就应该使用发布规则。举个例子,内网到外网的网络关系是NAT,网络规则允许从内网到外网单向访问。如果内网访问外网的服务器,我们应该用访问规则;但如果外网要访问内网的服务器,就只能通过发布规则了。
访问规则和发布规则还有一个地方有区别,访问规则使用的协议,方向都是出站;而发布规则使用的协议,方向都是入站。
介绍了一些发布规则的理论,接下来就通过几个实验来介绍如何发布Web服务器。实验拓扑如下图所示,Denver和Perth是内网的Web服务器,Istanbul是外网的测试计算机,Denver同时也是内网的DNS服务器,我们在内网部署了域环境,实际上域并非实验必须,在工作组环境下也是完全可以的。
一 发布单个Web站点
先处理一种最简单的发布场景,我们把内网的一个Web站点发布出来即可。我们要发布的目标是Denver上的默认Web站点,Denver的域名为Denver.contoso.com,现在我们来看看应该如何操作。
在ISA服务器上以此点击 开始-程序-Microsoft ISA Server-ISA服务器管理,右键点击防火墙策略,如下图所示,选择新建“网站发布规则”。
为新建的发布规则取名为“发布内网的Denver.contsoo.com”。
当访问请求符合规则要求时,ISA允许访问请求。
选择“发布单个网站或负载平衡器”。
由于此次发布没有使用证书,因此我们选择使用不安全的连接发布Web站点。
内部被发布的站点是Denver.contoso.com,如果担心ISA解析Denver.contoso.com有问题,可以输入Denver的IP地址10.1.1.5。
我们选择发布路径为 /*,/*代表根目录,意思是要把Denver网站的所有内容都发布出来。
接下来要设置被发布站点的公共名称,也就是外网访问被发布站点时应采用哪种形式。如下图所示,如果我们在接受请求中选择“任何域名”,那意味着外网的访问者可以不限定访问域名,只要访问者使用的域名能解析为ISA的外网IP就可以,甚至可以直接用IP访问。
接下来我们要使用侦听器来监听ISA的80端口,安装ISA时要求不能有进程监听80端口,就是为了避免和ISA的Web侦听器冲突。由于当前没有可用的侦听器,我们点击“新建”,准备创建一个侦听器。
出现新建侦听器向导,我们为侦听器取名为“Listen 80”。
此次发布没有使用证书,不需要于客户端建立SSL安全连接。
让侦听器监听外部网络,也就是说侦听器将监听192.168.1.254的80端口。
侦听器不需要对用户进行身份验证,我们选择“没有身份验证”。
这次发布不需要单一登录设置。
点击完成结束创建侦听器。
回到创建发布规则向导,选择使用刚刚创建的侦听器“Listen 80”。
不要求客户端进行身份验证。
此发布规则适用于所有用户。
点击完成结束发布向导的创建。
等发布规则生效后,我们在外网客户机Istanbul上测试一下发布效果。首先我们用IP直接访问,如下图所示,我们在浏览器中输入192.168.1.254,结果如下图所示,发布成功!
再用域名访问,为简单起见,我们在外网没有部署DNS,域名解析用hosts文件完成,hosts文件在\windows\system32\drivers\etc目录下,内容如下图所示。在真正的生产环境下,自然会有公网的DNS服务器帮助解析。
有了Hosts文件帮助解析,在Istanbul上用IE访问denver.contoso.com,结果如下图所示,也成功了!
由此可见,如果用ISA发布单个站点,还是一件相当容易的事情。
二 发布多个Web站点
现在我们要加点难度了,这次的发布任务是发布多个站点,内网的Denver和Perth上都有Web站点需要发布。我们该如何处理呢?解决思路有两个,一是创建两个侦听器,分别监听ISA外网IP的不同端口。然后创建两个发布规则,一个发布Denver,另一个发布Perth,两个发布规则中分别调用两个侦听器;二是只用一个侦听器,创建两个发布规则分别发布Denver和Perth,两个发布规则依靠ISA的Web过滤能力进行区分。
考虑到如果创建两个侦听器,那外网用户访问其中一个网站时肯定要用到非标准的80端口,这并非一个好的选择,因此我们倾向于采用第二种方法。那现在我们就面临一个问题,当外网用户访问ISA外网IP的80端口时,我们怎么能区分出访问者是要访问Denver还是Perth呢?我们可以利用发布网站的公共名称来加以区分,例如我们可以规定Denver网站的公共名称是Denver.contoso.com,Perth网站的公共名称是Perth.contoso.com,这样根据外网用户访问域名的不同,我们就可以区分出外网用户访问的目标网站到底是谁。
我们看看具体该如何去做,首先我们要为Perth网站创建一条发布规则,考虑到这条发布规则和发布Denver的规则有类似之处,我们就使用简单些的办法,将Denver的发布规则复制过来,然后稍加修改即可。如下图所示,在右键单击Denver的发布规则,选择“复制”。
在Denver的发布规则上中单击右键,选择“粘贴”,即可复制Denver的发布规则,如下图所示,就是复制发布规则后的场景。
接下来我们要修改复制的发布规则,让它能够用于发布Perth站点。编辑“发布内网的Denver.contoso.com(1)”,如下图所示,切换到常规标签,将发布规则名称改为“发布内网的Perth.contoso.com”。
切换至发布规则的“到”标签,将发布的站点改为“perth.contoso.com”。
切换到发布规则的“公共名称”标签处,选择此规则应用到“以下网站的请求”,如下图所示,点击“添加”按钮,在公共名称对话框中输入perth.contoso.com。这样以后访问者必须用域名perth.contoso.com访问,才能和这条发布规则匹配。
这样Perth的发布规则就修改完成了,接下来对Denver的发布规则也要进行修改,我们对Denver的发布规则只修改公共名称一项。原先的公共名称是允许“任何请求”,这样的公共名称可以匹配任何访问请求,外网用户无论是访问Perth还是Denver都能和这条规则匹配上,这样一来其他的Web站点发布规则就等于无用了。因此我们要把Denver发布规则的公共名称改为Denver.contsoo.com,如下图所示。
修改后的发布规则如下图所示。
好了,万事俱备,只欠测试了,我们在Istanbul上开始测试,首先用IE访问Perth,如下图所示,访问成功了。
再来访问Denver,如下图所示,也成功了!
有的朋友可能会想,如果Istanbul用IP访问,会访问到哪个内网的网站呢?看看下图的访问结果,大家很可能会大吃一惊,为什么用IP访问会被ISA拒绝呢?因为目前两个发布规则的公共名称没有一个能和192.168.1.254匹配,因此ISA认为Istanbul的访问请求无法匹配任何一条发布规则,只能用默认规则进行拒绝。
如果我们希望用IP访问能够访问到Denver,那就修改Denver的发布规则,在发布规则的公共名称加上一条IP地址,如下图所示。
这次再用IP访问,由于IP地址可以和Denver发布规则中的公共名称匹配上,因此顺理成章地访问到了Denver,如下图所示。
总结:由此可见,ISA可以根据发布规则的公共名称对外网的访问请求进行Web过滤,功能远远强于一般路由器的端口映射发布单个站点非常简单。从实验过程来看,发布单个站点非常简单,发布多个网站只要注意用公共名称区分发布规则,其实也不难。但发布Web站点还有不少棘手的问题,我们在后续文章中继续讨论。
来自于23.227.193.227美国伊利诺斯芝加哥网友评分!
来自于42.119.148.32越南胡志明市网友评分!
来自于85.237.206.197英国英格兰伦敦网友评分!
来自于60.246.51.76澳门特别行政区网友评分!
来自于43.249.50.166印度网友评分!
来自于106.113.13.179河北省石家庄市 电信网友评分!
来自于101.94.224.43上海市上海市 电信网友评分!
来自于124.126.3.110北京市北京市 电信网友评分!
来自于106.87.116.73重庆市重庆市 电信网友评分!
来自于49.157.47.254菲律宾网友评分!
来自于183.200.16.191山西省太原市 移动网友评分!
来自于111.58.68.171广西壮族自治区贵港市 移动网友评分!
来自于94.66.59.128希腊网友评分!
来自于94.66.59.128希腊网友评分!
来自于103.151.173.102亚太地区网友评分!
来自于39.109.191.32新加坡网友评分!
来自于106.87.116.73重庆市重庆市 电信网友评分!
来自于106.87.116.73重庆市重庆市 电信网友评分!
来自于153.3.60.41江苏省南京市 联通网友评分!
来自于3.112.41.223日本东京网友评分!
来自于104.251.178.50美国德克萨斯达拉斯网友评分!
来自于104.251.178.50美国德克萨斯达拉斯网友评分!
来自于111.55.11.245中国 移动网友评分!
来自于103.205.179.169巴基斯坦网友评分!
来自于183.200.16.191山西省太原市 移动网友评分!
来自于183.200.16.191山西省太原市 移动网友评分!
来自于176.97.73.32英国网友评分!
来自于46.232.121.89俄罗斯莫斯科网友评分!
来自于114.45.39.108台湾省台北市网友评分!
来自于164.155.132.208南非网友评分!