linux防火墙分三种:
1:三层过滤,也就是包过滤。
2:七层过滤,也称代理服务器型防火墙。它工作在osi模型的第七层,对数据的内容进行过滤。
3:复合型防火墙:整合三层和七层功能。
*三层过滤只对源ip和目的ip根据控制列表进行检测而后选择操作。
*七层过滤是进行拆包到用户数据,并进行检测后再进行操作。并且有日志记录的 功能。
七层过滤的原理是用户的请求数据先发到代理服务器也就是防火墙,防火墙根 据它内部定义的规则来完成操作,然后把数据返回给服务器。返回数据也一 样。
linux 防火墙分两段:一段是工作在内核中对数据包进行真正的过滤的模块,另一段是工作在用户空间,实现规则的定义。
主要的命令是:iptables,它也就是我们刚所说的,一段工作在内核中,实现数据的过滤;一段工作在用户空间,定义规则。
工作在内核中的规则链实现用户与内核之间的“通信”。
默认有五条规则链:
1:INPUT:处理入站数据包。
2:OUTPUT:处理出站数据包
3:FORWARD:不进站,直接处理转发数据。
4:POSTROUTING:在进入防火墙时进行路由选择后处理数据包。
5: PREROUTING:在进行路由选择前外理数据包。
处理机制在用户空间叫规则表对五个规则链进行定义操作。
规则表有以下四种:
1:raw表:确定是否对该数据包进行状态跟踪
2:mangle表:为数据包设置标记。
3:nat表:修改数据包中的源目标ip地址。
4:filter:确定是否放行该数据包
规则表间的优先顺序:
依次是:raw mangle nat filter
规则链之间的匹配顺序:1:入的顺序:PREROUTING INPUT
出的数据:OUTPUT POSTROUTING
转发数据:PREROUTING FORWORD POSTROUTING
规则链内的匹配顺序:1:按照顺序依次进行检查,找到匹配的规则即停止。
2:若在该链内找不到匹配的规则则按照默认的规则进行处理
下面是规则表定义的规则链:raw:PREROUTING OUTPUT
manggle:PREROUTING POSTROUTING INPUT OUTPUT FORWARD五个规则链
nat表:PREROUTING POSTROUTING OUTPUT
filter:规则…… INPUT OUTPUT
下面是命令iptables的运用:
-t:指定操作的表 raw mangle nat filter
链管理命令:-P:默认策略
-F:清除
-N:自定义规则链
-E:重命名
-Z:清除计数器
-X:删除指定的用户自定义的链,且链必须还没有运用。
规则管理命令:
-A:新增规则
-I:插入规则
-R: 修改规则
-D: 删除规则
例:iptables -t filter -A INPUT -s 192.168.0.1/32 -j accept
意思是:在INPUT链上新增规则要求源ip为192.168.0.1/32 的主机的数据包实行放行的规则。
最常用的匹配条件有:1:来源,目的(-s -d)
2:协议类型(-p)
3:来源;目的端口(-sport; dport)
4:流入;流出(-i;-o)
icmp协议是实现ping功能的协议。类型8:回射请求
类型0:回射应答
类型11:超时
基于协议的检测。