防火墙是一种网络安全系统,它根据预先确定的安全规则监视和控制进出网络的流量。防火墙通常在可信的内部网络和不可信的外部网络之间建立一个屏障
防火墙通常分为网络防火墙或基于主机的防火墙。网络防火墙过滤两个或多个网络之间的流量,并在网络硬件上运行。基于主机的防火墙运行在主机计算机上,控制进出这些机器的网络流量。
第一代防火墙:包过滤器(Packet filters)
第一代网络防火墙称为包过滤器。包过滤器通过检查在计算机之间传输的包。当信息包与信息包过滤器的过滤规则集不匹配时,过滤器要么丢弃(无声地丢弃)信息包,要么拒绝信息包(丢弃它并为发送方生成Internet控制消息协议通知),否则它将被允许通过。包可以通过源和目的网络地址、协议、源和目的端口号进行过滤。
第二代防火墙:有状态过滤器(Stateful filters)
第二代防火墙执行的第一代一样的工作,但是在OSI模型的第4层传输层。通过保留包直到有足够的信息来判断其状态,通过状态检查防火墙允许或阻塞基于状态、端口和协议的通信。它监视从连接打开到关闭的所有活动。过滤决策是基于管理员定义的规则和上下文做出的,上下文指使用来自以前连接和属于同一连接的包的信息。
这种类型的防火墙很容易受到拒绝服务攻击(DOS)的攻击,这些攻击使用假连接攻击防火墙,试图填充其连接状态内存来使其无法工作。
第三代防火墙:应用层(Application layer)
第三代防火墙可以工作在应用层,实现应用层过滤。应用层过滤的关键好处是它可以“理解”某些应用程序和协议(如文件传输协议(FTP)、域名系统(DNS)或超文本传输协议(HTTP))。这是非常有用的,因为它能够检测不需要的应用程序或服务是否试图使用允许端口上的协议绕过防火墙,或者检测协议是否以任何有害的方式被滥用。
到2012年,提出了下一代防火墙(NGFW),所谓的下一代防火墙不过是应用层“更广泛”或“更深”的检查。将深度包检测功能扩展为:
- 入侵防御系统(IPS)
- 用户身份管理集成(通过将用户id绑定到IP或MAC地址以获得“信誉”)
- Web应用程序防火墙(WAF)