Como pode o tcpdump monitorar a desconexão TCP e registrar o timedate?

1

Eu tenho dois servidores, cada um executando um aplicativo Java que cria duas conexões TCP separadas, uma da HostA - > HostB e um de HostB - > HostA em portas separadas.

Foi-me dito que a conexão TCP foi perdida e restabelecida, mas o cliente não pode me fornecer a hora e a data de quando isso acontece.

Posso configurar o tcpdump no HostA para monitorar a porta específica apenas para me informar quando se desconectar? O mesmo para a conexão HostB? Eu não me importo com dados de carga, etc.

Eu olhei para a página do manual, encontrei alguns on-line, pesquisei no Google, etc. Eu não vi exemplos do que estou procurando. Obrigado se você puder ajudar.

    
por AaronG 14.12.2015 / 21:04

1 resposta

2

"Desconectar" no TCP, na verdade, envolve cada host dizendo "não tenho mais nada para enviar" e o outro host reconhecendo isso; quando ambos os hosts fizeram isso, a conexão é fechada. Veja Fechando uma conexão no RFC 793 .

Como Nath observou, uma conexão também pode ser forçosamente fechada com uma indicação de "reset".

Então, o que você está procurando são as FINs que indicam "não tenho mais nada a dizer" e os RSTs que indicam "não tenho uma conexão como essa". Você deseja executar o tcpdump com um filtro que procura tráfego para ou da porta específica e que tenha o sinalizador FIN definido. Com as versões atuais do libpcap / WinPcap, você poderia usar um filtro como

tcp port XXX and (tcp[tcpflags] & (tcp-fin|tcp-rst)) != 0

com XXX sendo o número da porta. Note que, para um fechamento limpo, isso irá capturar vários pacotes, já que cada lado tem que enviar uma indicação "Não tenho mais dados para enviar".

Infelizmente, isso não funcionará com o IPv6, apenas com o IPv4.

    
por 14.12.2015 / 21:35

Tags