nftables 支持字符串匹配支持

nftables 支持字符串匹配支持

Iptables 可以通过字符串匹配数据包。

DNS 示例:

iptables -A INPUT -i eth0 -p udp --dport 53 -m string --hex-string "|09|proxypipe|03|net" --algo bm -j DROP

如何在 nftables 中执行这样的匹配?

答案1

使用 nftables,你可以使用原始有效负载表达式语法(记录这里) 根据一块位的内容来匹配数据包。

因此,阻止查询的规则proxypipe.net如下:

meta l4proto udp udp dport 53 @th,160,120 0x0970726f787970697065036e657400 counter drop comment "block queries for proxypipe.net"

上述代码将从传输头(@th)的第 160 位开始抓取 120 位数据,并将它们与以下十六进制等效值进行比较:|09|proxypipe|03|net

请注意,与 iptables 版本不同,上面的版本只会匹配proxypipe.net数据包中的固定位置。这意味着它不会阻止foobar.proxypipe.net或任何其他子域。

相关内容