O --synsinalizador é útil para verificar o tráfego TCP, mas o NEWestado pode ser usado para outros protocolos (incluindo TCP) como UDPe ICMP. Posso dizer que NEWé mais geral que a --synopção 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
Um exemplo, uma solicitação DNS corresponderá ao NEWestado, mas não corresponderá a uma regra com a --synopção Simplesmente, é um datagrama UDP.
Além disso, a --synopção pode ser usada para verificar se há pacotes TCP com combinação de sinalizadores inválidos para eliminá-los.
Além disso, você pode usar essas duas opções juntas para verificar os NEWfluxos TCP sem --syno primeiro pacote e descartá-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 esses tipos de pacotes a uma cadeia definida pelo usuário chamada bad_tcp_packetspara ser descartada / registrada, etc ...