iptables rejeitar-com tcp-reset sem sinalizador ACK

0

Eu criei a regra iptables:

iptables -I INPUT -p tcp --tcp-flags SYN,RST,ACK,FIN SYN --dport 10000 -j REJECT --reject-with tcp-reset

Mas, na verdade, o que acontece é rejeitar com sinalizadores RST, ACK.

É possível rejeitar apenas com o sinalizador RST definido?

Eu sei que em env normal isso não faz sentido, mas eu só tenho uma necessidade de fazer exatamente isso

    
por luzik 27.08.2018 / 12:49

1 resposta

0

Para descartar pacotes RST de entrada,

  iptables -I INPUT -p tcp --tcp-flags ALL RST,ACK  --dport 10000 -j DROP

Para eliminar pacotes RST,

  iptables -I OUTPUT -p tcp --tcp-flags ALL RST,ACK --dport 10000 -j DROP

FYR:

URL: link

Um RST / ACK não é um reconhecimento de um RST, o mesmo que um SYN / ACK não é exatamente um reconhecimento de um SYN. O estabelecimento de TCP, na verdade, é um processo de quatro vias: O início do host envia um SYN para o host de recebimento, que envia um ACK para esse SYN. O host receptor envia um SYN para o host inicial, que envia um ACK de volta. Isso estabelece comunicação de estado.

SYN --> 
    <-- ACK
    <-- SYN
ACK -->

Para tornar isso mais eficiente, o host receptor pode ACK o SYN e enviar seu próprio SYN no mesmo pacote, criando o processo de três vias que estamos acostumados a ver.

SYN -->
    <-- SYN/ACK
ACK -->

No caso de um RST / ACK, o dispositivo está reconhecendo os dados enviados no pacote anterior na seqüência com um ACK e notificando o remetente que a conexão foi fechada com o RST. O dispositivo é simplesmente combinando os dois pacotes em um, assim como um SYN / ACK. Um RST / ACK geralmente não é uma resposta normal no fechamento de uma sessão TCP, mas também não é necessariamente indicativo de um problema.

    
por 27.08.2018 / 14:25

Tags