Linux-Netfilter&iptables实现机制的分析及应用

来源:百度文库 编辑:神马文学网 时间:2024/04/29 12:38:18

8.
扩展模块的应用

通过前面的描述,可以看出扩展一个匹配模块需要做的工作。下面以扩展匹配模块为例,扩展动作模块的操作类似,主要包括以下内容:
用户空间:
(1).定义一个iptables_match模块并初始化相应的参数值,在模块的加载函数中调用register_match()iptables_match模块注册到全局链表iptables_matches中;
(2).定义用户态与内核态共用的数据结构ipt_XX_info,其主要用于交互数据;
内核空间:
(1).定义一个ipt_match模块并初始化相应的参数值,在模块的加载函数中调用xt_register_match()ipt_match模块注册到xt_af的相应链表中;
当完成前面的工作后,就需要修改程序的编译文件及内核配置文件,以目前我分析的内核版本2.6为例,则需要修改如下文件:
(1).iptables/extensions/Makefile文件的PF_EXT_SLIB中新加模块名XX
(2).linux/net/ipv4/netfilter/Makefile中新加一行:obj-$(CONFIG_IP_NF_MATCH_XX) += ipt_XX.o

(3).linux/net/ipv4/netfilter/Kconfig中新加以下行:


config IP_NF_XX


tristate "……"


depends on ……


help



…...




To compile it as a module, choose M here.
If unsure, say N.


完成以上步骤后,重新配置内核并选取该模块,编译后即可使用该扩展模块了。


9.
总结
本文主要目的是分析netfilter/iptables实现机制的大框架,很多细节问题并未涉及到,希望通过此分析文档对进一步了解该机制提供帮助,并为使用该机制提供指导。由于自身水平有限,其中存在的问题望读者谅解并不吝指正。