过滤或者拦截ARP包的方法

本文介绍了三种在Linux环境下过滤或拦截ARP数据包的方法。方法一是利用arp处理过程中的NF_ARP_IN, NF_ARP_OUT, NF_ARP_FORWARD三个hook点;方法二是修改内核中packet_type结构体的func成员,将自定义处理函数添加到hash表中;方法三是通过socket的PF_PACKET选项在用户层进行处理。" 139576014,15038057,AnyLabeling自动标注指南,"['图像标注', 'Python', '开发工具', '自动标注工具']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转载请注明出处

前几天有个需求,研究了一番如果要过滤或者拦截ARP数据包要怎么做呢?目前大概就研究出了三种方式,其中方式一,二都是在linux3.9下面研究的,不同内核版本,有些函数名称可能不一样

方法一:

大家都知道经典的netfilter的五个hook,具体是哪五个hook这里就不说了,网上随便一搜一大堆资料,但是想经过这5个hook,必须要从ip_rcv函数进入,才会走这5个hook的钩子函数,arp数据包是走arp_rcv 的,如下图所示,arp_rcv和ip_rcv是互斥的,只能走一个,那么如果要过滤或者拦截ARP数据包,就得考虑在arp_rcv 这边入手了,幸运的是在arp的处理过程中也有三个hook,分别是NF_ARP_IN,NF_ARP_OUT,NF_ARP_FORWARD,arptables命令的实现,就是在这三个地方下钩子的。这三个

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值