一、 前言
1、什么是Netfilter/iptales?
Netfilter是表(iptables)的容器
举个例子,如果把Netfilter看成是某小区的一栋楼。那么表(iptables)就是楼里的其中一套房子。这套房子“表”属于这栋楼“Netfilter”
2、什么是表(tables)?
表(tables)是链的容器,即所有的链(chains)都属于其对应的表(tables)
3、什么是链(chains)?
链(chains)是规则(policys)的容器。
二、 IPTABLES
1、容器:包含或者说属于的关系
2、Netfilter/iptables是表的容器,iptables包含的4个表(filter,NAT,MANGLE,RAW)
3、iptables的表(tables)又是链的容器,链chains:INPUT,OUTPUT,FORWARD,PREROUTING,POSTROUTING
4、链chains是规则容器:
5、规则Policy:一条条过滤的语句。
三、iptables工作流程
前面介绍已经提到,iptables是采用数据包过滤机制工作的,所以它会对请求的数据包的包头数据进行分析,并根据我们预先设定的规则进行匹配来确定是否可以进入主机。
数据包的流向是从左向右的:
- 小结:
* 1、防火墙是层层过滤的,实际是按照配置规则的顺序从上到下,从前到后进行过滤的。
* 2、如果匹配上规则,即明确表明是阻止还是通过,数据包就不在向下进行匹配新规则了。
* 3、如果所有规则中没有明确表明是阻止还是通过,也就是没有匹配规则,向下进行匹配,直到匹配默认规则得到明确的阻止还是通过。
* 4、防火墙默认规则是所有的规则执行完才会执行的。
* 5、匹配上了拒绝规则也是匹配,这点要多注意。
四、iptables表(iptables)和链(chains)
描述完iptables术语后,相信大家对iptables的表和链有了初步的了解。默认情况下,Iptables根据功能和表的定义划分包含三个表,filter,nat,mangle,其中每个表又包含不同的操作链
下面的表格展示了表和链的对应关系:
五、iptables表和链工作的流程图
下面的这张图清晰的描绘了netfilter对包的处理流程
简化版为:
强调:上图可以用北京地铁1,2号线来描述:
1号线:主要是NAT功能
企业案例:1)局域网上网共享(路由和网关),NAT POSTROUTING
2) 外部IP和端口映射为内部IP和端口(DMZ功能),NAT PREROUTING
2号线:主要是filter功能,即防火墙功能FILTER INPUT FORWARD
企业案例:
1)主要应用就是服务器防火墙