本文收录于微信公众号「 LinuxOK 」,ID为:Linux_ok,关注公众号第一时间获取更多技术学习文章。

如下是具有双网卡的Linux服务器,数据入口网卡是eth0,数据出口网卡是eth1

而Linux防火墙的工作区域为下图中的绿色阴影部分(防火墙的概念这里不赘述):

Linux系统中防火墙功能的两大角色:iptablesnetfilter。iptables是Linux系统下应用层内置控制防火墙的工具,netfilter则是防火墙功能的具体实现,是内核空间的功能模块。所谓的iptables“控制”防火墙,就是用户利用iptables将防火墙规则设置给内核的netfilter功能模块,这中间涉及“四表五链”:

“四表五链”其实是对用户设置规则的管理,是看待用户设置的规则的两个维度。举个例子,看图中深蓝色箭头的数据流向,数据包要到达用户层,需要经过PREROUTING链(路由前链),INPUT链(输入链),在这个链路中存放着用户设置的规则,这些规则根据功能不同又会被分组存放在RAW表、Mangle表和NAT表中。当数据包抵达PREROUTING链时,netfilter程序会依次从RAW表、Mangle表和NAT表中取出针对PREROUTING链的用户规则并执行相应操作;同理,INPUT链上的规则也会被分组存放在Mangle表和Filter表中,netfilter程序会依次从这两个表中取出针对INPUT链设置的用户规则并执行相应操作。(特别强调,转发的数据包不经过 OUTPUT 链)

其他链同理。

这里需要强调的一点是FORWARD链,它是转发链,也就是说只有在网卡个数**>=2的系统中才具有的功能:开启系统转发功能后,当网络层发现数据包并非发给本机时会从另一网卡转发出去。中间经过FORWARD链,FORWARD链上的规则由Filter表、Mangle表读取操作。所以对于单网卡的系统中,上图应更改为:

综上,Linux将用户规则依据
功能规则所处链路位置**进行分组,“四表”存放着功能一致的规则,“五链”存放着数据包所处链路一致的规则。
这四个表分别存放什么功能的规则?如下归类:

Filter表:过滤数据包
NAT表:用于网络地址转换(IP、端口)
Mangle表:修改数据包的服务类型、TTL、并且可以配置路由实现QOS
Raw表:决定数据包是否被状态跟踪机制处理

五条链分别存放什么链路的规则?如下归类:

INPUT链——进来的数据包应用此规则链中的规则
OUTPUT链——外出的数据包应用此规则链中的规则
FORWARD链——转发数据包时应用此规则链中的规则
PREROUTING链——对数据包作路由选择前应用此链中的规则
POSTROUTING链——对数据包作路由选择后应用此链中的规则

最后附另一张“四表五链”图,该图来源自网络,相当经典:

iptables四表五链相关推荐

  1. iptables总结--理解四表五链/snat/dnat/redirect/synproxy/性能

    1. iptables四表五链 四表五链: 链就是位置:共有五个 进路由(PREROUTING).进系统(INPUT) .转发(FORWARD).出系统(OUTPUT).出路由(POSTROUTING ...

  2. Linux系统管理(3)——防火墙 iptables基本原理 四表五链 NetFilter 概述

    Linux防火墙主要就行工作的部分在内核,这个模块叫NetFilter:我们平时配置的iptables是给我们的一个配置界面,我们通过iptables配置规则,配置之后,NetFilter通过这些规则 ...

  3. Firewalld,iptables概述(netfilter和Firewalld,iptables三者之间的关系,四表五链,Firewalld防火墙的配置方发,SNAT,DNAT了解)

    文章目录 Firewalld,iptables概述 Firewalld了解 iptables了解 Firewalld和iptables的关系 netfilter Firewalld.iptables ...

  4. 云小课 | 守护网络安全不是问题,iptables的四表五链为你开启“八卦阵”

    摘要:担心网络基本安全?iptables八卦阵为您守护!本文带您一起了解iptables的相关知识. 网络世界就和现实世界一样,总是会有些不怀好意的"人"出现,扫扫你的端口啊,探测 ...

  5. Linux--firewalld防火墙基础(firewalld和iptables的关系,四表五链,netfilter与iptables的关系,iptables语法与参数,firewalld网络区域)

    文章目录 前言 一:Firewalld,iptables概述 1.1:Firewalld简介 1.2:iptables简介 二:Firewalld和iptables的关系 2.1:netfilter ...

  6. TCP三次握手、tcp和udp对比、四表五链

    (1)简述TCP的三次握手 第一次握手:客户端请求建立连接时,会将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给服务器,客户端进入SYN_SENT状态,等待服务器确认. 第二次握手: ...

  7. iptables之三表五链

    一.iptables概述 1. iptables的概述 iptables 实际上就是一种包过滤型防火墙. 就是通过书写一些接受哪些包,拒绝哪些包的规则,实现数据包的过滤.这些规则存储在专用的信息包过滤 ...

  8. iptables的三表五链

    iptables命令 Iptabels是与Linux内核集成的包过滤防火墙系统,几乎所有的linux发行版本都会包含Iptables的功能. netfilter/iptables过滤防火墙系统是一种功 ...

  9. iptables的表和链结构详解

    iptables总的结构 iptables 其实是多个表(table)的容器,每个表里包含不同的链(chain),链里边定义了不同的规则(policy),我们通过定义不同的规则,来控制数据包在防火墙的 ...

最新文章

  1. SPI时钟极性、时钟相位及片选
  2. struts2的bean类名首字母和第二个字母都不能大写
  3. Android笔记:Activity
  4. 内存泄漏 和 内存溢出
  5. github 进阶说明
  6. 存储过程没有执行完后没有释放锁_面试必问---synchronized实现原理及锁升级过程你懂吗?...
  7. kinux查日志_Linux查看日志常用命令
  8. Android逆向笔记-通过字符串定位跳转点
  9. CV+游戏,美国游戏开发公司 Rockstar Games 寻找优秀动画程序员
  10. c/c++教程 - 1.5 运算符
  11. public protected private
  12. linux操作系统开机启动,简述linux操作系统启动流程
  13. 数据结构与算法之PHP排序算法(桶排序)
  14. Dreamweaver网页设计与制作100例:用DIV+CSS技术设计的书法主题网站(web前端网页制作课作业)
  15. SpringMVC-视图和视图解析器
  16. 国际C 语言乱码大赛(IOCCC )
  17. 在MFC中的socket编程
  18. 服务开通语音通知功能如何实现?服务开通语音提醒功能实现方案
  19. linux yum下载不安装,CentOS 7设置yum仅仅下载rpm不安装总结
  20. 一个程序员的真实故事上

热门文章

  1. Android 圆形旋转菜单
  2. 《流浪地球》让刘慈欣赚了多少钱?技术男搞写作原来这么简单
  3. Redis缓存有效时间设置到第二天凌晨的秒数
  4. 华润置地php面试题_华润置地有限公司面试攻略,面试题,面试技巧及流程(附笔试,评论,薪资)-金针菇企评网...
  5. 专访路彦雄:理解语言其实还是很难的
  6. 测试杂谈之一初生牛犊
  7. python:批量修改文件的访问时间、修改时间、改变时间!
  8. 记一次将动态磁盘转为基本磁盘(无损)
  9. etcd 本机手动测试集群及 member 操作
  10. uni App 支付宝小程序分享代码