发展史:
包过滤阶段(1989年):
在遭受入侵时,做内外网的隔离的策略。
原始:ACL+nat(Pat)+静态nat(用于出去)
攻破:换地址+端口号(转换表存在时)—伪造包
防漏洞:
1.使用established ACL ->利用tcp的flag字段(局限性较强,无法防止ack和RST以及UDP/ICMP等的攻击)。
查看tcp flag字段是否有ACK或RST,acl加established关键字后(如下实验)R3主动 TCP R1不能通,R1 主动TCP R3能通。这个机制的意思是只有别人触发了你的ACK或RST回报时可以放行。
2.双向过滤:自反ACL—出去匹配流量,原目地址和端口号倒置以后放在出去的公网口。出去以后能回来,没出去过的话,外部不能进来。
3.高端口号释放。
缺点:欺骗攻击难防止;局限性大;当流量数过大时,因为是逐包检查,路由器负荷较大,效率低。
动态ACL
验证成功以后能够允许一项操作。
代理服务器阶段:
所有流量到代理,代理检查安全后重新封装给服务器,之后回应给原-------效率低。
堡垒机—靠代理软件工作-----Socks协议
状态型防火墙阶段:(理念升级,把网络中的数据以流的形式对待)
按流匹配,检测第一个包,后续的包不用再判定。检查的是三层和四层。
流在状态型防火墙会形成会话表:
1.流的第一个包进入防火墙,防火墙先去匹配规则(路由规则,nat规则,策略规则等等),如果规则允许回到第二步,不允许则丢弃。
2.会为流建立会话表,后续的所有包直接匹配会话表进行转发。回包的时候查看会话表转发。
3.是流的预期表(边传边修改),与预期表不符合丢弃。
超时机制:
1)握手阶段会话超时时间一般为60秒,防止TCP的半开攻击(让握手缓存空间所在内存存满不能再放)无法彻底解决。DOS攻击防御:建立一个cookie表,该表记录与他握手的原的信息。若再来一个或者第n次该原的新的连接,则不响应(不把该握手放置在two-way timeout 表),继续等待第一个连接的后续包。对DDOS无效。防火墙技术可以设置会话表的连接次数,也可以防止DOS攻击。
2)握手成功一般会话的超时时间为60分钟。
注:FTP问题:两个连接,一个控制链接,一个数据连接,请求和传输分为两个端口号实现,无法通过防火墙的会话表过滤。
解决方案:端口检测机制。检查21号端口的传输数据的数据部分(应用层)查看传输的协商端口,然后再防火墙上开放次端口。这种技术会使得防火墙性能下降。
UDP问题:没有flag字段,检查的元素会变少,防御效果会减弱。因为是无连接的,所以只能通过原目ip端口去判断。
解决方案:也会创建虚连接会话表。
ICMP问题,没有端口,防御能力继续下降。
解决方案:一般防火墙会默认禁止ICMP回包。
针对应用层的攻击:会话表无法查看应用层的内容,无法防止基于应用的攻击。
深度包/流检测技术----->入侵检测IDS:深入数据包内容提取特征因素,用特征库匹配因素,从而检测入侵。
缺点:只是警告提醒,不是直接防御。
IPS入侵防御:进一步检查,做出入侵防御反应。
此时网络边界过多,有路由器,防火墙,IPS,应用代理(管理流量,上网行为),WAF(web 过滤),防毒墙,漏洞检测,负载均衡设备,需要整合----------UTM多功能防火墙。
只是简单地整合,没有技术上的突破
下一代防火墙:(性能升级)
下一代防火墙架构:
多核并行提高运行速率。