我的 iptables 中有这条规则来阻止以 : 结尾的域.watch
:
sudo iptables -A OUTPUT -j DROP -m string --string ".watch" --algo kmp
但问题是.
无法匹配。所以上面的行不匹配任何东西。但是,如果我从中删除点.watch
,watch
它就可以了。
我怎样才能阻止点“。” 在 iptables 规则中?
我的 iptables 中有这条规则来阻止以 : 结尾的域.watch
:
sudo iptables -A OUTPUT -j DROP -m string --string ".watch" --algo kmp
但问题是.
无法匹配。所以上面的行不匹配任何东西。但是,如果我从中删除点.watch
,watch
它就可以了。
我怎样才能阻止点“。” 在 iptables 规则中?
从语法上讲,这似乎是正确的,但是您的方法不适合此目的。字符串补丁匹配数据包中任意位置的字符串:
watch
或.watch
任何地方的数据包。这很可能导致误报,甚至引入了新的拒绝服务攻击向量。bm
尽管匹配算法( Boyer–Moore & Knuth–Pratt–Morris)有相对较好的选择,kmp
但字符串过滤器的使用仍然是计算密集型的。该文档也明确警告这一点:
对于您要实现的目标,有更好的选择:
address=/watch/0.0.0.0
到它的配置中。