iptables NOVAS conexões vs. --syn

8

Qual é a diferença entre:

iptables ... -m state --state NEW

e

iptables ... --syn

O primeiro deve selecionar NOVAS conexões, mas as novas conexões do AFAIK são feitas através do envio de um sinalizador de sincronização TCP. O outro significa exatamente isso - pacotes com um sinalizador syn.

Você pode dar algum exemplo prático quando os comandos acima retornam resultados diferentes?

    
por wanson 07.12.2011 / 15:20

1 resposta

5

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 ...

    
por 07.12.2011 / 15:31