- 论坛徽章:
- 0
|
我是用Ubuntu系统的,如果各位高手用其他版本的话,也麻烦发发Makefile文件给我参考下,因为我对内核不了解,而Makefile也只有基本的了解。
程序代码如下:- #ifndef _KERNEL_
- #define _KERNEL_
- #endif
- #ifndef MODULE
- #define MODULE
- #endif
- #include <linux/module.h>
- #include <linux/sched.h>
- #include <linux/kernel.h>
- #include <linux/netdevice.h>
- #include <linux/ip.h>
- #include <linux/tcp.h>
- #include <linux/skbuff.h>
- #include <linux/proc.h>
- #include <linux/if.h>
- #include <linux/in.h>
- #include <linux/netifilter_ipv4.h>
- static unsigned int kill_port(unsigned int hooknum,
- struct sk_buff **skb,
- const struct net_device *in,
- const struct net_device *out,
- int (*okfn)(struct sk_buff*))
- {
- struct tcphdr *tcph;
- struct iphdr *iph;
- iph=(*skb)->nh.iph;
- if(iph->protocol==IPPROTO_TCP)
- {
- tcph=(*skb)->h.th;
- if(ntohs(tcph->source)==23)
- {
- printk("\nftp service refused");
- return NF_DROP;
- }
- return NF_ACCEPT;
- }
- struct nf_hook_op kill={
- .hook=kill_port,
- .owner=THIS_MODULE,
- .pf=PF_INET,
- .hooknum=NF_IP_LOCAL_OUT,
- .priority=NF_IP_PRI_FILTER,
- };
- int init_module(){
- nf_register_hook(&kill);
- return 0;
- }
- void cleanup_module(){
- nf_unregister_hook(
复制代码 我曾经写过一个Makefile文件,但是运行的时候出错了,错误如下:
怎么回事呢?我怀疑我的Makefile文件写错了,我是这么写的:- obj -m + =all_drop.o
- KERNELBUILD := /lib/modules/`uname -r`/build
- INC := /usr/include/
- default:
- make -I $(INC) -C $(KERNELBUILD) M=$(shell pwd) modules
- clean:
- rm -rf *.o *.ko .*.mod.c *.cmd .tmp_versions .*
复制代码 请XDJM们指点一下,不胜感激! |
|