Salta al contenuto principale

tcpdump: vademecum operativo per analisi traffico di rete

·437 parole·3 minuti
❯ lineadicomando.it
Autore
❯ lineadicomando.it
Specs, Bugs and Log Console

Contesto essenziale
#

tcpdump è uno strumento CLI per catturare e analizzare pacchetti di rete in tempo reale. È fondamentale per troubleshooting, debugging applicativo e analisi sicurezza.

Lavora direttamente sulle interfacce di rete usando libpcap.


Prerequisiti
#

  • Sistema Linux/Unix con tcpdump installato
  • Permessi root o sudo
  • Conoscenza base di protocolli (IP, TCP, UDP, DNS)

Installazione rapida:
#

Debian/Ubuntu
#

sudo apt install tcpdump

RHEL/CentOS/Fedora
#

sudo dnf install tcpdump

Arch Linux
#

sudo pacman -S tcpdump  

Procedura passo-passo
#

1. Identificare l’interfaccia di rete
#

ip a

Oppure:

tcpdump -D

2. Cattura base del traffico
#

sudo tcpdump -i <interface>

Esempio:

sudo tcpdump -i eth0

3. Limitare il numero di pacchetti
#

sudo tcpdump -i <interface> -c 50

4. Disabilitare risoluzione DNS (output più veloce)
#

sudo tcpdump -i <interface> -n

5. Mostrare payload in ASCII/HEX
#

sudo tcpdump -i <interface> -A

Oppure:

sudo tcpdump -i <interface> -X

6. Salvare traffico su file (pcap)
#

sudo tcpdump -i <interface> -w capture.pcap

7. Leggere file pcap
#

tcpdump -r capture.pcap

8. Filtrare per host
#

sudo tcpdump -i <interface> host <ip>

Esempio:

sudo tcpdump -i eth0 host 192.168.1.10

9. Filtrare per porta
#

sudo tcpdump -i <interface> port 80

10. Filtri combinati
#

sudo tcpdump -i <interface> host <ip> and port 443

11. Filtrare per protocollo
#

sudo tcpdump -i <interface> tcp
sudo tcpdump -i <interface> udp
sudo tcpdump -i <interface> icmp

12. Filtri avanzati (espressioni BPF)
#

Solo traffico HTTP in uscita:

sudo tcpdump -i <interface> tcp dst port 80

Escludere traffico SSH:

sudo tcpdump -i <interface> not port 22

Range IP:

sudo tcpdump -i <interface> net 192.168.1.0/24

13. Cattura su tutte le interfacce
#

sudo tcpdump -i any

14. Output più leggibile (timestamp + dettagli)
#

sudo tcpdump -i <interface> -tttt -vvv

Esempi pratici
#

Debug DNS:

sudo tcpdump -i eth0 port 53

Verificare handshake TCP:

sudo tcpdump -i eth0 'tcp[tcpflags] & (tcp-syn|tcp-ack) != 0'

Monitor traffico verso API:

sudo tcpdump -i eth0 host <api_ip> and port 443

Cattura traffico di un container Docker:

sudo tcpdump -i docker0

Errori comuni
#

  • Permessi insufficienti Soluzione: usare sudo

  • Interfaccia sbagliata Verificare con ip a o tcpdump -D

  • Output illeggibile (troppo verbose) Usare filtri BPF o -c

  • DNS resolution lenta Usare -n

  • File pcap enorme Usare -c o -C (rotazione file)


Note operative
#

  • tcpdump usa filtri BPF (Berkeley Packet Filter): sintassi precisa, senza tolleranza

  • Per analisi approfondita usare Wireshark sui file .pcap

  • Attenzione a privacy e dati sensibili (sniffing traffico)

  • Alternative:

    • ss per socket attivi
    • tshark per parsing avanzato

Riferimenti
#