防火墙

網路安全系統,根據預先決定的安全規則監視並控制連入與連出的網路流量

防火墙(英语:Firewall)在计算机科学领域中是一个架设在互联网与内网之间的网络安全设备,根据持有者预定的策略来监控往来的传输。[1]防火墙可能是一台专属的网络设备,也可执行于主机之上,以检查各个网络接口的网络传输。它是目前最重要的一种网络防护设备,从专业角度来说,防火墙是位于两个或以上网络间,实行网络间访问或控制的一组组件集合之硬件或软件。

防火墙隔开了信任区域与非信任区域
例证,防火墙将位于网络中。
Linux内核模块Netfilter的网络包处理流
Gufw是Uncomplicated Firewall的前端图形终端,后者自身也是netfilter的包装

功能

防火墙最基本的功能就是隔离网络,透过将网络划分成不同的区域(通常情况下称为ZONE),制定出不同区域之间的访问控制策略来控制不同信任程度区域间传送的数据流。例如互联网是不可信任的区域,而内部网络是高度信任的区域。以避免安全策略中禁止的一些通信。它有控制信息基本的任务在不同信任的区域。 典型信任的区域包括互联网(一个没有信任的区域) 和一个内部网络(一个高信任的区域) 。 最终目标是:根据最小特权原则,在不同水平的信任区域,透过连通安全政策的运行,提供受控制的连通性。 例如:TCP/IP Port 135~139是 Microsoft Windows 的【网上邻居】所使用的。如果电脑有使用【网上邻居】的【共享文件夹】,又没使用任何防火墙相关的防护措施的话,就等于把自己的【共享文件夹】公开到Internet,使得任何人都有机会浏览目录内的文件。且早期版本的Windows有【网上邻居】系统溢出的无密码保护的漏洞(这里是指【共享文件夹】有设密码,但可经由此系统漏洞,达到无须密码便能浏览文件夹的需求)。防火墙的本义,是指古代构筑和使用木制结构房屋时,为防止火灾发生及蔓延,人们将坚固石块堆砌在房屋周围做为屏障,这种防护结构建筑就被称为防火墙。现代网络时代引用此喻意,指隔离本地网络与外界网络或是局域网间与互联网或互联网的一道防御系统,借由控制过滤限制消息来保护内部网资料的安全。

防火墙类型

针对普通用户的个人防火墙,通常是在一部电脑上具有数据包过滤功能的软件,如ZoneAlarmWindows XP SP2后内置的防火墙程序。而专业的防火墙通常为网络设备,或是拥有2个以上网络接口的电脑。以作用的TCP/IP堆栈区分,主要分为网络层防火墙应用层防火墙两种,但也有些防火墙是同时运作于网络层应用层

网络层(数据包过滤型)防火墙

运作于TCP/IP协议堆栈上。管理者会先根据企业/组织的策略预先设置好数据包通过的规则或采用内置规则,只允许符合规则的数据包通过。

一般而言,由于来源IP不易阻挡,通常借由阻挡非80/443的端口,以阻挡来自非80/443的端口的不需要的流量。

网络层防火墙可分为:状态感知(stateful)与无状态感知(stateless)。

  • 状态感知(stateful)

状态感知防火墙会针对活动中的连线维护前后传输的脉络,并使用这些状态信息来加速数据包过滤处理。

根据需求,现行的网络连线由各种性质描述,包括:来源端IP位置,目的端IP位置、UDP或TCP端口口号码,以及连线所处的状态阶段(连线初始化、交握中,资料传输中、或完成连线)。

如果有数据包与现存连线不符,防火墙会根据规则来评估此数据包是否该属于另外一个新连线。如果数据包符合现存连线,防火墙会根据自己所创建的状态表完成比对,该数据包就不必额外处理,即可通过两端网络。

  • 无状态感知(stateless)

无状态感知防火墙所需较少的存储器,针对于通过的数据包,作比较简易与快速的过滤。如此,相较于查询对话工作期间(session),无状态感知防火墙所耗的时间也较少。

这种防火墙可处理无状态网络通信协议,这种协议并没有对话工作期间(session)的概念。

反之,这种防火墙无法根据沟通的两端所处的状态阶段作出复杂的决策。

我们也能以另一种较宽松的角度来制定防火墙规则,只要数据包不符合任何一项“否定规则”就予以放行。现在的操作系统及网络设备大多已内置防火墙功能。

