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:超时

基于协议的检测。