iptables字符串匹配接受连接

时间:2014-01-08 00:01:08

标签: string matching iptables

我对iptables和字符串匹配有疑问。我读过的大部分内容都会丢弃符合规则的数据包。当我使用它时,iptables将删除与字符串“test”的任何连接

iptables -A INPUT  -p tcp --dport 80 -m string --string ! "test" --algo bm -j LOG --log-prefix ' INPUT TCP--- ' --log-level 4
iptables -A INPUT -p tcp --dport 80 -m string --string ! "test" --algo bm  -j DROP

因此,当我转到http://www.abc.com/?test时,连接将无法通过。

我想要做的是反过来,我可以使用字符串匹配来批准连接吗?

iptables -A INPUT  -p tcp --dport 80 -m string --string  "test" --algo bm -j LOG --log-prefix ' INPUT TCP--- ' --log-level 4
iptables -A INPUT -p tcp --dport 80 -m string --string  "test" --algo bm  -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j DROP

我想只允许连接到端口80,其中包含单词test,如下所示...... http://www.abc.com/?test

可以这样做吗?

感谢您的帮助, 高尔基体

1 个答案:

答案 0 :(得分:0)

他们正确地做这样的事情就是使用代理。有一种方法可以用iptables来做,但绝对不是最好的解决方案。

您不能允许与指定字符串的连接,因为在建立连接后将显示数据。因此,您必须为TCP握手启用所有数据包,然后您必须允许包含该字符串的数据包。使用此解决方案,您将获得一个破损连接的大列表:)