上篇我们看了netfilter的实现机制这篇来实现下netfilter模块实操一把。
为了注册一个钩子需要填充nf_hook_ops结构体,包括优先级钩子地点和钩子函数。然后调用nf_register_hook()函数
本DEMO实现将所有输入嘚UDP包丢弃。钩子函数为hook_func通过ip头的协议来指定,协议17就是表示此包是UDP包,如果将17改成1就会丢弃icmp包了
关于模块参数的导入,使用module_param
name是在模块Φ定义的变量名称,type是变量的类型perm是权限掩码。
另外nump是传入数组的数目是一个int指针。参数可以是以下类型:
可以在导入的时候修改模塊参数值: