iptables 几张表 or 几条链?

 

iptables 认知...



1.1 IPTABLES



1、什么是Netfilter/iptales?
Netfilter是表(iptables)的容器,这样解释大家肯定还是不清楚吧
举个例子,如果把Netfilter看成是某小区的一栋楼。那么表(iptables)就是楼里的其中一套房子。这套房子“表”属于这栋楼“Netfilter”
2、什么是表(tables)?
表(tables)是链的容器,即所有的链(chains)都属于其对应的表(tables)
3、什么是链(chains)?
链(chains)是规则(policys)的容器。

1.2 IPTABLES
1、容器:包含或者说属于的关系
2、Netfilter/iptables是表的容器,iptables包含的4个表
(filter,NAT,MANGLE,RAW)
3、iptables的表(tables)又是链的容器
链chains:INPUT,OUTPUT,FORWARD,PREROUTING,POSTROUTING
4、链chains是规则容器:
5、规则Policy:一条条过滤的语句。

1.3 iptables工作流程
前面介绍已经提到,iptables是采用数据包过滤机制工作的,所以它会对请求的数据包的包头数据进行分析,并根据我们预先设定的规则进行匹配来确定是否可以进入主机。
数据包的流向是从左向右的:


小结:

1、防火墙是层层过滤的,实际是按照配置规则的顺序从上到下,从前到后进行过滤的。
2、如果匹配上规则,即明确表明是阻止还是通过,数据包就不在向下进行匹配新规则了。
3、如果所有规则中没有明确表明是阻止还是通过,也就是没有匹配规则,向下进行匹配,直到匹配默认规则得到明确的阻止还是通过。
4、防火墙默认规则是所有的规则执行完才会执行的。
5、匹配上了拒绝规则也是匹配,这点要多注意。

1.4 iptables表(iptables)和链(chains)
描述完iptables术语后,相信大家对iptables的表和链有了初步的了解。默认情况下,Iptables根据功能和表的定义划分包含三个表,filter,nat,mangle,其中每个表又包含不同的操作链
下面的表格展示了表和链的对应关系:









1.5 iptables表和链工作的流程图
下面的这张图清晰的描绘了netfilter对包的处理流程



简化版为:



强调:上图可以用北京地铁1,2号线来描述:
1号线:主要是NAT功能
企业案例:1)局域网上网共享(路由和网关),NAT POSTROUTING
2) 外部IP和端口映射为内部IP和端口(DMZ功能),NAT PREROUTING
2号线:主要是filter功能,即防火墙功能FILTER INPUT FORWARD
企业案例:
1)主要应用就是服务器防火墙

欢迎关注运维自研堂订阅号,运维自研堂是一个技术分享平台,主要是运维自动化开发:linux、python、django、saltstack、tornado、bootstrap、redis、golang、docker、etcd等经验分享。

  • CentOS7 vs CentOS 6的简单比较
  • CentOS7 Firewall防火墙详解
趁现在,关注我们 

牛人并不可怕,可怕的是牛人比我们还努力!
长按图片,识别加入我们!


    关注 DevOps


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册