我对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
可以这样做吗?
感谢您的帮助, 高尔基体
答案 0 :(得分:0)
他们正确地做这样的事情就是使用代理。有一种方法可以用iptables来做,但绝对不是最好的解决方案。
您不能允许与指定字符串的连接,因为在建立连接后将显示数据。因此,您必须为TCP握手启用所有数据包,然后您必须允许包含该字符串的数据包。使用此解决方案,您将获得一个破损连接的大列表:)