防火墙的主要功能
包过滤
包过滤(packet filtering)防火墙是出现最早的一类防火墙。事实上,路由器本身就具有包过滤防火墙的功能。理论上,包过滤器可以配置为根据协议报头的任何部分进行判断,但实际上,大多数的包过滤实现都针对最为有用的数据域:协议类型、ip 地址、端口号等。通常源地址、目的地址、协议类型、源端口、目的端口以及包到达或发出的接口等构成包过滤防火墙的基本安全控制和审计手段。
简单的包过滤防火墙(大部分路由器形式的包过滤防火墙)只检查序号为0 的ip 分包,可以容易地被攻击者定制ip 分包的方法绕过防火墙策略,所以在安全性方面存在较为严重的缺陷,当前基本上已经被基于状态检查包过滤的专业防火墙所取代。
状态检查(stateful inspection)是介于简单包过滤和应用级防火墙之间的一种中间方式,它使用基于维持连接状态和协议信息的复杂过滤器来阻断或通过数据包。在大幅度提高安全性的同时,能够以非常高的速度进行包过滤,成为当前主流防火墙优先采用的工作方式。
网络地址翻译
网络地址翻译(network address translation),又称ip 伪装(ip masquerade),它通过将内部主机的ip 地址翻译到外部网络的ip 地址,从而达到隐藏内部主机tcp/ip 层次信息的目的。
nat 允许在内部网络中使用任何网络运行者希望的ip 网络地址。nat 技术的出现带来网络安全的同时,在很大程度也缓解了当前internet 中ip 地址匮乏的问题,为网络设计和建设带来了巨大的方便。
按照地址翻译的工作方式,nat 又可分为以下几种:
静态翻译(static nat ), 每一个内部地址对应一个外部地址,也简称为1:1 nat 。此时,地址翻译带来的安全性、节约地址方面的优点全部消失。但是,在内部网络存在对外提供服务的服务器主机时,静态翻译非常必要。
动态翻译(dynamic nat ),大段的内部网络地址对应于一个或者一小段外部网络地址。根据实施的细节又可分为n:1 和n:m(n]m)两种方式。
应用代理
应用代理( application proxy)防火墙的工作方式不同于包过滤防火墙,它首先对带有代理并且按照策略规则允许通过的数据包接收并重新产生,然后忽略掉那些没有相应代理的数据包。
应用代理可以提供比包过滤防火墙更为细致的网络安全策略和更好的安全水平,体现在下面几点:
1 阻断了内外的直接网络连接,不必存在内外网络的直接路由
2 隐藏了内部网络的客户,对外表现为一个较为繁忙的主机
3 能够在应用层进行内容和协议过滤,实现精细安全控制
4 能够对应用层协议进行一致性检查,防止了某些恶意定制的攻击性网络分包
5 提供了单点的访问、控制和日志记录功能
通常,最为常用的应用代理是http、telnet、ftp 等。
当然,应用代理在带来了很高的安全性的同时,也附加了许多不利因素:
1 单点错误,应用代理的崩溃会导致整个网络连接的中断
2 客户机必须支持代理的工作方式
3 每个服务都要有相应的代理才能配置
代理往往会成为速度瓶颈。代理需要在应用层处理数据,所以性能方面大大弱于包过滤方式的防火墙。
身份认证
身份认证(authentication)技术能够识别从外部网进来访问的用户的身份,从而决定是否允许它们访问内部网络,达到在用户级进行访问控制、对安全策略进行细化的目的。
身份认证经常会带来安全方面的降低,例如:
防火墙必须在某些端口进行监听,这样很容易暴露防火墙的存在身份认证过程可能有问题,会导致外部互联网的用户有机会在防火墙上面打开一个缺口虚拟专网
虚拟专网(vpn)帮助用户在不安全的公网上面建设一个相对安全的、接近于专用网络的通信环境。虚拟专网使用以下几个基本安全功能来实现:ip 封装、加密的身份认证、数据包净荷加密等。
一般来说,局域网之间的虚拟专网可以通过服务器计算机、防火墙、路由器等来建立。单纯的虚拟专网并不能提供有效的保护,与防火墙的结合可以很大程度上提高虚拟专网的安全性。所以,虚拟专网成为当代防火墙的一个重要功能。