防火墙:
在遭受入侵时,做内外网隔离的策略叫做防火墙
最早之前的防火墙是通过ACL和PAT,NAT完成的
ACL隔离流量,但是隔离后本身想出去就无法访问,则使用PAT进行地址转换
Linux造包工具 netwox
---------------------------------------------------------------------------------------------------------------------------------
TCP-flag中 rst字段就是释放连接字段 比如 刚开始与百度连接,百度给了rst直接断开变成白页面 内存有关百度的都释放
ACL
Estabilshed acl
查看tcp flag字段是否有ACK或RST,acl加established关键字后(如下实验)R3主动TCP R1不通,R1 主动TCP R3能通。这个机制的意思是只有别人出发了你的ACK或RST回报时可以放行。
无法防止ACK RST攻击和UDP
---------------------------------------------------------------------------------------------------------------------------------
自反ACL
当流量出去后,将源目IP和源目端口倒置
则 若出去过的流量可以回来,没出去过的流量回不来
---------------------------------------------------------------------------------------------------------------------------------
路由器逐包匹配,一旦流量过大,检测效率大大降低,路由器负荷极大
两大缺点:
1、无法防止欺骗类的攻击,容易受到拒绝式服务攻击(DOS)
2、路由器逐包匹配,一旦流量过大,检测效率大大降低,路由器负荷极大
以上技术一直持续使用到89年
89年后 出现代理服务器技术
内网把请求发给代理服务器 代理服务器把包解,再发给内网,回包同理
做所有的事情都必须经过代理服务器
可以对应用层进行检查 但是效率比包过滤还低
如今的堡垒机与代理服务器技术比较相似
Socks协议 90年左右
状态型防火墙
可以看做动态包过滤技术
可以实现 检查第一个包 后面的包都可以经过
理念升级,把数据以流的形式对待而不是以包的形式。流在状态防火墙会形成会话表。
- 流的第一个包进入防火墙,防火墙先匹配规则,如果规则允许则会到第二步,如果规则不允许,则丢弃。(路由规则、NAT规则、策略规则)
- 会为流建立会话表,后续的所有流的包直接匹配会话表进行转发。
状态监测防火墙的转发机制
超时机制:1)握手阶段超时时间一般为60s,防止tcp半开攻击。
DOS攻击的防御,建立一个cookie表记录与他握手的源地址,如果第X(可调整)次握手后再来握手,检测cookie表如果有记录就不处理,不回ACK不把握手放置在two-way timeout表。对于DDOS无效。
防火墙技术可以设置会话表连接次数,也可以防止DOS攻击。
- 握手成功一般会话的超时时间为60min
FTP的问题?---21端口
请求阶段为主机向服务器请求
传输阶段为服务器主动向主机发送建立连接(端口改变)
如此一来 防火墙无法处理FTP
FTP要求防火墙主动打开端口 而防火墙则为 若没有出去就不让你回来
端口检测技术:检查21号端口传输的数据的数据部分(应用层)查看传输的协商端口号 然后在防火墙就会在外部开放此端口
防火墙默认开启
这种技术会使得防火墙性能下降
UDP的问题?
没有flag字段,所以检查的元素会变少,防御效果会减弱。而且UDP是无连接的,只能通过源目IP,端口去判断。
UDP对防火墙来讲也会创建虚连接会话表。
ICMP的问题?
没有端口,防御能力继续下降。一般防火墙会默认禁止icmp回报。
针对应用层的攻击?
无能为力
会话表无法查看应用层的内容,无法防止基于应用的攻击
深度包检测技术、深度流检测技术 ---> 入侵检测IDS
网络边界设备过多,有路由器、防火墙、IPS、应用代理(管理流量、上网行为)、WAF(web application filter ---web过滤)、防毒墙(防病毒)、漏洞检测、负载均衡设备。
整合 UTM 多功能防火墙
沙盒技术:在计算机中分配一块空间,将隔离的程序在沙盒中运行一遍监控程序行为。