较新的防火墙能利用数据包的多样属性来进行过滤,例如:来源 IP 地址、来源端口号、目的 IP 地址或端口号、服务类型(如 HTTP 或是 FTP)。也能经由通信协议、TTL 值、来源的域名或网段...等属性来进行过滤。

应用层防火墙

 
防火墙的视察软件接口示例,纪录IP进出的情况与对应事件

应用层防火墙是在TCP/IP堆栈的“应用层”上运作,使用浏览器时所产生的资料流或是使用 FTP 时的资料流都是属于这一层。应用层防火墙可以拦截进出某应用程序的所有数据包,并且屏蔽其他的数据包(通常是直接将数据包丢弃)。理论上,这一类的防火墙可以完全阻绝外部的资料流进受保护的机器里。

防火墙借由监测所有的数据包并找出不符规则的内容,可以防范电脑蠕虫或是木马程序的快速蔓延。实际上,这个方法繁复(因软件种类极多),所以大部分防火墙都不会考虑以这种方法设计。

截至2012年,所谓的下一代防火墙(NGFW)都只是“拓宽”并“深化”了在应用栈检查的能力。例如,现有支持深度分组检测的现代防火墙均可扩展成入侵预防系统(IPS),用户身份集成(用户ID与IP或MAC地址绑定),和Web应用防火墙(WAF)。

代理服务

代理(Proxy)服务器(可以是一台专属的网络设备,或是在一般电脑上的一套软件)采用应用程序的运作方式,回应其所收到的数据包(例:连线要求)来实现防火墙的功能,而屏蔽/抛弃其他数据包。

代理服务器用来连接一个网络(例:互联网)到另一个特定子网(例:企业内网)的转送者。

代理会使从外部网络窜改一个内部系统更加困难,且只要对于代理有良好的设置,即使内部系统出现问题也不一定会造成安全上的漏洞。相反地,入侵者也许劫持一个公开可及的系统和使用它作为代理人为他们自己的目的;代理人伪装作为那个系统对其它内部机器。当对内部地址空间的用途增加安全,破坏者也许仍然使用方法譬如IP欺骗(IP spoofing)试图通过数据包对目标网络。

防火墙经常有网络地址转换(NAT) 的功能,并且主机被保护在防火墙之后共同地使用所谓的“私人地址空间”,定义在RFC 1918。

防火墙的适当的配置要求技巧和智能,它要求管理员对网络协议和电脑安全有深入的了解,因小差错可使防火墙不能作为安全工具。

防火墙架构

 

主机型防火墙

此防火墙需有两张网卡,一张与互联网连接,另一张与内部网连接,如此互联网内部网的通道无法直接接通,所有数据包都需要透过主机发送。

双闸型防火墙

此防火墙除了主机型防火墙的两张网卡外,另安装应用服务转送器的软件,所有网络数据包都须经过此软件检查,此软件将过滤掉不被系统所允许的数据包。

屏障单机型防火墙

此防火墙的硬件设备除需要主机外,还需要一个路由器,路由器需具有数据包过滤的功能,主机则负责过滤及处理网络服务要求的数据包,当互联网的数据包进入屏障单机型防火墙时,路由器会先检查此数据包是否满足过滤规则,再将过滤成功的数据包,转送到主机进行网络服务层的检查与发送。

屏障双闸型防火墙

将屏障单机型防火墙的主机换成双闸型防火墙。

屏障子网域型防火墙

此防火墙借由多台主机与两个路由器组成,电脑分成两个区块,屏障子网域与内部网,数据包经由以下路径,第一个路由器->屏障子网域->第二路由器->内部网,此设计因有阶段式的过滤功能,因此两个路由器可以有不同的过滤规则,让网络数据包更有效率。若一数据包通过第一过滤器数据包,会先在屏障子网域进行服务处理,若要进行更深入内部网的服务,则要通过第二路由器过滤。

缺点

正常状况下,所有互联网的数据包软件都应经过防火墙的过滤,这将造成网络交通的瓶颈。例如在攻击性数据包出现时,攻击者会不时寄出数据包,让防火墙疲于过滤数据包,而使一些合法数据包软件亦无法正常进出防火墙。

相关条目

外部链接

参考资料

  1. ^ Boudriga, Noureddine. Security of mobile communications. Boca Raton: CRC Press. 2010: 32-33. ISBN 978-0849379420.