Descartar pacotes com corda correspondente usando iptables cai todos os pacotes subsequentes com páreo

StackOverflow https://stackoverflow.com/questions/828884

  •  06-07-2019
  •  | 
  •  

Pergunta

Eu estou tentando escrever um verme filtragem utilidade na camada de aplicação.

Eu tenho a configuração seguinte regra para largar tcp pacote com substring específica.

iptables ENTRADA -A -p tcp -m corda --string "teste" GOTA -j --algo kmp

No entanto, uma vez que um pacote com correspondência string é encontrado todos os pacotes subsequentes, mesmo com cordas não correspondentes são descartados, até que eu lave a regra a partir iptable.

i gostaria de saber porque isso está acontecendo e qual é a solução para ele.

graças

Foi útil?

Solução

TCP está ligado protocolo fiável orientada que mantém a sequência de dados a ser enviada. ele continua tentando mudar a carga especial até chegar lá, então você não pode enviar outra carga útil subsequente, até a um mais velho é atingido, é por isso que você sente que todos os pacotes subsequentes estão sendo descartados.

Se você definir a regra semelhante para udp isso não vai acontecer, você será capaz de receber todos os pacotes subsequentes que não correspondem à cadeia. isso é porque o UDP é um sem conexão, protocolo não confiável.

Outras dicas

Um pouco mais tarde aqui, mas vendo as pessoas com problemas semelhantes. Uma maneira de contornar isso é fazer essa regra dentro da cadeia RAW. Todos os pacotes vai bater aqui antes de qualquer tipo de conntrack é colocado no pacote, portanto, é melhor para fazer a filtragem aqui.

iptables -A PREROUTING -t raw -p tcp -m string --string "test" -j DROP --algo kmp
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top