探讨防火墙内核监听模式:ISA2006系列之十六

简介:
探讨防火墙内核监听
在前面的一系列博文中我们已经介绍了很多发布Web站点的内容,今天我们来发布一些其他的服务器,然后再来探讨一下发布这些服务器和发布Web站点有什么区别。我们先举两个例子,发布内网的DNS服务器和终端服务器,拓扑如下图所示,Perth是要发布的终端服务器服务器,Denver是要发布的DNS服务器。
 
首先我们来发布Perth上的终端服务器,在ISA服务器上右键点击防火墙策略,如下图所示,选择新建“非Web服务器协议发布规则”。
 
为发布规则取名为“发布Perth上的终端服务器”。
 
终端服务器PerthIP10.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,如下图所示,我们可以很清楚地看到防火墙内核正在监听338953等端口。这下我们明白了,端口监听不一定非要委托TCPUDP,防火墙内核也可以进行隐性的端口监听。
 
那接下来再考虑这个问题,如果ISA用防火墙内核监听3389端口,同时又委托TCP监听3389端口,那两者的优先级哪个高呢?从理论上分析,应该是防火墙内核优先级更高,因为解码后的物理层数据先要经过防火墙内核才能到达TCP。我们用实验证实一下,我们先停止ISA的防火墙服务,然后在ISA上打开远程桌面连接,如下图所示,最后再启动防火墙服务。
 
如下图所示,现在ISA服务器上TCP驱动程序和防火墙内核都在监听3389端口,它们谁的优先级更高呢?我们用Istanbul连接3389来测试一下,如果能连接到Perth的远程桌面,那说明是防火墙内核优先级高;如果访问被ISA拒绝,那说明是TCP优先级高,因为ISA不允许外网访问本机的远程桌面。
 
Istanbul上测试,结果如下图所示,Instanbul连接到了Perth,这证实了防火墙内核的优先级确实要比TCP驱动高。
 
总结:以后如果遇到ISA发布服务器的故障,一定不要忘了可以用fwengmon检查防火墙内核对端口的监听状况,防火墙内核的端口盗用非常隐蔽,引发的故障不易发现,大家要注意到这个环节的问题。






















本文转自yuelei51CTO博客,原文链接:http://blog.51cto.com/yuelei/89568 ,如需转载请自行联系原作者

相关文章
|
4月前
|
运维 网络协议 安全
小白带你学习linux的防火墙
小白带你学习linux的防火墙
149 1
|
6月前
|
安全 Linux 网络安全
Linux一些防火墙实战知识
本文介绍了如何在Linux中设置防火墙和开放端口,以提高服务器的安全性。首先,使用firewalld作为防火墙软件包,并确保firewalld服务正在运行。然后,通过添加服务来定义允许的服务端口,可以使用firewall-cmd命令查看当前已定义的服务,并使用firewall-cmd命令添加服务。添加规则后,需要重新加载firewalld配置以使更改生效。在某些情况下,需要打开特定的端口,例如HTTP端口80和HTTPS端口443。可以使用firewall-cmd命令打开端口,并将规则添加到相应的区域。。。确实都是工作中日常中会用到的一些命令
|
6月前
|
安全 Linux 网络安全
百度搜索:蓝易云【linux iptables安全技术与防火墙】
请注意,iptables的具体使用方法和配置选项可能会有所不同,取决于Linux发行版和版本。管理员应该参考相关文档和资源,以了解适用于其特定环境的最佳实践和配置方法。
467 0
百度搜索:蓝易云【linux iptables安全技术与防火墙】
|
6月前
|
开发框架 网络协议 Ubuntu
【Linux】配置网络和firewall防火墙(超详细介绍+实战)
【Linux】配置网络和firewall防火墙(超详细介绍+实战)
1317 0
|
1月前
|
存储 安全 网络协议
使用 firewall-cmd 管理 Linux 防火墙端口
本文将介绍如何使用 firewall-cmd 工具在 Linux 系统中进行简单端口管理,包括开放、查询、关闭等操作。通过实例展示相关命令的用法,希望能对大家有所帮助。
|
7天前
|
Linux 网络安全
linux如何关闭防火墙
记住,关闭防火墙可能会降低系统安全性,请在真正需要的情况下关闭,并确保你在网络环境中采取其他安全措施。
15 0
|
4月前
|
网络协议 Linux 网络安全
linux服务器防火墙的开启及关闭
linux服务器防火墙的开启及关闭
211 1