![如何使用 iptables 阻止包含字符串的子域](https://linux22.com/image/214364/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20iptables%20%E9%98%BB%E6%AD%A2%E5%8C%85%E5%90%AB%E5%AD%97%E7%AC%A6%E4%B8%B2%E7%9A%84%E5%AD%90%E5%9F%9F.png)
我已经知道如何阻止包含指定字符串的域
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