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)]

残念ながら、これは(トップレベル)ドメインにその文字列を含むサイトをブロックします。この構成は、サブドメインに一致する文字列を含むWebサイトをブロックしないようです。(だから速度テストネットワークブロックされますが、そうではありません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

関連情報