深入理解 netfilter 和 iptables!( 五 )


rule:对应上文中 ipt_entry 、 ipt_entry_match 和 ipt_entry_target ,定义了对数据包的匹配规则以及匹配后执行的行为 。
match:具有很强扩展性的自定义匹配规则 。
target:具有很强扩展性的自定义匹配后行为 。
基于上文介绍的代码调用过程流程,chain 和 rule 按如下示意图执行:

深入理解 netfilter 和 iptables!

文章插图
iptables-chains
对于 iptables 具体的用法和指令本文不做详细介绍,可参考 Iptables Essentials: Common Firewall Rules and Commands | DigitalOcean[5]。
conntrack
仅仅通过 3、4 层的首部信息对数据包进行过滤是不够的,有时候还需要进一步考虑连接的状态 。netfilter 通过另一内置模块 conntrack 进行连接跟踪(connection tracking),以提供根据连接过滤、地址转换(NAT)等更进阶的网络过滤功能 。由于需要对连接状态进行判断,conntrack 在整体机制相同的基础上,又针对协议特点有单独的实现 。
本来打算继续介绍 conntrack 和 NAT,但考虑到篇幅过长遂作罢,感兴趣的读者推荐阅读 连接跟踪(conntrack):原理、应用及 Linux 内核实现[6]。
参考链接
netfilter.h - include/linux/netfilter.h - Linux source code (v2.6.39.4) - Bootlin[7]
Network_stack.pdf[8]
Linux netfilter Hacking HOWTO[9]
Linux Kernel Networking: Implementation and Theory - Chapter 9: Netfilter[10]
Netfilter framework providing hooks system for Nftables[11]
A Deep Dive into Iptables and Netfilter Architecture | DigitalOcean[12]
连接跟踪(conntrack):原理、应用及 Linux 内核实现[13]
Netfilter hooks - nftables wiki[14]
Iptables Essentials: Common Firewall Rules and Commands | DigitalOcean[15]
Comparing kube-proxy modes: iptables or IPVS?[16]
Linux Conntrack: Why It Breaks Down and Avoiding the Problem[17]
走进 Linux 内核之 Netfilter 框架 - 掘金[18]
19.3 The Netfilter Architecture of Linux 2.4 | Linux Network Architecture[19]
引用链接
[1]
net/ipv4/ip_forward.c :
[2]
iptable_filter.c:
[3]
iptable_filter_hook:
[4]
ipt_do_table:
[5]
Iptables Essentials: Common Firewall Rules and Commands | DigitalOcean:
【深入理解 netfilter 和 iptables!】[6]
连接跟踪(conntrack):原理、应用及 Linux 内核实现: 优先级
[7]
netfilter.h - include/linux/netfilter.h - Linux source code (v2.6.39.4) - Bootlin:
[8]
Network_stack.pdf:
[9]
Linux netfilter Hacking HOWTO:
[10][11]
Netfilter framework providing hooks system for Nftables: /
[12]
A Deep Dive into Iptables and Netfilter Architecture | DigitalOcean:
[13]
连接跟踪(conntrack):原理、应用及 Linux 内核实现: 优先级
[14]
Netfilter hooks - nftables wiki:
[15]
Iptables Essentials: Common Firewall Rules and Commands | DigitalOcean:
[16]
Comparing kube-proxy modes: iptables or IPVS?: /
[17]
Linux Conntrack: Why It Breaks Down and Avoiding the Problem: /
[18][19]
19.3 The Netfilter Architecture of Linux 2.4 | Linux Network Architecture: /
原文链接:/
- EOF -
加主页君微信,不仅Linux技能+1
主页君日常还会在个人微信分享 Linux相关工具、资源和 精选技术文章,不定期分享一些 有意思的活动、 岗位内推以及 如何用技术做业余项目
加个微信,打开一扇窗
点击标题可跳转
1、 AI 帮写代码,每月 67 元!
2、 Golang 事件系统 Event Bus
3、 太方便了!这款开源终端工具可查询 IP 信息 ...
看完本文有收获?请分享给更多人
推荐关注「Linux 爱好者」,提升Linux技能


以上关于本文的内容,仅作参考!温馨提示:如遇专业性较强的问题(如:疾病、健康、理财等),还请咨询专业人士给予相关指导!

「辽宁龙网」www.liaoninglong.com小编还为您精选了以下内容,希望对您有所帮助: