75 FreeBSD连载:防火墙技术( 二 )


一般来讲,由于代理服务器要针对一个请求启动一个代理服务连接,因此代理服务器效率不高,但是如果针对具体的服务应用,可以在代理服务器上配置大量的缓冲区,通过缓冲区可以提高其工作效率,提供更高的性能 。例如对于使用HTTP代理服务器时,代理服务器就能在缓冲区中查找到同样的数据,因而不必再次访问Internet,减少了对宝贵的Internet带宽的占用 。代理服务器不仅是一个防火墙技术,它还能用来提高访问Internet的效率 。
常用的代理服务器有http代理,ftp代理等,所有的代理服务能力都需要客户软件的支持,这也意味着当用户要使用代理功能的时候,需要设置客户软件,如浏览器,如果客户软件不支持代理功能,就无法使用代理服务器 。然而,为了减轻配置负担、利用代理服务器的缓冲能力,可以设置一种透明代理服务器,这种方式不需要设置客户软件,通过设置路由器,将本来发送到其他计算机的IP数据包,依据IP地址和端口转发到代理服务器中 。
网络地址翻译
在TCP/IP开始开发的时候,没有人会想象到它发展的如此之快 。当前使用的IPv4地址空间为32位大小,因而地址资源已经十分紧张了 。而下一代的IPv6还没有得到大家的认可 。FreeBSD虽然有支持IPv6的开发计划,正由于整个Internet上IPv6还没有实施,因此FreeBSD还没有将以开发的IPv6合并入正式发布的系统中去 。
为了解决地址紧张的问题,提出了网络地址翻译(Network Address Translation, NAT)的方法 。NAT能处理每个IP数据包,将其中的地址部分进行转换,将对内部和外部IP进行直接映射,从一批可使用的IP地址池中动态选择一个地址分配给内部地址,或者不但转换IP地址,也转换端口地址,从而使得多个内部地址能共享一个外部IP地址 。
动态分配外部IP地址的方法只能有限的解决IP地址紧张的问题,而让多个内部地址共享一个外部IP地址的方式能更有效的解决IP地址紧张的问题 。让多个内部IP地址共享一个外部IP地址,就必须转换端口地址,这样内部不同IP地址但具有同样端口地址的数据包就能转换为同一个IP地址而端口地址不同,这种方法又被称为端口地址转换(Port Address Translation, PAT),或者称为IP伪装(IP masquerading)
网络地址翻译也是一个重要的防火墙技术,因为它对外隐藏了内部的网络结构,外部攻击者无法确定内部计算机的连接状态 。并且不同的时候,内部计算机向外连接使用的地址都是不同的,给外部攻击造成了困难 。同样NAT也能通过定义各种映射规则,屏蔽外部的连接请求,并可以将连接请求映射到不同的计算机中 。
【75 FreeBSD连载:防火墙技术】网络地址翻译都和IP数据包过滤一起使用,就构成一种更复杂的包过滤型的防火墙 。仅仅具备包过滤能力的路由器,其防火墙能力还是比较弱,抵抗外部入侵的能力也较差,而和网络地址翻译技术相结合,就能起到更好的安全保证 。
主动监测技术
无论是包过滤,还是代理服务,都是根据管理员预定义好的规则提供服务或者限制某些访问 。然而在提供网络访问能力和防止网络安全方面,显然存在矛盾,只要允许访问某些网络服务,就有可能造成某种系统漏洞,然而如果限制太严厉,合法的网络访问就受到不必要的限制 。代理型的防火墙的限制就在这个方面,必须为一种网络服务分别提供一个代理程序,当网络上的新型服务出现的时候,就不可能立即提供这个服务的代理程序 。事实上代理服务器一般只能代理最常用的几种网络服务,可提供的网络访问十分有限 。
为了在开放网络服务的同时也提供安全保证,必须有一种方法能监测网络情况,当出现网络攻击时就立即告警或切断相关连接 。主动监测技术就是基于这种思路发展起来的,它维护一个记录各种攻击模式的数据库,并使用一个监测程序时刻运行在网络中进行监控,当一旦发现网络中存在与数据库中的某个模式相匹配时,就能推断可能出现网络攻击 。由于主动监测程序要监控整个网络的数据,因此需要运行在路由器上,或路由器旁能获得所有网络流量的位置 。由于监测程序会消耗大量内存,并会影响路由器的性能,因此最好不在路由器上运行 。

推荐阅读