【问题标题】:iptable rule to drop packet with a specific substring in payloadiptable 规则以丢弃有效载荷中具有特定子字符串的数据包
【发布时间】:2010-10-23 22:52:41
【问题描述】:

我正在尝试编写规则来丢弃任何数据包,无论它是传出的、传入的还是被转发的,它在 TCP 或 UDP 有效负载中具有特定的子字符串。

我应该怎么做?

【问题讨论】:

    标签: linux linux-kernel iptables


    【解决方案1】:

    您需要一个启用了 Netfilter "String match support" 的编译内核。

    那你就可以了

    iptables -A INPUT -m string --algo bm --string "test" -j DROP
    iptables -A OUTPUT -m string --algo bm --string "test" -j DROP
    iptables -A FORWARD -m string --algo bm --string "test" -j DROP
    

    检查结果

    iptables -L
    

    【讨论】:

    • 嗨,我使用的是 ubuntu 内核 2.6.8.11 内核。我正在尝试使用 libpcap 库在应用层编写一些蠕虫过滤实用程序。我设置了上述规则,但仍然无法丢弃数据包。我需要为 iptables 安装字符串匹配支持还是默认存在。有什么方法可以检查吗?
    • 如果模块不存在,iptables 命令会报错,例如“无法打开共享对象文件:没有这样的文件或目录”。您可以使用日志记录规则来查看数据包是否与规则匹配,例如: iptables -A INPUT -m string --string "test" -j LOG --log-level info --log-prefix "iptables-string-匹配”
    • iptables -A 追加,你可能想使用 -I 选项在链的顶部插入或者指定一个点来插入规则;规则是按顺序评估的,在某些情况下,它可能不会产生您期望的结果。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-19
    • 2014-12-20
    • 1970-01-01
    • 2013-06-14
    • 2019-05-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多