对iptables和netfilter概念的总结

本文详细介绍了iptables与netfilter的工作原理及其在Linux系统中的应用。包括iptables作为数据包过滤工具的作用,netfilter作为子系统提供的hook函数管理机制,以及二者在数据包过滤、网络地址转换等方面的具体工作流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考资料:

http://w.gdu.me/wiki/Linux/iptables_forward_internetshare.html

http://www.cnblogs.com/peteryj/archive/2011/07/24/2115602.html


一、iptables和netfilter

 1、什么是iptables

iptables:iptables是linux系统下网络数据包过滤的配置工具,是操作netfilter用的(要求linux版本号为2.4以上)。

2、什么是netfilter?

netfilter是Linux 2.4.x引入的一个子系统,它作为一个通用的、抽象的框架,提供一整套的hook函数的管理机制,使得诸如数据包过滤、网络地址转换(NAT)和基于协议类型的连接跟踪成为了可能。

3、iptables和netfilter的对比

netfilter是数据包到达网络接口时,说明网卡如何处理这个包。而iptables是进行改变或控制这个数据包的操作。

 二、细节

 1、数据包从进入到离开系统的流程

如图1。数据包从进入到离开系统,要经过PreRoute,Input,Forward,Output,PostRoute这五个阶段。每个阶段中包括了一些节点,每个节点就是一个过滤时机。当数据包行进到某个节点时,系统就是检测对应节点的过滤规则并进行过滤。

 

                                 图1


2、netfilter对包的处理流程

图2

3、netfilter的表

netfilter内部分为三个表: filter,nat和mangle,而每个表又有不同的操作链。

filter表:防火墙功能。

nat表:实现地址转换和端口转发功能。

mangle表:进行一些自定义的操作。

4、几个链的功能:

PREROUTING(DNAT):在这个链里面我们对包的操作是改变目的地址(或端口),这个链要放在路由(routing)之前,因为若让系统选好路之后再改变目的地址,那么选路就可能是错的。

FORWARD:分支转折。如果包的目的地是本机ip,那么包向上走,走入INPUT链处理,然后进入LOCAL PROCESS,如果非本地,那么就进入FORWARD链进行过滤

POSTROUTING:修改源ip地址。因为 internet上的N多个路由节点不会转发私有地址的数据包

 

总结:怎么控制包?

对包的控制是由我们在不同的链上面添加不同的规则来实现的。

附:iptables使用指南

https://www.frozentux.net/iptables-tutorial/cn/iptables-tutorial-cn-1.1.19.html#MANGLETABLE




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值