测试环境为:
2 操作系统 ubuntu server 10.04 安装在 VirtualBox 上
iptables v1.4.4
已加载 ip_conntrack 模块
这些是我的测试规则:
$IPTABLES -A INPUT -p TCP -m state --state NEW -j LOG --log-prefix "[-IPT-]NEW:"
$IPTABLES -A INPUT -p TCP -m state --state ESTABLISHED -j LOG --log-prefix "[-IPT-]ESTABLISHED:"
$IPTABLES -A INPUT -p TCP -m state --state RELATED -j LOG --log-prefix "[-IPT-]RELATED:"
$IPTABLES -A INPUT -p TCP -m state --state INVALID -j LOG --log-prefix "[-IPT-]INVALID:"
使用
hping3 -c 1 192.168.0.1 -p 80 [flags combination]
我得到:
no flag INVALID
syn NEW
ack NEW
rst INVALID
fin INVALID
syn ack INVALID
syn rst INVALID
syn fin INVALID
ack rst INVALID
ack fin INVALID
rst fin INVALID
syn ack rst INVALID
syn rst fin INVALID
ack rst fin INVALID
syn ack rst fin INVALID
我读过更多的教程说netfilter看到的第一个数据包必须是新的(在用户领域)。我不明白我的电脑中是否有什么东西不能工作。
然后,在互联网上,有很多规则可以同时考虑连接状态和 tcp 标志。这些都是错的吗?原因很简单:如果他们丢弃了匹配 new 和 ! --syn,结果很痛苦……很多数据包通过“防火墙”(如果可以这样命名的话)
新版本的 iptables 是否有可能有不同的行为?
请问,如果你在你的电脑上得到同样的结果,你能确认我吗?thx,我会很感激的!