防火墙 4表

防火墙 4表

  1. filter表
    • 主要用于对数据包进行过滤,根据具体的规则决定是否放行该数据包(DROP ACCEPT REJECT LOG)
      • INPUT链: INPUT针对那些目的地是本地的包
      • FORWARD链:FORWARD过滤所有不是本地产生的并且目的地不是本地(即本机只负责转发的)
      • OUTPUT链:OUTPUT是用来过滤所有本地生产的包
  2. nat表
    • 主要用于修改数据包的IP地址 端口信息等(网络地址转换)
      • PREROUTING链:作用是在包刚刚到达防火墙时改变它的目的地址
      • OUTPUT链:改变本地产生的包的目的地址
      • POSTROUTING链:在包就要离开防火墙之前改变其源地址
  3. mangle
    - 主要用于修改数据包的TOS TTL 以及数据包设置的mark标记
  4. raw表
    • 主要用于决定数据包是否被状态跟踪机制处理。在匹配数据包时,raw表的规则要优先于其他表。包含两条规则链——OUTPUT、PREROUTING
 
image.png

总结

  • 当一个数据包进入网卡时,数据包首先进入PREROUTING链,在PREROUTING链中我们有机会修改数据包的DestIP(目的IP),然后内核的"路由模块"根据"数据包目的IP"以及"内核中的路由表"判断是否需要转送出去(注意,这个时候数据包的DestIP有可能已经被我们修改过了)
  • 如果数据包就是进入本机的(即数据包的目的IP是本机的网口IP),数据包就会沿着图向下移动,到达INPUT链。数据包到达INPUT链后,任何进程都会-收到它
  • 本机上运行的程序也可以发送数据包,这些数据包经过OUTPUT链,然后到达POSTROTING链输出(注意,这个时候数据包的SrcIP有可能已经被我们修改过了)
  • 如果数据包是要转发出去的(即目的IP地址不再当前子网中),且内核允许转发,数据包就会向右移动,经过FORWARD链,然后到达POSTROUTING链输出(选择对应子网的网口发送出去)




posted @ 2020-01-28 14:37  王瓦斯的春天  阅读(283)  评论(0编辑  收藏  举报