- 论坛徽章:
- 0
|
目前想写个内核模块实现对外面过来的访问,限制部分ip浏览部分url
其实现在问题还不在于程序,而是内核模块加载问题
我现在写了个最简单的程序,只要是tcp包就丢弃,挂在local_out的点上,按理说不能上网了,但一点用没有
make成功,insmod也没问题,还缺什么步骤吗,刚接触这个不久,希望大家多帮忙
代码如下
#define __KERNEL__
#define MODULE
#include <linux/module.h>
#include <linux/skbuff.h>
#include <linux/ip.h>
#include <linux/netfilter_ipv4.h>
static unsigned int sample(unsigned int hooknum,struct sk_buff **skb,
const struct net_device *in,
const struct net_device *out,int (*okfn)(struct sk_buff *))
{
struct iphdr *iph;
struct sk_buff *sb = *skb;
iph= ip_hdr(sb); //2.6的内核
printk("sample function success"); //系统日志里没打印
if(iph->protocol==6){
printk("TCP DROP"); //系统日志里没打印
return NF_DROP;
}
return NF_DROP;
}
static struct nf_hook_ops iplimitfilter
={ {NULL,NULL} ,sample,PF_INET,NF_IP_LOCAL_OUT,NF_IP_PRI_FILTER-1}; //优先级应该没错吧
int init_module(void)
{
printk("Load"); //系统日志里有打印
return nf_register_hook(&iplimitfilter);
}
void cleanup_module(void)
{
printk("Unload"); //系统日志里有打印
nf_unregister_hook(&iplimitfilter);
} |
|