iptables 阻止包含特定字符串的碎片流

iptables 阻止包含特定字符串的碎片流

我想阻止包含特定字符串的流量"anypattern"

我知道正确的 iptables 规则是:

iptables -m string --algo bm --string "anypattern" -j DROP

"anypattern"问题是数据可能被拆分成许多 TCP 序列。并且存在字符串可能被拆分成 2 个数据包的风险。例如,数据包 1 将包含"anyp",而第二个数据包将包含"attern"

如何让 iptables 检测 TCP 碎片并检查最终的 TCP 负载?或者有解决此类问题的方法吗?

答案1

任何 iptables 规则都无法跨越多个数据包,它们以每个数据包为基础应用。在 iptables 处理数据包后,将多个数据包重新组装成一个整体有效负载在更高级别进行。

相关内容