问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

通过Linux内核协议栈netfilter拦截数据报文

发布网友 发布时间:2024-09-27 17:45

我来回答

1个回答

热心网友 时间:2024-10-04 00:06

通过内核模块的方式向netfilter框架注册钩子函数,实现简单的数据包转发调试,当有数据包经过Linux协议栈时,打印相关信息。目的在于熟悉netfilter框架的基础api,为后续开发防火墙等功能做准备。

netfilter简介:netfilter是由Rusty Russell提出的Linux 2.4内核防火墙框架,该框架既简洁又灵活,可实现安全策略应用中的许多功能,如数据包过滤、数据包处理、地址伪装、透明代理、动态网络地址转换(Network Address Translation,NAT),以及基于用户及媒体访问控制(Media Access Control,MAC)地址的过滤和基于状态的过滤、包速率*等。

网卡转发包流程:以下为网口收包到转发的流程,NF_HOOK位置为netfilter钩子。

netfilter框架流程:netfilter是Linux协议栈的一个子系统,用于数据报文的过滤。在路由器设备中,数据报文的来源和去向有很多场景。比如转发数据、本地发出的数据、访问设备本身的数据等,可以通过下图简单了解基本流程。

netfilter钩子注册:netfilter为通用的框架,Linux系统已经内建了常用的钩子。netfilter和iptables命令时密切相关的,iptables命令的最终实现是基于netfilter,比如filter表、nat表、mangle表的各个链的实现,都在netfilter源码中找到具体实现,这里就不一一讲解。

netfilter外部接口:我们可以通过以下接口注册和卸载钩子函数,在钩子函数中可以将数据报文解析出来进行处理,比如过滤。

接口列表注册结构体定义结构体参数说明hooknum可配置的值priority可配置的值:priority可以配置任意整数的,因为系统有默认的钩子,定义了一些参考值,我们开发过程中一般在系统priority的基础上进行加减操作,用于标记自己加入钩子的位置以下为系统定义的优先级。

下面我们写一个实例,通过打印数据包信息,看看数据包的走向 代码中,我们定义hook_ops数组,包含3个钩子实体 forward_hook、forward_hook2、local_in_hook,其中前两个为forward钩子,但挂载的优先级不一样,我们可以通过打印看到,优先级情况,而local_in_hook为访问设备本身的数据,通过ip地址我们可以很方便查看是否是我们想要的结果。

钩子实例ops注册实例编译运行:环境 代码:OpenWrt 19.07 或其他版本OpenWrt分支版本,linux内核5.4.xx版本 编译环境: ubuntu18 运行环境: OpenWrt系统(内核版本和编译模块版本一致) 编译 将源码包拷贝到OpenWrt package目录,make menuconfig选择kmod-netfilter_hook并保存。

编译完成后会在build_dir子目录生成netfilter_hook.ko文件,将该文件通过winscp工具传输到OpenWrt开发板(路由器)中 然后执行以下命令:

保证开发板能够通过wan口连接*,并接入一台pc到lan口,pc分别访问设备和*。

测试结果开源作品:github.com/destan19/Ope...
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果电脑电池充不进电苹果电脑充不进去电是怎么回事 苹果电脑不充电没反应苹果电脑充电指示灯不亮充不了电怎么办 狗狗更加忠诚护家、善解人意,养一只宠物陪伴自己,泰迪能长多大... 描写泰迪狗的外形和特点的句子 国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? Linux 驱动的内核适配 - DKMS 框架 雪佛兰服务维修部电话 Linux内核:字符设备驱动框架 梦见自己顺产生孩子寓意 已婚女人梦见自己顺产生孩子 上海至上饶的动车1天有几趟。 上海虹桥到上饶的G1359途经哪些站? hosthost定义 角标是什么意思? ...放上去没反应,返回是可以用的,就是指纹解锁没反应了?有懂得吗_百度... 指纹解锁不管用了怎么办啊? 三星c8手机密码忘了怎么解锁 抖音个体工商户和企业入驻有区别吗?区别在哪? 论文的上角标怎么打 企业入驻抖音小店需要对公账户吗?企业入驻有什么要求? 西门子冰箱怎么样啊?质量好吗? 冰箱那种品牌好用又耐用的呢 医生你好,因为我从小就爱哭所以形成重了眼袋,请问除了手术治疗能... 哭出眼袋怎么办 眼袋深,和经常哭有关系吗?如题 谢谢了 重庆雪佛兰4s店,重庆有没有雪佛兰的旗舰店 ...微信朋友圈里回复动态的表情旁边的桃心什么意思?我一直没搞懂_百度... gw4g15m是第几代 寻衅滋事罪致人轻伤已经和解还判刑吗? 寻衅滋事调解后还能被追究刑事责任吗 请问广州五山的那个建行是倒闭了吗? 羌塘无人区很可怕吗 距离广州龙洞最近的中国建设银行在哪里? 园田居周边配置 阿司匹林洗头的危害 广州天河区五山路茶山商铺38号怎么去? 天工大厦怎么样?好不好?值不值得买? 五山路大院怎么样?好不好?值不值得买? 慈溪室外室内环境净化哪家专业 浙江竹木纤维护墙板定制价格 水艺水艺的定义 上海中空纤维超滤膜组件 广西水艺环保科技有限公司怎么样? 湖北人工喷雾 挂烫机不通电、不出蒸汽或蒸汽指示灯未亮怎么办?