有什么区别:
iptables ... -m state --state NEW
和
iptables ... --syn
第一个应该选择NEW连接,但是通过发送TCP syn标志来建立AFAIK新连接.
另一个意味着 – 具有syn标志的数据包.
当上述命令返回不同的结果时,你能给出任何实际的例子吗?
解决方法
–syn标志对于检查TCP流量很有用,但NEW状态可用于其他协议(包括TCP),如UDP和ICMP.我可以说NEW比–syn TCP选项更通用.
从iptables手册中,您可以阅读:
NEW meaning that the packet has started a new connection,or otherwise associated with a connection which has not seen packets in both directions
例如,DNS请求将与NEW状态匹配,但它与–syn选项的规则不匹配.简单来说,它是一个UDP数据报.
此外,–syn选项可用于检查具有坏标志组合的TCP数据包以丢弃它们.
此外,您可以同时使用这两个选项来检查新的TCP流,而不将–syn作为第一个数据包,并删除它们,如:
$sudo iptables -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "New not syn:"