Neste guia, demonstraremos como instalar o tcpdump em um sistema Linux e como capturar e analisar os pacotes TCP/IP usando o tcpdump.
Como instalar o Tcpdump
O Tcpdump está pré-instalado em muitas distribuições Linux. Mas se ainda não estiver instalado no seu sistema, você pode instalar o tcpdump no seu sistema Linux. Para instalar o tcpdump no sistema Ubuntu 22.04, use o seguinte comando:
$ sudo apto instalar tcpdump
Para instalar o tcpdump no Fedora/CentOS, use o seguinte comando:
$ sudo dnf instalar tcpdump
Como capturar os pacotes usando o comando Tcpdump
Para capturar os pacotes com tcpdump, inicie o terminal com privilégios sudo usando “Ctrl+Alt+t”. Esta ferramenta inclui diferentes opções e filtros para capturar os pacotes TCP/IP. Se você deseja capturar todos os pacotes em fluxo da interface de rede atual ou padrão, use o comando “tcpdump” sem qualquer opção.
$ sudo tcpdump
O comando fornecido captura os pacotes da interface de rede padrão do seu sistema.
Ao final da execução deste comando, todas as contagens de pacotes capturados e filtrados são exibidas no terminal.
Vamos entender o resultado.
Tcpdump permite a análise dos cabeçalhos dos pacotes TCP/IP. Ele mostra uma única linha para cada pacote e o comando continua em execução até que você pressione “Ctrl+C” para interrompê-lo.
Cada linha fornecida pelo tcpdump contém os seguintes detalhes:
- Carimbo de data/hora Unix (por exemplo, 02:28:57.839523)
- Protocolo (IP)
- Nome do host de origem ou IP e número da porta
- Nome do host de destino ou IP e número da porta
- Flags TCP (por exemplo, Flags [F.]) indicando o estado da conexão com valores como S (SYN), F (FIN). (ACK), P (PUSH), R (RST)
- Número de sequência dos dados no pacote (por exemplo, seq 5829:6820)
- Número de confirmação (por exemplo, ack 1016)
- Tamanho da janela (por exemplo, win 65535) representando os bytes disponíveis no buffer de recebimento seguido pelas opções TCP
- Comprimento da carga útil de dados (por exemplo, comprimento 991)
Para listar todas as interfaces de rede do seu sistema, use o comando “tcpdump” com a opção “-D”.
$ sudotcpdump-Dou
$ tcpdump --list-interfacesEste comando lista todas as interfaces de rede que estão conectadas ou em execução no seu sistema Linux.
Capture os pacotes da interface de rede especificada
Se você deseja capturar os pacotes TCP/IP que passam por uma interface específica, use o sinalizador “-i” com o comando “tcpdump” e especifique o nome da interface de rede.
$ sudo tcpdump -i lo
O comando fornecido captura o tráfego na interface “lo”. Se você deseja exibir informações detalhadas ou detalhadas sobre o pacote, use o sinalizador “-v”. Para imprimir detalhes mais abrangentes, use o sinalizador “-vv” com o comando “tcpdump”. O uso e a análise regulares contribuem para manter um ambiente de rede robusto e seguro.
Da mesma forma, você pode capturar o tráfego em qualquer interface usando o seguinte comando:
$ sudo tcpdump -i qualquer
Capture os pacotes usando uma porta específica
Você pode capturar e filtrar os pacotes especificando o nome da interface e o número da porta. Por exemplo, para capturar os pacotes de rede que passam pela interface “enp0s3” usando a porta 22, use o seguinte comando:
$ tcpdump -i enp0s3 porta 22O comando anterior captura todos os pacotes que fluem da interface “enp0s3”.
Capture os pacotes limitados com Tcpdump
Você pode usar o sinalizador “-c” com o comando “tcpdump” para capturar um número especificado de pacotes. Por exemplo, para capturar quatro pacotes na interface “enp0s3”, use o seguinte comando:
$ tcpdump -i enp0s3 -c 4
Substitua o nome da interface usando seu sistema.
Comandos Tcpdump úteis para capturar o tráfego de rede
A seguir, listamos alguns comandos “tcpdump” úteis que o ajudarão a capturar e filtrar o tráfego ou pacotes de rede de forma eficiente:
Usando o comando “tcpdump”, você pode capturar os pacotes de uma interface com um IP de destino ou IP de origem definido.
$ tcpdump -i {nome da interface} dst {ip-destino}Você pode capturar os pacotes com um tamanho de instantâneo de 65.535 bytes, diferente do tamanho padrão de 262.144 bytes. Nas versões mais antigas do tcpdump, o tamanho da captura era limitado a 68 ou 96 bytes.
$ tcpdump -i enp0s3 -s 65535
Como salvar os pacotes capturados em um arquivo
Se quiser salvar os dados capturados em um arquivo para análise posterior, você pode fazê-lo. Ele captura o tráfego em uma interface especificada e o salva em um arquivo “.pcap”. Use o seguinte comando para armazenar os dados capturados em um arquivo:
$ tcpdump -iPor exemplo, temos a interface “enps03”. Salve esses dados capturados no seguinte arquivo:
$ sudo tcpdump -i enps03 -w dump.pcapNo futuro, você poderá ler este arquivo capturado usando o Wireshark ou outras ferramentas de análise de rede. Portanto, se você quiser usar o Wireshark para analisar os pacotes, use o argumento “-w” e salve-o em um arquivo “.pcap”.
Conclusão
Neste tutorial, demonstramos como capturar e analisar pacotes usando tcpdump com a ajuda de diversos exemplos. Também aprendemos como salvar o tráfego capturado em um arquivo “.pcap” que você pode visualizar e analisar usando o Wireshark e outras ferramentas de análise de rede.