Linux防火墙主要就行工作的部分在内核,这个模块叫NetFilter;我们平时配置的iptables是给我们的一个配置界面,我们通过iptables配置规则,配置之后,NetFilter通过这些规则来进行防火墙过滤等操作控制。

NetFilter模块:它是主要的工作模块,位于内核中,在网络层的五个位置(也就是防火墙四表五链中的五链)注册了一些钩子函数,用来抓取数据包;把数据包的信息拿出来匹配各个各个链位置在对应表中的

规则:匹配之后,进行相应的处理ACCEPT、DROP等等。

 

Linux防火墙 iptables基本原理 四表五链 NetFilter 概述_防火墙

 

 

四表五链:大家常说的iptables四表五链究竟是什么呢?其实只要理解了表和链究竟是做什么的 就很简单了。

链就是位置:共有五个 进路由(PREROUTING)、进系统(INPUT) 、转发(FORWARD)、出系统(OUTPUT)、出路由(POSTROUTING);

表就是存储的规则;数据包到了该链处,会去对应表中查询设置的规则,然后决定是否放行、丢弃、转发还是修改等等操作。

 

Linux防火墙 iptables基本原理 四表五链 NetFilter 概述_防火墙_02

 

我们在平时配置防火墙 主要用到表 就是filter和nat表

Filter表:用来处理是否放行

NAT表:实现数据包转发,修改源地址 端口 目标地址 端口,实现地址转换

 

 

Linux注册的五个钩子函数:

链是位置:对应钩子函数的位置:在对应位置检查

 

Linux防火墙 iptables基本原理 四表五链 NetFilter 概述_iptables_03

 

Linux防火墙 iptables基本原理 四表五链 NetFilter 概述_防火墙_04