探讨防火墙内核监听模式(十六)

探讨防火墙内核监听
在前面的一系列博文中我们已经介绍了很多发布 Web 站点的内容,今天我们来发布一些其他的服务器,然后再来探讨一下发布这些服务器和发布 Web 站点有什么区别。我们先举两个例子,发布内网 的 DNS 服务器和终端服务器,拓扑如下图所示, Perth 是要发布的终端服务器服务器, Denver 是要发布的 DNS 服务器。
 
首先我们来发布 Perth 上的终端服务器,在 ISA 服务器上右键点击防火墙策略,如下图所示,选择新建“非 Web 服务器协议发布规则”。
 
 
为发布规则取名为“发布 Perth 上的终端服务器”。
 
 
终端服务器 Perth IP 10.1.1 .6
 
 
选择使用的发布协议,注意,发布规则使用的协议 方向都是入站,而访问规则使用的协议方向都是出站
 
 
监听外网的访问请求。
 
 
完成服务器发布规则向导。
 
 
终端服务器发布规则生效之后,我们在外网客户机 Istanbul 上测试一下。在 Istanbul 上依次点击 开始-程序-附件-通讯-远程桌面连接,如下 图所示,填入 ISA 服务器外网 IP 作为要连接的远程桌面服务器。
 
 
出现远程桌面的连接界面,如下图所示,输入用户名和口令登录系统。
 
 
OK ,我们用远程桌面登录进入了 Perth ,发布终端服务器成功了!
 
 
这个实验很简单,我们再来尝试一下发布内网的 DNS 服务器,如下图所示,在 ISA 服务器上新建“非 Web 服务器协议发布规则”。
 
 
为发布规则取名为“发布 Denver 上的 DNS 服务器”。
 
 
填入 DNS 服务器地址 10.1.1 .5
 
 
这次使用的发布协议是 DNS 服务器。
 
 
监听外网的访问请求。
 
 
结束发布规则。
 
 
好了,我们还是在 Istanbul 上测试一下发布的效果,如下图所示, Istanbul 已经在 TCP/IP 的设置中将 DNS 服务器指向了 ISA 的外网网卡。
 
 
Istanbul 上测试一下 DNS 服务器的解析能力,如下图所示,域名解析成功, DNS 服务器的发布也没有问题。
 
 
好了,举了两个发布服务器的例子之后,我们要考虑一下为什么 ISA 要强调这些服务器是非 Web 服务器,发布 Web 服务器和发布非 Web 服务器有什么区别呢?区别就在于监听模式,发布 Web 服务器时 ISA 委托 TCP 监听端口,而发布非 Web 服务器时 ISA 采用防火墙内核监听端口。 例如刚才我们发布了终端服务器,那 ISA 的外网 IP 肯定要开放 3389 端口,否则外网用户无法访问终端服务器。我们 在 ISA 上检查一下端口监听状况,如下图所示,我们 用 NETSTAT –ANO | FIND  “3389” 来查看 3389 端口的监听状况。奇怪的事发生了, 3389 端口竟然没有进程监听,这是怎么一回事?外网访问者连接 3389 端口时为什么不报错呢?
 
 
其实, 3389 端口是有进程监听的,刚才我们说了,发布非 Web 服务器时由防火墙内核负责端口监听。由于防火墙内核工作在数据链路层和网卡驱动 之间,因此我们用 NETSTAT 命令查看不到防火墙内核对端口的监听状况。那怎么才能知道防火墙内核在监听哪些端口呢?我们可以使用 一个工具 fwengmon ,这个工具可以在微软网站下载,从文件名可以看出,这个工具可以监控防火墙内核引擎的工作。我们在 ISA 上允许 fwengmon /c ,如下图所示,我们可以很清楚地看到防火墙内核正在监听 3389 53 等端口 。这下我们明白了,端口监听不一定非要委托 TCP UDP ,防火墙内核也可以进行隐性的端口监听。
 
 
那接下来再考虑这个问题,如果 ISA 用防火墙内核监听 3389 端口,同时又委托 TCP 监听 3389 端口,那两者的优先级哪个高呢? 从理论上分析,应该是 防火墙内核优先级更高,因为解码后的物理层数据先要经过防火墙内核才能到达 TCP 。我们用实验证实一下,我们先停止 ISA 的防火墙服务,然后在 ISA 上打开远程桌面连接,如下图所示,最后再启动防火墙服务。
 
 
如下图所示,现在 ISA 服务器上 TCP 驱动程序和防火墙内核都在监听 3389 端口,它们谁的优先级更高呢?我们用 Istanbul 连接 3389 来测试一下,如果能连接到 Perth 的远程桌面,那说明是防火墙内核优先级高;如果访问被 ISA 拒绝,那说明是 TCP 优先级高,因为 ISA 不允许外网访问本机的远程桌面。
 
 
Istanbul 上测试,结果如下图所示, Instanbul 连接到了 Perth ,这证实了防火墙内核的优先级确实要比 TCP 驱动高。
 
 
总结:以后如果遇到 ISA 发布服务器的故障,一定不要忘了可以用 fwengmon 检查防火墙内核对端口的监听状况,防火墙内核的端口盗用非常隐蔽,引发的故障不易发现,大家要注意到这个环节的问题。

你可能感兴趣的:(模式,防火墙,监听,内核,探讨)