9.1.2 iptables防火墙内核模块

本文介绍了iptables防火墙的内核模块结构,包括netfilter框架下的数据包处理流程、过滤表、NAT表及mangle表的功能。阐述了INPUT、FORWARD、OUTPUT、PREROUTING、POSTROUTING等链的作用及其在数据包处理过程中的位置。
摘要由CSDN通过智能技术生成

9.1.2  iptables防火墙内核模块

netfilter框架为内核模块参与IP层数据包处理提供了很大的方便,内核的防火墙模块正是通过把自己的函数注册到netfilter的钩子函数这种方式介入了对数据包的处理。这些函数的功能非常强大,按照功能来分的话主要有4种,包括连接跟踪、数据包过滤、网络地址转换(NAT)和对数据包进行修改。其中,NAT还分为SNATDNAT,分别表示源网络地址转换和目的网络地址转换,内核防火墙模块函数的具体分布情况如图9-3所示。

由图9-3可以看出,防火墙模块在netfilterLOCAL_INFORWARDLOCAL_OUT 3个位置分别注册了数据包过滤函数,数据包经过这些位置时,防火墙模块要对数据包进行过滤。这三个位置也称为三条链,名称分别为INPUTFORWARDOUTPUT,它们共同组成了一张过滤表,每条链可以包含各种规则,每一条规则都包含0个或多个匹配以及一个动作。当数据包满足所有的匹配时,则过滤函数将执行设定的动作,以便对数据包进行过滤的。

9-3  iptables防火墙内核模块结构框架图

%注意:这些规则的次序是很重要的,过滤函数对数据包执行了某一规则动作后,对数据包的处理即告结束,即使这个数据包还满足后面其他规则的所有匹配,也不会执行那些规则所设定的动作。

从图9-3中可以看出,除了过滤表以外,在PRE_ROUTINGLOCAL_OUTPOST_ ROUTING 3个位置各有一条有关NAT的链,名称分别为PREROUTINGOUTPUTPOSTROUTING,它们组成了NAT表。NAT链里面也可以包含各种规则,它指出了如何对数据包的地址进行转换。

此外,5个钩子函数位置的mangle链还组成了一张mangle表,这个表的主要功能是根据规则修改数据包的一些标志位,例如TTLTOS等,也可以在内核空间为数据包设置一些标志。防火墙内的其他规则或程序(如tc等)可以利用这种标志对数据包进行过滤或高级路由。

以上介绍的是iptables防火墙的内部结构,Linux系统还提供了iptables防火墙的用户接口,它可以在上述各张表所包含的链中添加规则,或者修改、删除规则,从而可以根据需要构建自己的防火墙。具体来说,用户是通过输入iptables命令来实现上述功能的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值