Web
服务器发布完全攻略
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 站点还有不少棘手的问题,我们在后续文章中继续讨论。
本文详细介绍如何使用ISA服务器发布Web站点,包括发布单个站点和多个站点的具体步骤及注意事项。

被折叠的 条评论
为什么被折叠?



