如何使用 iptables 阻止包含字符串的子域

如何使用 iptables 阻止包含字符串的子域

我已经知道如何阻止包含指定字符串的域

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 配置保存在 /etc/iptables/rules.v[4(ipv4);6(ipv6)]

不幸的是,虽然这会阻止在其(顶级)域中包含该字符串的网站此配置似乎不会阻止网站,其子域包含匹配的字符串(所以速度测试网会被阻止,但不会https://search.brave.com/search?q=test

我也愿意接受其他方法,只要它们是低级别的(又名不需要非标准软件或 GUI 应用程序)并且与Linux兼容(或者更好的是跨平台)

答案1

--算法bm

它从内核 5.1 左右开始就被破坏了,不适用于当前的 6.2.15。使用--algo kmp

https://github.com/ooni/probe/issues/1641
https://bugzilla.netfilter.org/show_bug.cgi?id=1390
https://marc.info/?l=netfilter-devel&m=168552032530976&w=2

相关内容