初次使用netfilter,写了一个禁止ping命令的小程序
2015-12-23 18:19
716 查看
banping.c
makefile
target = banping
obj-m := $(target).o
KERNELDIR = /lib/modules/$(shell uname -r)/build
default:
$(MAKE) -C $(KERNELDIR) M=$(shell pwd)
install:
insmod $(target).ko
uninstall:
rmmod $(target).ko
clean:
rm -rf *.o *.mod.c *.ko
rm -rf Module.symvers .*cmd .tmp_versions
#include"linux/module.h" #include"linux/netfilter_ipv4.h" #include"linux/kernel.h" #include"linux/skbuff.h" #include"linux/ip.h" #include"linux/if_ether.h" #include"linux/if_packet.h" /*copyright statement*/ MODULE_LICENSE("Dual BSD/GPL"); static unsigned int nf_hook_out(unsigned int hooknum, struct sk_buff *skb, const struct net_device *in, const struct net_device *out, int (*okfn)(struct sk_buff*)) { struct sk_buff *sk = skb; struct iphdr *iph=ip_hdr(sk); if(iph->protocol==IPPROTO_ICMP) { return NF_DROP; }else { return NF_ACCEPT; } } static struct nf_hook_ops nfout= { .list = {NULL,NULL}, .hook = nf_hook_out, .hooknum = NF_INET_LOCAL_OUT, .pf = PF_INET, .priority = NF_IP_PRI_FIRST }; /*initialization module*/ static int __init banping_init(void) { nf_register_hook(&nfout); printk(KERN_ALERT"Banping module init\n"); return 0; } /*clear module*/ static void __exit banping_exit(void) { nf_unregister_hook(&nfout); printk(KERN_ALERT"Banping module exit\n"); } module_init(banping_init); module_exit(banping_exit); MODULE_AUTHOR("FEI FENG"); MODULE_DESCRIPTION("Ban ping"); MODULE_VERSION("0.0.1");
makefile
target = banping
obj-m := $(target).o
KERNELDIR = /lib/modules/$(shell uname -r)/build
default:
$(MAKE) -C $(KERNELDIR) M=$(shell pwd)
install:
insmod $(target).ko
uninstall:
rmmod $(target).ko
clean:
rm -rf *.o *.mod.c *.ko
rm -rf Module.symvers .*cmd .tmp_versions
相关文章推荐
- iOS微信支付开发
- 微信公众平台开发(76) 获取用户基本信息
- 微信公众平台开发(26) ACCESS TOKEN
- 微信开放平台开发(2) 微信登录
- 90后女生微信销售案例:预热和成熟
- 微信鼠标点击显示二维码代码
- 在内网运行系统在外网访问(可用于微信调试)
- 类似微信选择添加删除图片的demo
- 微信开放平台开发(1) 语义理解
- 微信公众平台开发(71)OAuth2.0网页授权
- 微信oauth慢的原因
- android小问题:keystore问题-微信支付-Android studio
- 微信JS-SDK 修改分享标题 分享图片
- 59.仿微信的图片浏览器
- 微信发送模板消息
- 微信开发一(获取用户基本信息)
- 微信SDK导入到Xcode中编译错误
- 微信公众平台的具体开发步骤…
- 微信公众平台的具体开发步骤…
- 微信因为图片分享不成功