我设置了丢弃具有匹配字符串的udp/tcp数据包的规则。但是,我使用libpcap捕获数据包的程序仍然能够看到这个数据包。
为什么这是/,在libpcap看到之前丢弃数据包的iptable规则应该是什么?
除了iptables规则之外,是否有其他方法可以在libpcap/tcpdump看到此数据包之前将其丢弃?
发布于 2009-05-06 13:10:24
Yes, libpcap sees all the packets.。它们在被netfilter处理之前被捕获。
发布于 2016-06-06 00:08:29
您是否尝试更改您使用的netfilter钩子的优先级?如果您尝试以最高优先级挂钩传入数据包,它将在数据包套接字内核代码之前获取数据包,这是libpcap用来捕获数据包的方式。
我假设您使用的是 *
编辑: Libpcap根据操作系统使用不同的方式来捕获数据包。在linux上,它使用数据包套接字,这是使用netfilter框架在内核代码中实现的。
发布于 2009-06-03 04:55:10
libpcap没有办法在netfilter之前看到数据包,netfilter是一个内核模块,它在所有数据包进入用户模式之前处理它们,它甚至可以在内核看到它之前看到数据包。你能进一步解释一下吗?libpcap可能还会在netfilter上设置钩子,从而覆盖iptables中的钩子。真正的问题是,在netfilter上查找和设置钩子绝非易事,只能在内核模式下完成。调查libpcap如何获取数据包。
https://stackoverflow.com/questions/829455
复制相似问题