当前位置: 技术问答>linux和unix
请教前辈们关于netfilter/iptables的问题
来源: 互联网 发布时间:2016-01-23
本文导语: 小弟正在学习netfilter/iptables的相关东西,苦于基础概念不清楚,求助一下: netfilter是嵌入内核框架中的,用iptables在用户空间调整好规则防火墙就可以工作了, 但是如果自己编写一个模块完成那些规则的...
小弟正在学习netfilter/iptables的相关东西,苦于基础概念不清楚,求助一下:
netfilter是嵌入内核框架中的,用iptables在用户空间调整好规则防火墙就可以工作了,
但是如果自己编写一个模块完成那些规则的话,也能完成类似的任务,
那么这两者之间是什么关系?谁更好一点呢?
先谢谢了!
netfilter是嵌入内核框架中的,用iptables在用户空间调整好规则防火墙就可以工作了,
但是如果自己编写一个模块完成那些规则的话,也能完成类似的任务,
那么这两者之间是什么关系?谁更好一点呢?
先谢谢了!
|
我们可以不用iptables,自己通过编写代码挂钩子函数,判断包的相关字段,进行过滤,内核是通过定好的钩子返回值来决定该包是否被过滤
|
iptables是Linux 内核中netfliter框架提供给用户的一个接口,netfilter是很强大的,完全嵌入到Linux内核中的,在TCP/IP 协议栈处理数据的过程中,进行用户自定义的数据处理.
从理论上来讲,iptables做的数据包的过滤已经是足够了.不过你仍然可以编写自己的类似iptables的程序,而且实现起来很简单,因为netfilter把接口都提供好了.
netfilter提供了五个地方,你可以在这些地方进行数据处理,用nf_register_hook函数,你就可以注册一个地方,把所有经过这个地方的数据进行处理,这些数据都在skb->data里.你可以做任何的处理.
从理论上来讲,iptables做的数据包的过滤已经是足够了.不过你仍然可以编写自己的类似iptables的程序,而且实现起来很简单,因为netfilter把接口都提供好了.
netfilter提供了五个地方,你可以在这些地方进行数据处理,用nf_register_hook函数,你就可以注册一个地方,把所有经过这个地方的数据进行处理,这些数据都在skb->data里.你可以做任何的处理.