O sinalizador --syn é útil para verificar o tráfego TCP, mas o estado NEW pode ser usado para outros protocolos (incluindo TCP ) como UDP e ICMP . Eu posso dizer que NEW é mais geral do que a opção --syn TCP.
No manual do iptables, você pode ler:
NEW meaning that the packet has started a new connection,
or otherwise associated with a connection which has not seen packets in both directions
Por exemplo, uma solicitação de DNS corresponderá ao estado NEW , mas não corresponderá a uma regra com a opção --syn . Simplesmente, é um datagrama UDP.
Além disso, a opção --syn pode ser usada para checar a combinação de pacotes TCP com bad flags para soltá-los.
Além disso, você pode usar essas duas opções juntas para verificar os fluxos de NEW TCP sem --syn como primeiro pacote e soltá-los como:
$ sudo iptables -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "New not syn:"
Aqui, estamos adicionando esse tipo de pacote a uma cadeia definida pelo usuário chamada bad_tcp_packets a ser descartada / registrada, etc ...