segunda-feira, 12 de janeiro de 2009

TCPDUMP - Com ele você pode muito...

A partir de hoje iniciarei uma sequência de posts sobre comandos e suas utilidades. Para iniciar nada melhor do que o TCPDUMP, poderosíssimo.

Para um bom administrador de redes linux é impressindível conhecer o comando tcpdump. Com ele é possível fazer dezenas de diagnósticos de rede e descobrir vários problemas, inclusive de cabeamento.


Nome: tcpdump

Definição: Mostra o tráfego de uma rede. Ele exibe a descrição do conteúdo de pacotes numa interface de rede que case com uma expressão booleana.

Sintaxe: tcpdump <opções> <dispositivo> <expressão>

Opções:

-A Imprime cada pacote em código ASCII.

-c Termina a execução após receber “n” pacotes.

-D Exibe a lista das interfaces de rede disponíveis no sistema e que o tcpdump é capaz de capturar pacotes. Esta opção associa um número a cada interface o qual pode ser usado no lugar do nome da mesma, ex: 1 - eth0, 2 – eth1, 3 – any, 4 – lo (loopback);

-i Recebe como parâmetro a interface ou o número associado a ela. Se especificado “any” captura pacotes de todas as interfaces porém, sem ser no modo promíscuo.

-n Não converte endereços em nomes. (endereços de host, número de portas, etc.)

-r Lê os pacotes a partir de um arquivo (que tenha sido criado com a opção -w).

-s Define o tamanho de cada pacote a ser capturado. É interessante utilizar o valor 1500 para que seja examinado o maior tamanho possível de pacote.

-t Não exibe o timestamp em cada linha.

-v Exibe a saída com mais detalhes.

-vv Exibe a saída com mais detalhes ainda.

-vvv Exibe a saída com informações ainda mais detalhadas.

-w Escreve os pacotes em um arquivo que pode ser lido posteriormente com a opção -r.

-x Exibe o conteúdo do pacote no formato hexadecimal.

-X Exibe o conteúdo do pacote nos formatos hexadecimal e ASCII.

expressão Seleciona quais pacotes serão exibidos. Se não for definida nenhuma expressão todos os pacotes serão exibidos. Do contrário somente os pacotes com os quais a expressão coincidir serão exibidos. A expressão consiste em uma ou mais premissas. As premissas usualmente consistem em um ID (nome ou número) precedido por um ou mais qualificadores.Existem três diferentes tipos de qualificadores:

type (tipo) Especifica host, net, port e portrange. Ex: 'host dragon', 'net 192.168', ' port 22', 'portrange 5000-5777'.

dir (direção) Indica a direção dos pacotes a serem capturados. Podem ser: src, dst, src or dst e src e dst, que significam respectivamente origem, destino, origem ou destino e origem e destino. Se nada for definido assume origem ou destino.

proto (protocolo) Define qual o tipo de protocolo será exibido. Os protocolos possíveis são: ether, fddi, tr, wlan, ip, ip6, arp, rarp, decnet, tcp e udp.


Exemplos:

#tcpdump -n -i eth0 -s 1500 -X host 192.168.0.110 -c 30 (Faz a captura de 30 pacotes do host 192.168.0.110 na interface eth0 sem resolver nomes com tamanho máximo de pacote de 1500 bytes exibindo o conteúdo dos pacotes nos formatos ASCII e Hexadecimal)


#tcpdump -i eth2 -t -vvv -s 1500 -A dst net 192.168 and not host 192.168.0.114 and not port ssh -w log.dump (Analisa o tráfego da interface eth2 e coleta os dados de pacotes com até 1500 bytes referentes à rede de destino 192.168.0.0 exceto o que se refere ao host 192.168.0.114 e a porta 22(ssh) com o máximo de detalhes sem exibir o timestamp e os grava no arquivo log.dump)

Nenhum comentário: