【问题标题】:Packet Filtering using Netfilter使用 Netfilter 进行数据包过滤
【发布时间】:2012-11-12 06:07:41
【问题描述】:

我正在通过检测一些“坏”数据包并在路由器上出现数据包过载时适当地丢弃它们来实现数据包过滤机制。 我正在使用 Linux Network Stack 并使用 netfilter 挂钩来实现 在这方面,我想操纵数据包接收队列来“标记”数据包并可能丢弃那些坏数据包。 如何操作数据包接收队列。基本上我想丢弃接收队列中的所有“坏”数据包。 会使用 libnetfilter_queue api 的帮助吗?

【问题讨论】:

    标签: filtering packet netfilter


    【解决方案1】:

    据我所知,目前没有(简单的)方法可以丢弃已经被内核排队的数据包。当我需要与您类似的东西时,我会选择两种方法之一。

    1) 尽早标记我的数据包(例如在表 taw 中,然后在 PREROUTING 中),然后在它们通过以后的表时丢弃它们。为了检测标记,请将“-m mark --mark YOUR MARK HERE”添加到您的 DROP 规则中。

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

    【讨论】:

    • 非常感谢您的建议。是否有任何示例代码/URL 可以让我有效地理解 libnetfilter_queue ?
    • API 非常小,所以没什么大不了的。但here 就是一个例子。
    猜你喜欢
    • 2015-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-19
    • 2021-11-13
    • 2012-08-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多