我有规则设置丢弃带匹配字符串的udp / tcp数据包。但是,我使用libpcap捕获数据包的程序仍能看到这个数据包。

为什么这个/,在libpcap看到之前丢弃数据包的iptable规则应该是什么?

在libpcap / tcpdump看到这个数据包之前,有没有iptables规则可能会丢弃它?

有帮助吗?

解决方案

是的,libpcap会查看所有数据包。。 它们在被netfilter处理之前被捕获。

其他提示

您是否尝试更改使用的netfilter挂钩的优先级?如果您尝试以最高优先级挂接传入数据包,它将在数据包套接字内核代码之前获取数据包,这是libpcap用于捕获数据包的方式。

*我假设你使用的是linux *

编辑: 根据操作系统,Libpcap使用不同的方式来捕获数据包。在linux上,它使用数据包套接字,使用netfilter框架在内核代码中实现。

没有办法让libpcap在netfilter之前看到数据包,netfilter是一个内核模块,并且在它们达到用户模式之前处理所有数据包,它甚至可以在内核看到数据包之前查看数据包。 你能解释一下吗? 它可能是libpcap也在netfilter上设置钩子,覆盖iptables中的钩子。真正的问题是,在netfilter上查找和设置哪些挂钩远非微不足道,而且只能在内核模式下完成。调查libpcap如何获取数据包。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top