我想阻止包含特定字符串的流量"anypattern"
。
我知道正确的 iptables 规则是:
iptables -m string --algo bm --string "anypattern" -j DROP
"anypattern"
问题是数据可能被拆分成许多 TCP 序列。并且存在字符串可能被拆分成 2 个数据包的风险。例如,数据包 1 将包含"anyp"
,而第二个数据包将包含"attern"
如何让 iptables 检测 TCP 碎片并检查最终的 TCP 负载?或者有解决此类问题的方法吗?
答案1
任何 iptables 规则都无法跨越多个数据包,它们以每个数据包为基础应用。在 iptables 处理数据包后,将多个数据包重新组装成一个整体有效负载在更高级别进行。