Por que alguns pacotes tcp com o sinalizador RST são classificados como nova conexão de entrada?

0

Ao olhar através do meu log do iptables, eu continuo observando periodicamente as conexões de entrada com o sinalizador RESET sendo configurado a partir de alguns endereços IP dentro da rede do meu ISP. Este é um exemplo de tcpdump em uma dessas conexões:

22:18:13.026881 IP 192.168.1.2.43948 > XX.XX.X.103.443: Flags [S]  seq 3805987202     win 29200  options [mss 1460 sackOK TS val 3031189 ecr 0 nop wscale 7]  length 0  
22:18:13.032076 IP XX.XX.X.103.443 > 192.168.1.2.43948: Flags [S.]  seq 738249760  ack 3805987203  win 29200  options [mss 1460 nop nop sackOK nop wscale 6]  length 0     
22:18:13.032151 IP 192.168.1.2.43948 > XX.XX.X.103.443: Flags [.]   738249761  ack 1  win 229  length 0 
22:18:13.032415 IP 192.168.1.2.43948 > XX.XX.X.103.443: Flags [P.]  seq 3805987203:3805987396  ack 1  win 229  length 193 
22:18:13.036553 IP XX.XX.X.103.443 > 192.168.1.2.43948: Flags [.]   3805987396  ack 194  win 473  length 0 
22:18:13.042920 IP XX.XX.X.103.443 > 192.168.1.2.43948: Flags [.]  seq 738249761:738251221  ack 194  win 473  length 1460 
22:18:13.042979 IP 192.168.1.2.43948 > XX.XX.X.103.443: Flags [.]   738251221  ack 1461  win 251  length 0 
22:18:13.043133 IP XX.XX.X.103.443 > 192.168.1.2.43948: Flags [P.]  seq 738251221:738251809  ack 194  win 473  length 588 
....
22:20:10.652745 IP 192.168.1.2.43948 > XX.XX.X.103.443: Flags [.]   738254876  ack 5116  win 365  length 0 
22:21:09.649107 IP 192.168.1.2.43948 > XX.XX.X.103.443: Flags [P.]  seq 3805988348:3805988389  ack 5116  win 365  length 41 
22:21:09.657454 IP XX.XX.X.103.443 > 192.168.1.2.43948: Flags [P.]  seq 738254876:738254921  ack 1187  win 509  length 45 
22:21:09.657498 IP 192.168.1.2.43948 > XX.XX.X.103.443: Flags [.]   738254921  ack 5161  win 365  length 0 
22:21:09.657612 IP 192.168.1.2.43948 > XX.XX.X.103.443: Flags [P.]  seq 3805988389:3805988434  ack 5161  win 365  length 45 
22:21:09.657748 IP 192.168.1.2.43948 > XX.XX.X.103.443: Flags [FP.]  seq 3805988434:3805988465  ack 5161  win 365  length 31 
22:21:09.660431 IP XX.XX.X.103.443 > 192.168.1.2.43948: Flags [F.]  seq 738254921  ack 1187  win 509  length 0 
22:21:09.660467 IP 192.168.1.2.43948 > XX.XX.X.103.443: Flags [.]   738254922  ack 5162  win 365  length 0 
22:21:09.667156 IP XX.XX.X.103.443 > 192.168.1.2.43948: Flags [R]  seq 738254921     win 0  length 0 
22:21:09.667923 IP XX.XX.X.103.443 > 192.168.1.2.43948: Flags [R]  seq 738254921     win 0  length 0 
22:21:09.667971 IP XX.XX.X.103.443 > 192.168.1.2.43948: Flags [R]  seq 738254922     win 0  length 0 

O número de sequência tcp é contínuo. Não deve ser considerado como parte de uma conexão estabelecida usando a regra no iptables abaixo:

-A INPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT
    
por Question Overflow 15.05.2014 / 09:57

2 respostas

2

Um TCP Reset é um método não reconhecido de terminar uma conexão TCP. Normalmente reservado para o caso que algo deu errado e precisando de uma maneira rápida de começar de novo (após o RST).

Se no meio de sua conexão TCP, se você receber um RST do mesmo Protocolo, IP de Origem, Porta de Origem, IP de Destino, Porta de Destino (também conhecida como Cinco-Tupla), classifique esse pacote como sendo recebeu "dentro" da conexão estabelecida.

Se, no entanto, você for a entidade que está enviando o RST, instantaneamente você apagará suas informações de conexão após enviar o RST. Se, nesse ponto, a outra extremidade decidir enviar um TCP RST, ao recebê-lo, você não teria conhecimento do "Five-Tuple" específico (já que você acabou de remover esse conhecimento), então você consideraria o pacote que acabou de receber uma conexão "Nova" - que seria imediatamente removida de sua tabela de conexões novamente, já que é isso que deve ser feito em resposta a um pacote RST.

Então, em suma, para responder à sua pergunta. Sua máquina marcaria um pacote RST como uma nova conexão se não tivesse conhecimento prévio da conexão (também conhecida como a cinco tupla) na qual o RST foi enviado.

    
por 15.05.2014 / 18:21
1

Parece que o servidor está fechando a conexão com dificuldade.

Veja algumas informações sobre o TCP RST: TCP usa o bit RST (Reset) no cabeçalho TCP para redefinir um TCP conexão. As redefinições são enviadas adequadamente em resposta a um solicitação de conexão para uma conexão inexistente, por exemplo. O TCP receptor da redefinir anula a conexão TCP e notifica o aplicação [RFC793, RFC1122, Ste94].

Além disso, este tópico parece relacionado e pertinente: Qual é o motivo e como evitar o [FIN, ACK], [RST] e [RST, ACK]

    
por 15.05.2014 / 17:24

Tags