Básico do tcpdump
O tcpdump também permite o uso de filtros como de tal ip, para porta x, protocolo x. Lembrando que o tcpdump deve ser executado como root.
Bom deixe-me mostrar a sintaxe básica, depois algo mais refinado. Com um comando tipo esse:
# tcpdump -i eth0
Você terá a lista de pacotes passando por sua interface eth0. Entender a saída do programa não é muito confortável no começo, exige uma boa leitura do manual do tcpdump e também conhecimento do tcp. Mas basicamente é algo como:
origem.porta > destino.porta: flags (nº sequência de dados) …
Eu realmente recomendo uma boa lida no manual do tcpdump se você quiser endenter cada detalhe da saída.
O parâmetro -i pode receber também a opção any que faz o tcpdump capturar pacotes em todas as suas interfaces de rede.
As principais opções de filtro no tcpdump são:
-n : Não faz a resolução dos nomes, mantendo origem, destino e porta como números.
host : Define um host específico, pode ser um ip ou um nome.
src : Define o host origem, pode ser ip ou nome.
dst : Define o host destino, pode ser ip ou nome.
-w : Escreve a saída em um arquivo, o nome do arquivo deve ser fornecido.
-r : Lê o tráfego que foi armazenado em um arquivo, nesse caso não é necessário ser root.
-s : Define, em bytes, o tamanho máximo dos pacotes que serão capturados. O padrão são 68 bytes que são suficientes para alguns protocolo, mas pode truncar (não capturar completamente) um pacote. Um bom número para ser definido é 1000.
Com essas opções já dá para