使用NetFilter进行了数据包过滤



我正在通过检测一些"不良"数据包来实现数据包过滤机制,并在路由器上有大量数据包时适当地将它们丢弃。我正在使用Linux网络堆栈并使用NetFilter钩进行实施在这方面,我想操纵数据包接收队列以"标记"数据包,并可能丢弃这些不良数据包。我如何操纵数据包接收队列。从基本上讲,我想将所有"坏"数据包放在接收队列中。使用libnetfilter_queue api的帮助吗?

基于我的知识,目前没有(简单)删除数据包已排队的方法。当我需要与您类似的事情时,我去了两种方法之一。

1)最早可能的便利性(例如在表Taw,然后在预处理中)标记了我的数据包,然后在通过后面的表格时将它们丢弃。为了检测标记,请在您的下降规则中添加" -m标记 - 标记"。

2)使用nfqueue目标将数据包发送到用户空间(或相关信息),然后在此处进行过滤。要在用户空间中处理数据包,我推荐libnetfilter_queue

最新更新