传统防火墙
防火墙概念
防火墙是一个位于内部网络与外部网络之间的安全系统(网络中不同区域之间),是按照一定的安全策略建立起来的硬件或软件系统,用于流量控制的系统(隔离),保护内部网络资源免受威胁(保护)。 防火墙的主要用于防止黑客对安全区域网络的攻击,保护内部网络的安全运行。
传统防火墙
通过防御设备划分边界,基于IP/端口和特征进行判断,以隔离为基础,基于信任原则构建安全框架,以防护为核心,基于静态特征的攻击检测
缺点

成本高:环境、空间、重复采购
管理难:多设备,多厂商、安全风险无法分析
效率低:重复解析、单点故障
发展形成:安全防护UTM(本质没变)
- 多次拆包,多次检测
- 应用层性能低
工作层面
防火墙系统能工作在OSI 7层模型的5个层次上,能从越多的层处理信息,它在过滤处理中的粒度就更细。
分类
- 包过滤防火墙 3、4层
- 状态防火墙 3、4、5层
- NAT防火墙 3、4层
- 应用网关防火墙 3、4、5、7层
- 基于主机(服务器和个人)的防火墙 3、4、7层
- 混合/硬件专用平台防火墙 2、3、4、5、7层 如:PIX、ASA等
1.简单包过滤防火墙技术
概述
类似交换机、路由器的ACL,工作层面:3 , 4 层
实现原理
检查IP、TCP、UDP信息
优点
速度快,性能高,可以用硬件实现实现原理
检查IP、TCP、UDP信息
缺点
不能根据状态信息进行控制
前后报文无关
不能处理网络层以上的信息
ACL过多配置复杂,不能处理应用层的攻击,不支持连接认证,只对某些类型的攻击比较敏感
2.状态检测防火墙
前置了解:流与会话
流(Flow):是一个单方向的概念,根据报文所携带的三元组或者五元组唯一标识。根据IP层协议的不同,流分为四大类:
- TCP流:通过五元组唯一标识
- UDP流:通过五元组唯一标识
- ICMP流:通过三元组 + ICMP type + ICMP code唯一标识
- RAW IP流:不属于上述协议的,通过三元组标识
会话(Session):以一个双向的概念,一个会话通常关联两个方向的流,一个为会话发起方(Initiator),另外一个为会话响应方(Responder)。通过会话所属的任一方向的流特征都可以唯一确定该会话,以及方向。
状态检测防火墙
概述
工作层面:3 ,4 ,5层
实现原理
- 根据通信和应用程序状态确定是否允许包的通行
- 用于识别或者控制数据流是返回的数据流还是首发的数据流
- 在数据包进入防火墙时就根据状态表进行识别和判断,无需重复查找规则
- 与过滤防火墙不同,状态防火墙保持连接状态的跟踪;连接是否处于初始化、数据传输、终止状态;它们通过查看TCP头中的SYN、RST、ACK、FIN和其他控制代码来确定连接的状态;维持一张连接状态表;数据通过时查找这张表;
会话的创建
- 对于TCP报文,三次握手+ALG后创建会话
- 对于UDP/ICMP/Raw IP报文,首包创建会话
会话表是维持通信状态的。
会话表包括五个元素: 源IP地址、源端口、目的IP地址、目的端口和协议号(如果支持虚拟防火墙的话还有一个VPN-ID)。
操作:

优点
知晓连接状态,更加安全
缺点
不能检测应用层协议内容,如URL过滤
不能阻止应用层攻击,不能连接认证
不是所有的协议都有状态:UDP ICMP
不能支持多连接或多通道连接如FTP 等
注 :防火墙缺省下,高级别区域的能访问低级别区域,低级别区域不能访问高级别区域。
3.应用网关防火墙
概述
- 通常称为代理防火墙,一般使用软件来完成;
- 首先截取用户初始化连接请求并发送给用户一个认证信息的请求;
- 认证通过后允许流量通过;
- 存储合法用户信息xauth表;可以对应用协议以及数据进行分析检测。
工作层面:3 ,4 ,5、7层
优点
可以支持连接身份认证,能检测应用层数据;如 上网认证,URL过滤,关键字等行为管理。
缺点
用软件来处理,消耗系统资源;仅支持TCP应用(如http telnet https ftp);可能需要额外的客户端软件;
ALG的作用
ALG是一种对应用层进行处理的技术。
ALG的状态检测是基于应用层协议的,能够监听每一个应用的每个连接所使用的端口,打开合适的通道允许会话中的数据穿过防火墙,在会话结束时关闭该通道,从而实现对动态端口应用的有效访问控制:
- 会话层状态:记录了传输层报文之间的交互信息,包括源IP地址、源端口、目的IP地址、目的端口,协议类型等,创建会话状态信息。
- 动态通道(基于应用层会话状态):当应用层协议报文中携带IP地址、tcpUDP端口信息时,这些地址信息会被用于建立动态通道,后续符合该地址信息的连接将使用已经建立的动态通道来传输数据。
- 在NAT的实际应用过程中,NAT仅对网络层报文的报文头进行IP地址的识别和转换,对于应用层协议协商过程中报文载荷携带的地址信息则无法进行识别和转换,因此在有NAT处理的组网方案中,NAT利用ALG技术可以对多通道协议进行应用层的报文信息的解析和地址转换,保证应用层上通信的正确性。