Iptables 删除特定位置字符串的 HTTP 302 包

Iptables 删除特定位置字符串的 HTTP 302 包

我想要阻止的 HTTP 302 包有:

Header

HTTP/1.0 302 Moved Temporarily
Location: http://172.16.0.5/[***]
Content-Type: text/html;
Content-Length: 0
Connection: Close

我想通过匹配“来删除所有这些包http://172.16.0.5/“在我的 OpenWRT 路由器上。

现在我正在-m string --algo bm --string "HTTP/1.1 302 "使用https://unix.stackexchange.com/a/229967/38666要阻止所有 302 包,我怎样才能将其限制为“http://172.16.0.5/“ 仅有的 ?

答案1

如果数据包来自 172.16.0.5 您可以使用

-m string --algo bm --string "HTTP/1.1 302 " --source 172.16.0.5 

否则再次使用字符串匹配

-m string --algo bm --string "HTTP/1.1 302 " -m string --algo bm --string "172.16.0.5"

另外我建议你使用“--algo kmp”而不是“bm”,因为我经历过的 bm 算法可能会丢失一些包。

并且不要忘记,如果您还需要一些性能,则字符串匹配规则的成本很高。

相关内容