概述
有人能够告诉我为什么需要一个商业性的防火墙产品,而不仅仅是使用IPchains 来限制某些数据包和信息资料?那么,在使用时IPchains时我会失去什么呢?是安全性,还是日志登录功能?
现在,请恕我直言,在这个问题上毫无疑问的是IPchains已经相当好了,而且从功能和支持范围(support)上来讲,绝大部分时间里甚至比那些商业性防火墙更好用。而且相对于使用商业解决方案,使用IPchains会让你更加清楚防火墙对网络产生的影响。现在,许多公司会告诉他们的股东,诸如CEO/CTO等等,他们有著名的安全软件公司做支持。防火墙实际上什么都不做,只是让网络中所有信息都顺利通过而已。而且如果使用商业性产品,公司将会感到比使用那些稍有不慎就出麻烦的软件更加容易方便。
最后一点,如果网络被攻破,许多公司都想能够恢复到原状,并从防火墙厂商那里获得一定的赔偿,他们也不管是否确实能从厂商那里得到什么。对于开源解决方案(Open Source Solution),他们所做的比较典型的方法就是只是解雇实施这个方案的人。至少对一些基于Linux的商业性防火墙是这样的。因此就有这种可能,IPchains对于你是足够安全的,而对那些需要与大量股本和债券打交道的人就不是。(在准备为一个价格昂贵的防火墙花费大笔开销之前,做一个性价比分析,并问一些关心的问题是我们推荐的做法,否则,你可能反而会被一些不如IPchains的产品搞得焦头烂额)。现在,只有很少的NT防火墙性能跟IPchains差不多,而且总的来说,对NT防火墙一致的意见是在系统bug上,而NT的系统bug是“NT远非一个真正安全的系统”。
网络防火墙安全策略
一个组织的全局性安全策略必须根据安全分析和业务需求分析来决定。因为防火墙只与网络安全有关,所以只有在正确定义了全局安全策略的情况下,防火墙才具有一定的价值。网络防火墙安全策略是指要明确定义那些允许使用或禁止使用的网络服务,以及这些服务的使用规定和规定中的一些特殊情况。而且,网络防火墙安全策略中的每一条规定都应该在实际应用时得到实现。总的来说,一个防火墙应该使用以下方法之一。
每一个没有明确允许的都被拒绝
这种方法堵塞了两个网络之间的所有流量,除了那些被明确允许的服务和应用程序(application)。因此,每一个想保留的服务和应用程序都应该挨个实现,而任何一个可能成为防火墙漏洞的服务和应用程序都不能允许使用。刚才所说的是一个最安全的方法,那就是除非是系统管理员明确允许使用的服务和应用程序,否则都必须拒绝。另一方面,从用户的角度来看,这样可能会限制更多,不是非常方便。在本书中,我们在防火墙配置中会使用这种方法。
每一个没有明确拒绝的都允许
这种方法允许两个网络之间所有流量,除非那些被明确禁止的服务和应用程序。因此,每一个不信任或有潜在危害的服务和应用程序都应该逐个拒绝。但是,虽然这对用户是一个灵活和方便的方法,它却可能引起一些严重的安全问题。
包过滤
包过滤是一种内置于Linux 核心的防火墙类型。过滤型防火墙工作在网络层。数据只有在防火墙规定允许的情况下才能发出去,而到达的包要则根据它们的类型,源地址,目的地址和每个包中包含的端口信息进行过滤。
在绝大部分时间里,包过滤的工作是由一个能根据过滤规定转发数据包的路由器完成的。当一个数据包到达一个能进行包过滤的路由器时,这个路由器从该数据包的包头中解读某些信息,然后根据过滤规定决定数据包是通过还是被丢弃。
下面是能从包头中解读的信息:
源IP地址
目的IP地址
TCP/UDP源端口
TCP/UDP目的端口
ICMP消息类型