可陈述的基于包过滤的防火墙
可陈述的包过滤建立在包过滤概念之上并对它进行了发展。由于建立在该模型之上的防火墙对内部状态表中的会话和连接进行跟踪,因此它能做出相应的反应。因此,可陈述的基于包过滤的防火墙比它们普通的包过滤同伙更灵活。而且,大部分可陈述的基于包过滤的防火墙被设计为能防御某些类型的Dos攻击,并增加了对基于SMTP的邮件的保护和其他特殊安全功能的分类。
Checkpoint公司发明了被称为“状态检测”(SI)的技术,它使可陈述的包过滤又高一等。SI使得管理员能创建防火墙规则来测试真实的数据有效负载,而不只是地址和端口。
注意 由于可陈述的包过滤防火墙对会话状态进行跟踪,因此,默认情况下它们关闭1024以上的端口,只打开需要的高端口。配置起来与听起来一样简单,这就是大多数管理员认为可东述的包过滤将是他们为实现防火墙解决方案的极限技术。
基于代理的防火墙
另一种类型的防火墙是基于代理的防火墙(有时也被称为应用网关或应用代理)。当远端用户与运行着基于代理的防火墙的网络进行连接时,防火墙就做该连接的代理。使用这种技术,IP包不再被直接转发给内部网络。相反,出现了一种类型转换,防火墙起着管道和解释的作用。
你也许会问它也可陈述的包过滤和普通的包过滤有什么区别?非常好的问题——许多人都这么问。包过滤和可陈述的包过滤处理在网络和会话级上检测出入包(参考第4章)。它们检测IP源地址和目的地址以及端口和状态标记,并把它们与它们的规则集和表信息进行比较,然后再决定是否对该包进行转发。相反,基于代理的防火墙在应用级而不是较低级上检测通信。包进入防火墙后被交给特殊的应用代理,它检测该包的有效性和自身的应用级请求。例如,如果一个Web请求(HTTP)进入了基于代理的防火墙,含有HTTP请求的数据有效负载将被交给HTTP代理进程。一个FTP请求将被交给FTP代理进程,Telnet将为telnet代理进程等等。
由于防火墙本身能理解应用协议(HTTP、FTP、SMTP、POP等等),因此这种协议对协议的方法的概念比可陈述的或普通的包过滤更安全。对入侵者来说,偷偷地携带除端口和IP地址之外的被注视的东西更加困难。但是,要注意我是使用单词“概念”来说明它更安全。实际情况是,在实际应用中这种方法有平均分配的问题。
基于代理的防火墙一直比可陈述的包过滤防火墙慢。现在,对大部分网络(10Mbps或更低)来说,这种不同没有实际意义。但是,对负载较重的网络(45mbps的T3、高达100mbpS的复合T3等等)来说,这就会产生较大的问题。随着技术的改进,差距可能会消失,但是就目前来说,纯基于代理的技术的应用对高容量网络来说仍是一个关注点。
注意 Network associates 正在研制一种位于代理和可陈述的包过滤之间的技术,该技术被称为“改装的代理技术”。虽然它的轰动程度还有待知道,但你可以在http://www.nai.com/asp-set/buy-try/try/whitepapers.asp处读到它的全部内容。
除了性能问题,基于代理的防火墙还有适应性问题。例如,假设开发了一个用来管理你家中的咖啡壶的新协议。出于例子需要,我们把协议称为过滤控制系统(Percolation control system)或缩写为PCS。现在,我们假设PCS使用TCP协议运行在端口666上。可陈述的基于包过滤的防火墙管理员只需要防火墙上加入一条允许在端口666上进行TCP协议通信的规则,它是个完成的协议。但是,基于代理的防火墙管理员会有新问题:他们没有用于PCS的代理。它是个全新的协议。虽然一些基于代理的防火墙(如NAI公司的Gauntlet)为这和种问题提供了一个通用代理,现在欠返回到基本包过滤,它使使用代理的目的失败了。
但是,进一步使用该例子,我们假设基于代理的防火墙供应商最后写出了PCS代理,并且在Coffeeville中一切都好。不久,一些调皮的helpdesk承包者复活了DOOM网络的老副本,它也运行在端口666上,并且他们尝试滥用一种嗜好。虽然DOOM网络不能使它通过基于代理的防火墙,但是它们让它通过可陈述的基于包过滤的防火墙。
我们将在后面进述如何有针对性的来使用它,但从理论的观点看是有足够的理由认为基于代理的防火墙是比较安全的——虽然在实际用中存在使用这种防火墙需要付出相当代价的矛盾。
防火墙的缺陷
防火墙的一个缺陷是安全被配置得过且过那么强以至于它的确会影响网络技术的运行。例如,一些研究表明在用户严重依赖分布式应用的环境中使用防火墙是不切实际的。由于防火墙墙要执行那么严格的安全规则,因此这些环境可能会陷入困境,他们获得了安全。却丢失了功能。对某些人来说,所有管理员都会不可避免地面对在需要做Y的X用户和环绕她的请求的安全问题之间的矛盾。虽然困境涉及到许多信息安全原理,其中最大的一个是政策定义,但是它也能穿越一些组织的边界。例如,如果技术人员不能阻塞Y服务,那么他们就会冒险开一个组织范围内的先例。这会导致安全人员被商业人员压垮,并且迟早实际不需要的功能也会在防火墙上开发。另一方面,聪明的组织知道根据情况来检查这些状况并作出相应的反应。不幸的是,我们不能为“聪明的”组织做所有的工作
防火墙可以解决所谓的“粘滞”问题,其要点是要清楚如何避免这种粘滞问题的发生,同时要清楚在发生了这种问题以后如何解决。例如,如果允许某第三方公司Internet访问本公司的工资系统,但不允许他们通过该系统访问其他系统。但万一这些第三方公司访问了其他系统怎么办呢?首先应该将工资系统隔离到一个单独的子网中,然后检查系统级日志,并使用入侵检测系统检查发生问题的子网。许多情况下,正确地处理好这种问题,可以避免很多不必要的损失。
提示 尽管很多用户字可希望出现许多烦恼的事儿,也不愿看到有错误发生,但有一点需要记住:网络是因为能提供可用的连接而存在的。保证网络安全是管理员的重要职责之一,确保网络连接可用也是他们的重要职责。如果某个用户根本无法与其他用户连接,那么麻烦可就大了,一个好的管理员不仅能够清楚哪些场战应该硬拼,还应该明确哪些场战应该智取
另外一个严重错误就是安全见不正确。有些管理员认为防火墙可以防止所有网络问题的发生,这种观念是要不得的,这些人也应该清醒一下了,设置防火墙有利于建立一种安全感,但如果没有附加的防御措施,而只是使用防火墙就有些孤注一掷了。如果其本身也存在着缺陷,它不应该代表整个安全模型。要始终记住,多层次的安全模型才是最安全的。
尽管存在着如此多的缺点,但事情的发展却使我们看到了希望。5年前,我们一直在极力劝说首席技术官将防火墙安装到合适的位置上;而现在我们却在劝说他们仅仅使用防火墙是不够的。不管怎么说,情况还是有所改善的。