Comando de Tcpdump

Propósito

Tráfego de dumps em uma rede

Sintaxe

tcpdump [ -a ] [ -A ] [ -B buffer_size ] [ -d ] [ -D ] [ -e ] [ -f ] [ -l ] [ -K ] [ -L ] [ -M secret ] [ -r file ]][ -n ] [ -N ] [ -O ] [ -p ][ -q ] [ -Q [ -V ] ] [ -R ] [ -S ] [ -t ] [ -T ][ -u ] [ -U ] [ -v ] [ -x ] [ -X ] [ ' -c count ][ -C file_size ] [ -F file ] [ -G rotate_seconds ] [ -i interface ] [ -s snaplen ] [ -w file ][ -E addr ] [ -y datalinktype ][-z command ][-Z user ] [ expression ]

Descrição

O comando tcpdump imprime os cabeçalhos de pacotes em uma interface de rede que combinam com a expressão booleana. Você pode executar o comando com o sinalizador -w para salvar os dados do pacote em um arquivo para análise adicional. Você também pode executar o comando com o sinalizador -r para ler dados de um arquivo de pacotes salvos em vez de ler os pacotes a partir de uma interface de rede. Em todos os casos, apenas pacotes que correspondem à expressão são processados pelo comando tcpdump .

Se ele não for executado com a bandeira -c , tcpdump continua capturando pacotes até ser interrompido por um sinal SIGINT (geralmente control-C) ou um sinal SIGTERM (geralmente o comando kill(1) ). Se tcpdump for executado com a bandeira -c , ele captura os pacotes até que ele seja interrompido por um sinal SIGINT ou SIGTERM ou o número especificado de pacotes foi processado.

O comando tcpdump retorna as seguintes contagens após capturar todos os pacotes:
pacotes "recebidos por filtro"
Conta todos os pacotes independentemente de terem sido corresponsados pela expressão de filtro.
pacotes "eliminados por kernel"
O número de pacotes que foram eliminados, devido à falta de espaço tampão.

Primitivos Permitidos

host host de dst
True se o campo de destino IPv4/v6 do pacote for host, que pode ser um endereço ou um nome.
host src host
True se o campo de origem IPv4/v6 do packet for host.
host host
True se a origem ou destino do IPv4/v6 do pacote for host. Qualquer uma das expressões de host acima podem ser prependidas com as palavras-chave, ip, arp, rarp ou ip6 como em: ip host host que é equivalente a:
ether proto \ip and host host
Se host for um nome com vários endereços IP, cada endereço é verificado para uma correspondência.
ether dst ehost
True se o endereço de destino ethernet for ehost. Ehost pode ser um nome de /etc/ethers ou um número (ver ethers (3N) para formato numérico).
ether src ehost
True se o endereço de origem ethernet for ehost.
ether host ether
True se o endereço de origem ou destino ethernet for ehost.
host gateway
True se o pacote usado host como um gateway. Por exemplo, o endereço de origem ou destino ethernet foi host mas nem a fonte IP nem o destino IP foi host. Host deve ser um nome e deve ser encontrado tanto pelos mecanismos de resolução de endereço de host-to-para-IP da máquina (host name file, DNS, NIS, etc.) e pelo mecanismo de resolução de endereços-nome-para-Ethernet da máquina (/etc/ethers, e assim por diante). Uma expressão equivalente é ether host ehost e não host host que pode ser usado com nomes ou números para host /ehost. Esta sintaxe não funciona em configuração IPv6-enabled neste momento.
dst net net
True se o endereço de destino IPv4/v6 do pacote possui um número de rede de rede.
src net net
True se o endereço de origem IPv4/v6 do pacote possui um número de rede de rede.
rede líquida
True se o endereço de origem ou destino IPv4/v6 do pacote possui um número de rede de rede.
máscara líquida net máscara netmask
True se o endereço IP corresponde à net com a máscara de netmask específica. Isso pode ser qualificado com src ou dst. Esta sintaxe não é válida para o IPv6 net.
líquido líquido/len
True se o endereço IPv4/v6 combina com rede com uma máscara de rede bits de largura. Pode ser qualificado com src ou dst.
porta de porta dst
True se o pacote for ip/tcp, ip/udp, ip6/tcp orip6/udp e tem um valor de porta de destino de porta. A porta pode ser um número ou um nome usado em /etc/services (ver tcp (4P) e udp (4P)). Se um nome for usado, tanto o número da porta como o protocolo são verificados. Se um número ou nome ambíguo for usado, apenas o número da porta é verificado (Por exemplo, dst port 513 imprime tanto o tráfego tcp / login e udp / quem o tráfego, e o domínio de porta imprime o tráfego tcp / domínio e udp / domínio).
porta de porta src
True se o pacote tiver um valor de porta de origem de porta.
porta de porta
True se a porta de origem ou destino do pacote for port. Qualquer uma das expressões de porta acima pode ser prependida com as palavras-chave, tcp ou udp, como em: tcp porta porta src que corresponde apenas pacotes tcp cuja porta de origem é porta.
menos comprimento
True se o pacote tiver um comprimento menor ou igual a comprimento. Isto é equivalente a len < = comprimento.
maior comprimento
True se o pacote tiver um comprimento maior ou igual a comprimento. Isso é equivalente a: len> = comprimento.
protocolo de proto de ip
True se o packet for um pacote IP de protocolo tipo protocolo. Protocolo pode ser um número ou um dos nomes icmp, icmp6, igmp, igrp, pim, ah, esp, vrrp, udp, ou tcp. Observe que os identificadores tcp, udp e icmp também são palavras-chave e devem ser escapados via barra backslash (\), que é \\ no C-shell. Note que este primitivo não persegue a cadeia de cabeçalho do protocolo.
ip6 protocolo de proto
True se o pacote é um pacote IPv6 de protocolo tipo protocolo. Note que este primitivo não persegue a cadeia de cabeçalho do protocolo.
ip6 protocolo protochain
True se o pacote for IPv6 packet, e contém cabeçalho de protocolo com protocolo de tipo em sua cadeia de cabeçalho de protocolo. Por exemplo, o ip6 protochain 6 corresponde a qualquer pacote IPv6 com cabeçalho de protocolo TCP na cadeia de cabeçalho do protocolo. O pacote pode conter, por exemplo, cabeçalho de autenticação, cabeçalho de roteamento ou cabeçalho de opção hop-by-hop, entre o cabeçalho IPv6 e o cabeçalho TCP. O código do Berkeley Packet Filter (BPF) emitido por este primitivo é complexo e não pode ser otimizado pelo código do otimizador BPF em tcpdump, portanto, isso pode ser um tanto lento.
protocolo ip protochain
Equivalente ao protocolo protochain ip6 . Mas, isso é usado para Ipv4.
transmissão de éter
True se o packet for um pacote de transmissão ethernet. A palavra-chave do ether é opcional.
transmissão de ip
True se o packet for um pacote de transmissão IPv4 . Ele verifica tanto as convenções de transmissão all-zeroes e all-ones, e olha para cima a máscara de sub-rede na interface em que a captura está sendo feita.

Se a máscara de sub-rede da interface na qual a captura está sendo feita não estiver disponível, por exemplo, porque a interface em que a captura está sendo feita não tem nenhuma máscara em rede esta verificação não funciona corretamente.

multicast de éter
True se o packet for um pacote multicast ethernet. A palavra-chave do ether é opcional. Isso é encurtamento para ether[0] & 1 != 0.
multicast ip
True se o packet for um pacote de multicast IP.
ip6 multicast
True se o packet for um pacote multicast IPv6 .
ether proto protocolo
True se o pacote for do tipo ether protocol.Protocol pode ser um número ou um dos nomes ip, ip6, arp, rarp, atalk, aarp, decnet, sca, lat, mopdl, moprc, iso, stp, ipx ou netbeui. Note que esses identificadores também são palavras-chave e devem ser escapados via backslash (\).
[No caso de FDDI (por exemplo, ` fddi protocol arp '), Token Ring (por exemplo, ` tr protocol arp') e IEEE 802.11 wireless LANS (por exemplo 'wlan protocol arp'), para a maioria desses protocolos, a identificação do protocolo vem do cabeçalho 802.2 Logical Link Control (LLC), que geralmente está em camadas no cabeçalho FDDI, Token Ring ou 802.11 . Ao filtrar a maioria dos identificadores de protocolo no FDDI, Token Ring, ou 802.11, o tcpdump verifica apenas o campo de ID do protocolo de um cabeçalho LLC no chamado formato SNAP com um UnitIdentifier (OUI) organizacional de 0x000000, para Ethernet encapsulada; ele não verifica se o pacote está no formato SNAP com uma OUI de 0x000000. As exceções são:
iso
tcpdump verifica os campos DSAP (Destination Service Access Point) e SSAP (Fonte Service Access Point) do cabeçalho LLC.
stp e netbeui
tcpdump verifica o DSAP do cabeçalho LLC.
atalk
O tcpdump verifica um pacote de formato SNAP com uma OUI de 0x080007 e o etype AppleTalk .
No caso da Ethernet, tcpdump verifica o campo de tipo Ethernet para a maioria desses protocolos. As exceções são:
iso, sap, e netbeui
O tcpdump verifica um quadro 802.3 e, em seguida, verifica o cabeçalho LLC como ele faz para FDDI, Token Ring e 802.11.
atalk
O tcpdump verifica o etype AppleTalk em um quadro Ethernet e para um pacote de formato SNAP como faz para FDDI, Token Ring e 802.11.
aarp
O tcpdump verifica o etype ARP AppleTalk em um quadro Ethernet ou um quadro SNAP 802.2 com um OUI de 0x000000;
IPX
O tcpdump verifica o etype IPX em um quadro Ethernet, o IPX DSAP no cabeçalho LLC, o encapsulamento 802.3-with-no-LLC-header do IPX e o etype IPX em um quadro SNAP.
host decnet src
True se o endereço de origem DECNET for host, que pode ser um endereço no formato 10.123, ou um nome do host DECNET [O suporte ao nome do host do DECNET só está disponível em sistemas Ultrix configurados para executar o DECNET.]
decnet dst host
True se o endereço de destino do DECNET for host.
host decnet host
True se o endereço de origem ou destino do DECNET for host.
interface ifname
True se o pacote foi logado como proveniente da interface especificada.
em interface
Sinônimo de modificador ifname.
rnr num
Verdadeiro se o pacote foi registrado como correspondendo ao número de regra PF especificado (aplica-se somente a pacotes registrados pelo pf(4) OpenBSD's ).
rulenum num
Sinonomous com o modificador rnr.
código de razão
True se o pacote foi logado com o código de razão da PF especificado. Os códigos conhecidos são: match, bad-offset, fragment, short, normalize e memory (aplica-se somente a pacotes registrados pelo ' pf(4) OpenBSD's ).
ato de ação
True se a PF tomou a ação especificada quando o pacote foi logado. As ações conhecidas são: pass e block (aplica-se somente a pacotes registrados pelo ' pf(4) OpenBSD's )
netbeui
ip, ip6, arp, rarp, atalk, aarp, decnet, iso, stp, ipx.

Abreviações para:

ether proto p
onde p é um dos protocolos acima.

lat, moprc, mopdl

Abreviações para:
ether proto p
onde p é um dos protocolos acima. Note que tcpdump atualmente não sabe como analisar esses protocolos.
vlan [vlan_id ]
True se o pacote é um pacote de VLAN IEEE 802.1Q . Se vlan_id for especificado, apenas os pacotes que tiverem o especificado vlan_id são verdadeiros. Note que a primeira palavra-chave vlan encontrada em expressão altera os deslocamentos decodificados para o restante de expressão sob a suposição de que o pacote é um pacote VLAN.
tcp, udp, icmp
Abreviações para:
ip proto p or ip6 proto p
onde p é um dos protocolos acima.
iso proto protocolo
True se o packet for um pacote OSI de protocolo tipo protocolo. Protocolo pode ser um número ou um dos nomes clnp, esis, ou isis.
clnp, esis, isis
Abreviações para:
  • iso proto p
onde p é um dos protocolos acima.
l1, l2, iih, lsp, snp, csnp, psnp
Abreviações para tipos de PDU IS-IS.
vpi n
True se o pacote for um pacote ATM, para SunATM no Solaris, com um identificador de caminho virtual de n.
vci n
True se o pacote for um pacote ATM, para SunATM no Solaris, com um identificador de canal virtual de n.
linha
True se o pacote for um pacote ATM, para SunATM no Solaris e for um pacote ATM LANE. Observe que a primeira palavra-chave de pista encontrada em expressão altera os testes feitos no restante de expressão na suposição de que o pacote é um pacote Ethernet emulado de LANE ou um pacote de Controle LANE LE. Se lane não for especificado, os testes são feitos sob a suposição de que o pacote é um pacote de LLC encapsulado.
llc
True se o pacote for um pacote ATM para SunATM no Solaris e for um pacote encapsulado por LLC.
oamf4s
True se o pacote for um pacote ATM, para SunATM no Solaris e for uma célula de fluxo do segmento OAM F4 (VPI=0 & VCI=3).
oamf4e
True se o pacote for um pacote ATM, para SunATM no Solaris e for uma célula de fluxo OAM F4 de ponta a ponta (VPI=0 & VCI=4).
oamf4
True se o pacote for um pacote ATM, para SunATM no Solaris e for um segmento ou uma célula de fluxo do OAM F4 de ponta a ponta (VPI=0 & (VCI=3 | VCI=4).
oam
True se o pacote for um pacote ATM, para SunATM no Solaris e for um segmento ou uma célula de fluxo do OAM F4 de ponta a ponta (VPI=0 & (VCI=3 | VCI=4).
metac
True se o pacote for um pacote ATM, para SunATM no Solaris e estiver em um circuito de sinalização meta (VPI=0 & VCI=1).
Cco
True se o pacote for um pacote ATM, para SunATM no Solaris e estiver em um circuito de sinalização de transmissão (VPI=0 & VCI=2).
SC
True se o pacote for um pacote ATM para SunATM no Solaris e estiver em um circuito de sinalização (VPI=0 & VCI=5).
ísmico
True se o pacote for um pacote ATM para SunATM no Solaris e estiver em um circuito ILMI (VPI=0 & VCI=16).
connectmsg
True se o pacote for um pacote ATM, para SunATM no Solaris e estiver em um circuito de sinalização e for uma mensagem de Configuração Q.2931 , Procedimento de Chamada, Conectar, Conectar Ack, Liberação ou Liberação Concluída.
metaconexão
True se o pacote for um pacote ATM, para SunATM no Solaris e estiver em um circuito de meta sinalização e for uma mensagem Q.2931 Setup, Call Proceeding, Connect, Release ou Release Done.
expr relop expr
True se a relação se mantiver, onde relop é uma das>, <,> =, < =, =, =, e expr é uma expressão aritmética composta de constantes de número inteiro (expressa na sintaxe padrão C), os operadores binários normais [+,-, *, /, &, |], um operador de comprimento e acessos de dados de pacotes especiais. Para acessar dados dentro do pacote, use a sintaxe a seguir:
proto [ expr : size ]
Proto é um de ether, fddi, tr, wlan, ppp, slip, link, ip, arp, rarp, tcp, udp, icmp ou ip6e indica a camada de protocolo para a operação de índice. (éter, fddi, wlan, tr, ppp, slip e link todos referem-se à camada de link.) Note que tcp, udp e outros tipos de protocolo de camada superior só se aplicam a IPv4, e não IPv6 (isto será fixo no futuro). O deslocamento de bytes, em relação à camada de protocolo indicado, é dado por expr. Tamanho é opcional e indica o número de bytes no campo de interesse; pode ser um, dois, ou quatro, e padronizado para um. O operador de comprimento, indicado pela palavra-chave len, dá o comprimento do pacotaço.

Por exemplo, ether[0] & 1 != 0 captura todo o tráfego multicast. A expressão ip[0] & 0xf !=5 captura todos os pacotes IP com opções. A expressão ip[6:2] & 0x1fff = 0 captura apenas datagramas não fragmentados e frag zero de datagramas fragmentados. Esta verificação é aplicada implicitamente nas operações de índice tcp e udp. Por exemplo, tcp [0] sempre significa o primeiro byte do cabeçalho TCP, e nunca significa o primeiro byte de um fragmento interveniente.

Alguns deslocamentos e valores de campo podem ser expressos como nomes em vez de como valores numéricos. Os seguintes offsets de campo de cabeçalho do protocolo estão disponíveis: icmptype (campo tipo ICMP), icmpcode (campo de código ICMP) e tcpflags (campo flags TCP).

Os seguintes valores de campo do tipo ICMP estão disponíveis: icmp-echoreply, icmp-unreach, icmp-sourcequench, icmp-redirect, icmp-echo, icmp-routeradvit, icmp-timxceed, icmp-paramprob, icmp-tstamp, icmp-tstampreply, icmp-tstampreply, icmp-ireq, icmp-ireqresponder, icmp-ireqresponder, icmp-maskreq, icmp-maskreq, icmp-maskreq, icmp-maskreq, icmp-maskreq.

Os seguintes valores de campo de bandeiras TCP estão disponíveis: tcp-fin, tcp-syn, tcp-rst, tcp-push, tcp-ack, tcp-urg.

Combinando Primitivas

Um grupo parêntrico de primitivas e operadoras (parênteses são especiais para a Shell e devem ser escapadas).
          Negation (`!' or `not').

          Concatenation (`&&' or `and').

          Alternation (`||' or `or').
A negação tem maior precedência. A alternância e a concatenação têm precedência igual e a esquerda associada à direita. Observe que as explicitas e tokens, não a justaposição, são agora necessárias para concatenação.

Se um identificador é dado sem uma palavra-chave, a palavra-chave mais recente é assumida. Por exemplo, not host vs and ace é curto para not host vs and host ace que não deve ser confundido com not ( host vs or ace )

Argumentos de expressão podem ser passados para tcpdump como um único argumento ou como argumentos múltiplos, consoante o que for mais conveniente. Geralmente, se a expressão contém metacaracteres Shell, é mais fácil passá-la como um argumento único, citado. Vários argumentos são concatenados com espaços antes de serem analisados.

Sinalizações

Item Descrição
-A Tenta converter rede e transmissão de endereços para nomes.
-A Imprime cada pacote (menos seu cabeçalho de nível de link) em ASCII. Handy para captura de páginas web.
-B tamanho do buffer Indica o tamanho do buffer em kilobytes. Valores menores são aceitos. Se o tamanho do buffer for menor que o valor mínimo que é configurado pelo BPF, o tamanho real do buffer é ignorado e o valor que é configurado pelo BPF (Berkeley Packet Filter) é usado. Se a opção -B não for especificada, o tamanho do buffer será padronizado para 32.768.
-c Contagem Saídas após o recebimento de pacotes Contagem .
-C tamanho_do_arquivo Antes de escrever um pacote bruto para um savefile, verifique se o arquivo é atualmente maior do que file_size e, se sim, fechar o savefile atual e abrir um novo. Salvar arquivos após o primeiro savefile tem o nome especificado com a bandeira -w , com um número depois dele, começando em 2 e continuando para cima. As unidades de file_size são milhões de bytes (1.000.000 bytes, não 1.048.576 bytes).
-d Dumps o código de correspondência de pacotes compilado para saída padrão, em seguida, pára.
-d Imprime a lista das interfaces de rede disponíveis no sistema e sobre a qual tcpdump pode capturar pacotes. Para cada interface de rede, é impresso um número e um nome de interface (possivelmente seguido por uma descrição de texto da interface). O nome da interface ou o número podem ser fornecidos para a sinalização -i para especificar uma interface sobre a qual capturar.
-dd Código de correspondência de pacotes de dumps como um fragmento de programa C.
-ddd Código de correspondência de pacotes dumps como números decimais (precedido de uma contagem).
-e Imprime o cabeçalho de nível de link em cada linha de dump.
- E addr Use spi@ipaddr algo:secret para decriptografar pacotes de IPsec ESP que são endereçado ao addr e conter valor de Índice de Parâmetro de Segurança spi. Esta combinação pode ser repetida com vírgula ou separação de nova linha.
Nota: A configuração do segredo para os pacotes do IPv4 ESP agora é suportada.

Os algoritmos podem ser des-cbc, 3des-cbc, blowfish-cbc, rc3-cbc, cast128-cbc, ou nenhum. O padrão é des-cbc. A capacidade de decriptografar pacotes só está presente se libcrypto estiver instalado e estiver em LIBPATH.

secret é o texto ASCII para chave secreta ESP. Se precedido por 0x, então um valor hex é lido.

A opção assume o RFC2406 ESP, não o RFC1827 ESP. A opção é apenas para fins de depuração e o uso dessa opção com uma verdadeira chave secreta é desmotivado. Ao apresentar a chave secreta do IPsec sobre a linha de comando você torna visível para os outros, via ps (1) e outras ocasiões.

Além da sintaxe acima, o comando tcpdump pode usar o nome do arquivo de sintaxe para ler o arquivo especificado. O arquivo é aberto ao receber o primeiro pacote de ESP, portanto, qualquer permissão especial que tcpdump pode ter sido dada, já deveria ter sido dada para cima.

-f Imprime endereços externos IPv4 numericamente em vez de simbolicamente.

O teste para endereços estrangeiros IPv4 é feito usando o endereço IPv4 e máscara de rede da interface na qual a captura está sendo executada. Esta opção não funciona corretamente se esse endereço ou netmask não estiver disponível.

-F arquivo Use o arquivo como entrada para a expressão de filtro. Uma expressão adicional dada na linha de comando é ignorada.
-G girar_segundos Rotaciona o arquivo de dump que é especificado com a opção -w a cada rotate_seconds segundos. Se usado em conjunto com a opção -C , nomes de arquivo assumem a forma de arquivo < count>, se o valor especificado na variável size for atingido primeiro. Caso contrário, o comando tcpdump rotaciona o arquivo quando o valor especificado na variável rotate_seconds for decorrido.
-i interface Listens em interface. Se não especificado, tcpdump procura a lista de interface do sistema para a menor numeração, configurada up interface (excluindo loopback). Os laços são quebrados escolhendo a partida mais precoce.

Um número de interface como impresso por -D flag pode ser usado como o argumento interface .

-k Verificação de skips do checksum TCP em interfaces que executam cálculo de soma de verificação TCP em hardware. Se esta sinalização não for usada, todas as somas de verificação TCP de saída são sinalizadas como ruins.
-l Faz stdout linha buffered. Útil se você quiser ver os dados enquanto capturá-los. Por exemplo:
tcpdump -l | tee dat
  or  
tcpdump -l   >   dat & tail -f dat
-L Lista os tipos de link de dados conhecidos para a interface e saídas.
-m módulo Carrega definições do módulo SMI MIB a partir do arquivo módulo . Esta opção pode ser usada várias vezes para carregar vários módulos MIB em tcpdump.
-m Usa o segredo como um segredo compartilhado para validar os digestos que são encontrados nos segmentos TCP usando a opção TCP-MD5 (Solicitação de comentário (RFC) 2385).
-n Blocos convertendo os endereços de host, e os números de porta para nomes.
-n Omita a qualificação de nome de domínio de impressão de nomes de hosts. Por exemplo, o tcpdump imprime nic em vez de nic.ddn.mil.
-O Mantém o tcpdump de executar o otimizador de código de correspondência de pacotes. Isso é útil apenas se você suspeitar de um bug no otimizador.
-P Deixa de colocar a interface em modo promíscuo. Note que a interface pode estar no modo promíscuo por algum outro motivo; daí, -p não pode ser usado como uma abreviação para ether host {local-hw-addr} ou ether broadcast.
-q Saída rápida. Imprime menos informações de protocolo so linhas de saída são mais curtas.
-q Possibilita o rastreio do sistema filtrado para os pacotes registrados. É necessário executar o daemon de rastreamento do AIX para registrar os eventos do sistema selecionados que estão relacionados ao subsistema de comunicação de rede.
-r arquivo Leia pacotes do arquivo (que foi criado com a opção -w ). A entrada padrão é usada se arquivo for "-".
-R Os pacotes ESP/AH são baseados em especificação antiga.

(RFC1825 a RFC1829). Se especificado, tcpdump não imprime campo de prevenção de reprodução. Como não há campo de versão de protocolo na especificação ESP/AH, tcpdump não pode deduzir a versão do protocolo ESP/AH.

-S Imprime absoluto em vez de números de sequência TCP relativos.
-s snaplen Snarf snaplen bytes de dados de cada pacote em vez da inadimplência de 68. 68 bytes é adequado para IP, ICMP, TCP e UDP mas pode truncar informações de protocolo do servidor de nomes e pacotes NFS (veja abaixo). Pacotes truncados por causa de um instantâneo limitado são indicados na saída com [|proto], em que proto é o nome do nível de protocolo no qual ocorreu o truncamento. Note que levar snapshots maiores aumenta a quantidade de tempo que leva para processar pacotes e diminui efetivamente a quantidade de buffering de pacotes. Isso pode fazer com que os pacotes sejam perdidos. Você deve limitar snaplen ao menor número que capta as informações de protocolo que você está interessado. Configurar snaplen para 0 significa utilizar o comprimento necessário para capturar pacotes inteiros.
-t Pacotes de forças selecionados por expressão para serem interpretados o tipo especificado. Os tipos atualmente conhecidos são cnfp (protocolo Cisco NetFlow ), rpc (Chamada de Procedimento Remoto), rtp (protocolo de Aplicativos em Tempo Real), rtcp (protocolo de controle de Aplicativos em Tempo Real), snmp (Protocolo Simples de Gerenciamento de Rede), tftp (Protocolo de Transferência de Arquivo Trivial), vat (Ferramenta de Áudio Visual) e wb (White Board distribuído).
-t Omita a impressão de um timestamp em cada linha de dump.
-tt Imprime um timestamp não formatado em cada linha de dump.
-ttt Imprime um delta (em microssegundos) entre a linha atual e anterior em cada linha de dump.
-tttt Imprime um timestamp em formato padrão decorado por data em cada linha de dump.
-ttttt Imprime um delta (em microssegundos) entre a corrente e a primeira linha em cada linha de dump.
-u Imprime alças não decodificadas NFS .
-u Faça a saída salva via opção -w , por exemplo, "packet-buffered." Como cada pacote é salvo, ele é gravado no arquivo de saída, em vez de ser gravado apenas quando o buffer de saída preenche.
-v Especifica uma saída um pouco mais verbose. Por exemplo, o tempo de vida, identificação, comprimento total e opções em um pacote IP são impressos. Também possibilita verificações adicionais de integridade de pacotes, como verificar o checksum de cabeçalho IP e ICMP.
-vv Saída ainda mais verbose do que -v. Por exemplo, campos adicionais são impressos a partir de NFS e pacotes de resposta são totalmente decodificados.
-vvv Saída ainda mais verbose do que -vv. Por exemplo, telnet SB ... As opções de SE são impressas na íntegra. Com -X As opções de Telnet são impressas em hexa também.
-V Configura a sinalização de debug socket (a opção socket SO_DEBUG ) e o nível de rastreio em soquetes. Esta sinalização deve ser usada junto com a bandeira -Q .
-w arquivo Grava os pacotes brutos em arquivo em vez de analisá-los e imprimi-los para fora. Eles podem posteriormente ser impressos com a bandeira -r . A saída padrão é usada se Arquivo for "-".
-X Imprime cada pacote (menos seu cabeçalho de nível de link) em hexadecimal. O menor de todo o pacote ou snaplen bytes é impresso. Note que este é todo o pacote de camada de link, portanto, para camadas de link que pad (por exemplo, Ethernet), o padding bytes também é impresso quando o pacote de camada superior é mais curto do que o preenchimento necessário.
-xx Imprime cada pacote, incluindo seu cabeçalho de nível de link, em hexadecimal.
-X Imprime cada pacote (menos seu cabeçalho de nível de link) em hexadecimal e ASCII. Isso é muito prático para analisar novos protocolos.
-y tipo de link de dados Configura o tipo de link de dados para usar enquanto captura pacotes para datalinktype.
-z comando Quando usado em conjunto com a opção -C ou -G , faz com que o comando tcpdump execute o comando especificado no savefile. Por exemplo, especificar -z gzip ou -z bzip2 comprime cada savefile usando o comando gzip ou bzip2 .
Nota: O comando tcpdump executa o comando -z em paralelo à captura usando a prioridade mais baixa para que isso não perturbem o processo de captura.
-Z usuário Executa o comando tcpdump com os privilégios de sistema do usuário especificado.

Parâmetros

expressões
Seleciona os pacotes que devem ser despejados. Se uma expressão for fornecida, apenas os pacotes para os quais as expressões são true são despejados; caso contrário, todos os pacotes na rede são despejados.
A expressão consiste em uma ou mais primitivas. As primitivas geralmente consistem em um id (nome ou número) precedido por uma ou mais qualificadoras. Existem três tipos diferentes de qualificadoras:
  • type qualificadores dizem que tipo de primitivo o nome do id ou número refere-se. Os tipos possíveis são hospedeiro, rede e porta. Por exemplo, ` host foo ', ` net 128.3', ` port 20 ' Se não houver um qualificador do tipo, o host é assumido.
  • dir qualificadores especificam uma determinada direção de transferência para e / ou de id. As direções possíveis são src, dst, src ou dst e src e dst. Se não houver qualificador dir, src ou dst é assumido. Para algumas camadas de link, como SLIP e para alguns outros tipos de dispositivo, as eliminatórias de entrada e saída podem ser usadas para especificar uma direção desejada.
  • proto qualificadores restringem a correspondência a um determinado protocolo. Os protos possíveis são: fddi, tr, wlan, ip, ip6, arp, rarp, decnet, tcp e udp. Se não houver qualificador de proto, todos os protocolos consistentes com o tipo são assumidos.

fddi é um alias para ether. O analisador trata como significado "o nível de link de dados usado na interface de rede especificada." Os cabeçalhos da FDDI contêm endereços de origem e de destino Ethernet, e muitas vezes contêm tipos de pacotes semelhantes à Ethernet, então você pode filtrar nesses campos do FDDI apenas como com os campos Ethernet análogos. Os cabeçalhos do FDDI também contêm outros campos, mas não podem ser nomeados em uma expressão de filtro.

Como fddi, tr e wlan são aliases para ether. As instruções do parágrafo anterior sobre cabeçalhos FDDI também se aplicam aos cabeçalhos Token Ring e 802.11 LAN wireless. Para cabeçalhos 802.11 , o endereço de destino é o campo DA e o endereço de origem é o campo SA; os campos BSSID, RA e TA não são testados.

Além das anteriores, há algumas palavras-chave especiais ` primitivas ' que não seguem o padrão: gateway, broadcast, menos, expressões maiores e aritméticas. Todos estes estão descritos abaixo.

Expressões de filtro mais complexas são construídas usando-se as palavras and, ore not para combinar primitivas.

Variáveis de ambiente

LIBPATH variável ambiental deve ser configurada ou a biblioteca libcrypto deve estar em /usr/lib para que a bandeira -E funcione. Por exemplo:
ksh$ LIBPATH=/opt/freeware/lib tcpdump -E"algo:secret"

Status de saída

Item Descrição
0 Sucesso
fora de zero Erro

Segurança

A leitura de pacotes a partir de uma interface de rede requer acesso de leitura ao /dev/bpf*, que é tipicamente raiz-apenas. A leitura de pacotes de um arquivo não requer nenhum privilégio especial, exceto permissão de leitura de arquivo.

Atenção aos usuários do RBAC: Este comando pode realizar operações privilegiadas. Somente usuários privilegiados podem executar essas operações. Para obter mais informações sobre autorizações e privilégios, consulte Banco de dados de comandos privilegiados em Segurança. Para obter uma lista de privilégios e autorizações associados a esse comando, consulte o comando ' lssecattr ou o subcomando ' getcmdattr.

Exemplos

  1. Para imprimir todos os pacotes que chegam ou partiram do pôr do sol, digite:
    tcpdump host sundown
  2. Para imprimir tráfego entre hélio e ou quente ou ace, digite:
    tcpdump host helios and \( hot or ace \)
  3. Para imprimir todos os pacotes IP entre o ace e qualquer host exceto hélio, digite:
    tcpdump ip host ace and not helios
  4. Para imprimir todo o tráfego entre os hosts locais e hosts em Berkeley, digite:
    tcpdump net ucb-ether
  5. Para imprimir todo o tráfego ftp através de snup de gateway de internet, digite:
    tcpdump 'gateway snup and (port ftp or ftp-data)'
    Nota: A expressão é citada para evitar que a casca de mis-interprete os parênteses.
  6. Para imprimir tráfego nem originado de nem destinado para hospedeiros locais (se você porta para uma outra rede, isso nunca deve fazê-lo entrar em sua rede local), digite:
    tcpdump ip and not net localnet
  7. Para imprimir os pacotes start e end (os pacotes SYN e FIN) de cada conversação TCP que envolve um host não-local, digite:
    tcpdump 'tcp[tcpflags] & (tcp-syn|tcp-fin) != 0 and not src and d dst net localnet'
  8. Para imprimir pacotes IP mais longos do que 576 bytes enviados através de snup de gateway, digite:
    tcpdump 'gateway snup and ip[2:2] > 576'
  9. Para imprimir pacotes de transmissão IP ou multicast que não foram enviados via ethernet broadcast ou multicast, digite:
    tcpdump 'ether[0] & 1 = 0 and ip[16] >= 224'
  10. Para imprimir todos os pacotes ICMP que não são solicitações de eco / respostas (por exemplo, não ping pacotes), digite:
    tcpdump 'icmp[icmptype] != icmp-echo and icmp[icmptype] != icmp-e choreply'

Erro Padrão

Todos os erros e avisos são enviados para stderr.

Limitações

Um traço de pacotes que cruza uma mudança de Horário de Verão dá com estampas de tempo defasado (a mudança de hora é ignorada).

Expressões de filtro em campos diferentes daqueles em cabeçalhos Token Ring manipulam os pacotes do Token Ring roteirizado incorretamente.

As expressões de filtro em campos diferentes daqueles nos cabeçalhos 802.11 manipulam os pacotes de dados 802.11 com Para DS e De DS configurados incorretamente.

ip6 proto deve perseguir a cadeia de cabeçalho, mas neste momento não o faz. ip6 protochain é fornecida para este comportamento.

Expressão aritmética contra cabeçalhos de camada de transporte, como tcp [0], não funciona contra pacotes IPv6 . Ele só olha para pacotes IPv4 .

O rastreamento de pacotes não funciona em ambiente WPAR porque o driver BPF subjacente não é WPAR ciente.

Arquivos

Item Descrição
/usr/sbin/tcpdump Localização do comando tcpdump .
/usr/lib/libpcap.a  
/dev/bpf*  
/opt/freeware/lib/libcrypto.a(libcrypto.so) Opcional