免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1938 | 回复: 9
打印 上一主题 下一主题

问个netfilter写内核模块的问题,较急,大家帮下忙 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-04-12 20:43 |只看该作者 |倒序浏览
目前想写个内核模块实现对外面过来的访问,限制部分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);
}

论坛徽章:
0
2 [报告]
发表于 2010-04-12 21:57 |只看该作者

论坛徽章:
0
3 [报告]
发表于 2010-04-13 15:29 |只看该作者
找到原因了,应该是
={ {NULL,NULL} ,sample,THIS_MODULE,PF_INET,NF_IP_LOCAL_OUT,NF_IP_PRI_FILTER-1};

论坛徽章:
0
4 [报告]
发表于 2010-04-13 16:12 |只看该作者
你这个不会导致死机?

论坛徽章:
0
5 [报告]
发表于 2010-04-13 16:21 |只看该作者
写模块多麻烦,-j QUEUE

论坛徽章:
0
6 [报告]
发表于 2010-04-13 16:48 |只看该作者
wokao死机了,怎么回事

论坛徽章:
0
7 [报告]
发表于 2010-04-13 17:01 |只看该作者
回复 5# langue


    放在用户态做吗,能否指点迷津,给点资料或例子

论坛徽章:
0
8 [报告]
发表于 2010-04-13 17:27 |只看该作者
回复 6# monkeygreg


    struct sk_buff *sb ;sb=skb;

论坛徽章:
0
9 [报告]
发表于 2010-04-13 18:34 |只看该作者
回复 7# monkeygreg

是在用户态,最简单的是用NF_QUEUE,你搜索libnetfilter_queue

论坛徽章:
0
10 [报告]
发表于 2010-04-13 23:54 |只看该作者
回复 6# monkeygreg


    难道楼主抓到arp报文了?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP