Tcpdump: mudanças entre as edições
Linha 42: | Linha 42: | ||
===Captura de segmentos TCP=== | ===Captura de segmentos TCP=== | ||
A linha geral de um segmento TCP é a seguinte: | A linha geral de um segmento TCP é a seguinte: | ||
src > dst : flags [seq ack windows urgent | src > dst : flags [seq ack windows urgent options] | ||
O protocolo TCP é o responsável pelo serviço de transferência garantida da Internet. O src, o dst e as ''flags'' estão sempre presentes. Os outros campos dependem do tipo de conexão TCP. O significado destes parâmetros são: | O protocolo TCP é o responsável pelo serviço de transferência garantida da Internet. O src, o dst e as ''flags'' estão sempre presentes. Os outros campos dependem do tipo de conexão TCP. O significado destes parâmetros são: | ||
*src: maquina e porta de origem. | *src: maquina e porta de origem. | ||
Linha 48: | Linha 48: | ||
Quando não se especifica o parâmetro –n, o tcpdump converte, via DNS, o IP ao nome correspondente, o qual é apresenta na saída do tcpdump. | Quando não se especifica o parâmetro –n, o tcpdump converte, via DNS, o IP ao nome correspondente, o qual é apresenta na saída do tcpdump. | ||
*flags: São indicadas no cabeçalho TCP. Cujo significado depende exclusivamente da combinação em que aparecem: | *flags: São indicadas no cabeçalho TCP. Cujo significado depende exclusivamente da combinação em que aparecem: | ||
** | **'''.''' (ACK) Indica reconhecimento válido | ||
**R (RST) | **R (RST) Usada para restabelecer uma conexão | ||
**S (SYN) | **S (SYN) Usada para abertura de conexão | ||
**F (FIN) | **F (FIN) Usada para encerramento de conexão | ||
**U (URG) | **U (URG) Usado para indicar um dado urgente | ||
**P (PSH) | **P (PSH) Usada para indicar que o receptor deve passar imediatamente o dado para a camada aplicação. | ||
*seq: Equivale ao numero de | *seq: Equivale ao numero de sequência do primeiro byte de dados deste segmento tcp. O formato é o seguinte: | ||
**primeiro:último (sem incluir o último) | **primeiro:último (sem incluir o último) | ||
Significa que entre o primeiro e o último (sem incluir o último) existe um total de n bytes de dados, que aparecerá entre parênteses. Exceto quando existem segmentos com SYN, que também ocupam um numero de | Significa que entre o primeiro e o último (sem incluir o último) existe um total de n bytes de dados, que aparecerá entre parênteses. Exceto quando existem segmentos com SYN, que também ocupam um numero de sequência. | ||
**ack: É o numero de reconhecimento. Indica o numero seguinte de | **ack: É o numero de reconhecimento. Indica o numero seguinte de sequência que deseja receber. | ||
Em geral o tcpdump imprime os números de seq e ack de forma relativa. Isto é, mostra os números seq reais somente para os pacotes relativos à abertura de conexão. Para os demais pacotes são apresentados números relativos ao número de Bytes transmitidos (onde o primeiro segmento de dados recebe o número de | Em geral o tcpdump imprime os números de seq e ack de forma relativa. Isto é, mostra os números seq reais somente para os pacotes relativos à abertura de conexão. Para os demais pacotes são apresentados números relativos ao número de Bytes transmitidos (onde o primeiro segmento de dados recebe o número de sequência 1). Para fazer com que sejam impressos os números seq e ack absolutos, devemos utilizar a opção –S. | ||
*win: Tamanho da janela de recepção. | *win: Tamanho da janela de recepção. | ||
*urgent: Indica a existência de dados urgentes. | *urgent: Indica a existência de dados urgentes. |
Edição das 20h13min de 27 de março de 2015
Laboratório: Captura de pacotes com tcpdump
O tcpdump é um programa que permite capturar e analisar o tráfego de rede, e é executado a partir de um terminal. Por executar em um terminal, permite analisar tráfego em roteadores e outros dispositivos de rede a partir do acesso remoto (com SSH).
Em uma rede local, com os computadores conectados através de hubs ou switches, o tcpdump permite capturar todo o tráfego circulando.
Outro programa similar ao tcpdump é o wireshark, o qual dispõe de uma interface gráfica para facilitar a análise o tráfego de rede.
- Instalação
- Somente o administrador (usuário root) pode instalar o tcpdump.
- Para instalar, digite o comando:
sudo apt-get install tcpdump
Captura de pacotes com tcpdump
A captura de pacotes em modo promíscuo, captura qualquer pacote circulando na rede local.
Somente o administrador (usuário root) pode executar o tcpdump.
sudo tcpdump
Sem o uso de filtros e parâmetros de ajuste, o tcpdump se capturara todo o tráfego do adaptador de rede selecionado, o que dificulta a análise dos pacotes.
As páginas de manual do tcpdump trazem informações detalhadas do uso deste comando:
man tcpdump
Exemplos de filtros comuns para uso com tcpdump
- host
tcpdump host 200.17.101.9
- Seleciona todos os pacotes cuja origem ou destino sejam o host especificado.
tcpdump host src 200.17.101.9 and dst 192.168.10.50
- Seleciona os pacotes cuja origem e destino sejam os hosts especificados.
- Protocolo
tcpdump host 200.17.101.9 and tcp
- Seleciona todos os pacotes TCP cuja origem ou destino sejam o host especificado.
- Porta
tcpdump port 80
- Seleciona todo o tráfego Web
tcpdump host 200.17.101.9 and port 80
- Seleciona o tráfego Web cuja origem ou destino sejam o host especificado.
Captura de segmentos TCP
A linha geral de um segmento TCP é a seguinte:
src > dst : flags [seq ack windows urgent options]
O protocolo TCP é o responsável pelo serviço de transferência garantida da Internet. O src, o dst e as flags estão sempre presentes. Os outros campos dependem do tipo de conexão TCP. O significado destes parâmetros são:
- src: maquina e porta de origem.
- dst: maquina e porta de destino.
Quando não se especifica o parâmetro –n, o tcpdump converte, via DNS, o IP ao nome correspondente, o qual é apresenta na saída do tcpdump.
- flags: São indicadas no cabeçalho TCP. Cujo significado depende exclusivamente da combinação em que aparecem:
- . (ACK) Indica reconhecimento válido
- R (RST) Usada para restabelecer uma conexão
- S (SYN) Usada para abertura de conexão
- F (FIN) Usada para encerramento de conexão
- U (URG) Usado para indicar um dado urgente
- P (PSH) Usada para indicar que o receptor deve passar imediatamente o dado para a camada aplicação.
- seq: Equivale ao numero de sequência do primeiro byte de dados deste segmento tcp. O formato é o seguinte:
- primeiro:último (sem incluir o último)
Significa que entre o primeiro e o último (sem incluir o último) existe um total de n bytes de dados, que aparecerá entre parênteses. Exceto quando existem segmentos com SYN, que também ocupam um numero de sequência.
- ack: É o numero de reconhecimento. Indica o numero seguinte de sequência que deseja receber.
Em geral o tcpdump imprime os números de seq e ack de forma relativa. Isto é, mostra os números seq reais somente para os pacotes relativos à abertura de conexão. Para os demais pacotes são apresentados números relativos ao número de Bytes transmitidos (onde o primeiro segmento de dados recebe o número de sequência 1). Para fazer com que sejam impressos os números seq e ack absolutos, devemos utilizar a opção –S.
- win: Tamanho da janela de recepção.
- urgent: Indica a existência de dados urgentes.
- opções: Indica a existência de opções.
--Evandro.cantu (discussão) 11h12min de 27 de março de 2015 (BRT)