首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iptables / ebtables钩子函数,用于在接口或第二层上过滤

iptables / ebtables钩子函数,用于在接口或第二层上过滤
EN

Stack Overflow用户
提问于 2018-03-31 07:14:12
回答 1查看 601关注 0票数 2

我已经使用netfilter钩子函数来过滤/嗅探传出的IP数据包。我正在寻找过滤IP层和链路层之间的传出(从主机)数据包,以查看第二层信息,如-接口,MAC地址。我猜在地址解析之前,NF_INET_POSTROUTING不会像在ip_output()中调用的那样给出mac地址信息。

我查找了ebtables钩子函数,它们似乎与网桥输入/转发/输出相关。如果我理解的话,从本地tcp/ip传出的数据包不会通过网桥转发挂钩。有没有办法连接到Linux IP和链路层之间的数据包来过滤(丢弃或修改) ...?

EN

回答 1

Stack Overflow用户

发布于 2018-03-31 19:00:29

我不确定是否有一种通用的方法来连接它,但我想到了一些方法:

  • LD_PRELOAD套接字操作:为您自己的send(|to|msg)
  • Register实现提供一个共享库一个虚拟TAP接口,并将您的应用程序绑定到它
  • 在内核中注册一个虚拟接口,并将您的应用程序绑定到它

bonding驱动程序就是后者的一个例子。在幕后,它将出口流量分散到从属设备,并从这些设备收集入站流量。

我在我的uman驱动程序中尝试了这个。您可以通过DebugFS配置一个接口来进行微管理。绑定到uman0虚拟接口的任何应用程序都将使其出站流量通过uman_start_xmit,并通过uman_handle_frame进入流量,您可以在其中添加代码来决定是否转发/损坏/丢弃数据包。uman是我的学士学位论文的副产品,可能不适合生产使用(如果你让它更适合,欢迎拉请求:-)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49582584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档