Quando um cliente envia um pacote RST, o servidor fecha a conexão?

1

O que estou tentando fazer é bloquear os ataques RST com o IPTables.
Quando faço uma pesquisa, vejo regras em que os pacotes com o sinalizador RST estão sendo limitados. Estou questionando isso um pouco. Eu acho que eu preciso avaliar o limite RST / ACK e não RST
Se não me engano, quando um cliente decide anular uma conexão existente, um pacote RST / ACK será recebido pelo servidor e o servidor responde com ACK e fecha a conexão.
Então, normalmente um servidor nunca recebe ou envia pacotes RST. Acho que é sempre RST / ACK
A menos que um cliente esteja sendo falsificado e o invasor insira o sinalizador RST.
Mas por que isso fecharia a conexão?
Eu provavelmente estou errado porque estou vendo em todos os lugares que eu olho, mas eu acho que um invasor precisa inserir RST / ACK, isso não está correto?
Um servidor não consegue ver a diferença entre RST / ACK e RST sem ACK?

    
por Kris 22.04.2012 / 22:54

1 resposta

1

O RST é enviado para sinalizar um final de conexão anormal. O sinal normal para terminar uma conexão é FIN.
Ambos os lados de uma conexão TCP / IP podem enviá-los. O lado do receptor deve responder com um ACK, então o remetente sabe que está tudo bem, senão ele reenviará o sinal de novo e de novo até o tempo limite ou até receber um ACK.

Se você filtrar a taxa na qual o servidor pode receber o RST, não será necessário filtrar o ACK, pois ele só enviará o ACK uma vez para cada RST. E você não precisa filtrar o ACK recebido porque essa não é a ameaça.
Como um servidor raramente recebe o RST na operação normal, é comum deixar cair a maioria deles.
Quando um RST real é enviado por um host externo, ele tem, digamos, 75% de chance de ser descartado. Então o servidor nunca envia um ACK. Então o host envia de novo e de novo, até passar pelo filtro. Então o servidor envia o ACK e voila.

O sinal RST usado no ataque contém endereço IP de origem forjado, com a intenção de descartar uma conexão existente. Este ataque foi inventado por volta de 2003/2004. É eficiente somente quando o alvo tem uma grande largura de banda, porque o invasor deve tentar milhões de endereços IP + números de seqüência para o ataque ter sucesso.
Como o RST falso contém endereço IP aleatório + número de seqüência aleatório, limitar sua taxa é uma maneira de reduzir as chances de um RST falso corresponder a uma conexão real.
Portanto, esse ataque é usado principalmente quando o invasor sabe quem está conectado a quem. Em uma linha T1, quando o invasor sabe exatamente qual endereço IP de origem deve ser descartado, o ataque leva apenas de 5 a 30 segundos (se a linha estiver totalmente livre, caso contrário o ataque demorará mais. Por exemplo, se a linha estiver ocupada 50%, o tempo é dobrado). Se você classificar limitá-los, isso pode levar muito mais tempo.

    
por 22.04.2012 / 23:36