Come utilizzare tcpdump per la cattura dei pacchetti

Come utilizzare Tcpdump per la cattura dei pacchetti Immagine in evidenza

Catturare i pacchetti è un modo molto utile per analizzare il funzionamento interno di una rete. Esistono diversi strumenti appositamente sviluppati per questo scopo. Uno di questi è tcpdump. Qui ti mostriamo come fare il miglior uso di questo grande strumento sia per ingegneri di rete che per tester di penetrazione.

Indice

  • Cos’è tcpdump?
  • Installazione
  • Le basi
  • Specificare un’interfaccia di rete
  • Specificare una porta/intervallo di porte
  • Specificare un host o una subnet
  • Specificare la verbosità
  • Salvare la cattura in un file
  • Domande frequenti

Leggi anche: Tor vs. VPN: E’ uno migliore dell’altro?

Cos’è tcpdump?

tcpdump è uno strumento di analisi dei pacchetti di rete sviluppato e rilasciato nel 1988 da un team di scienziati informatici che lavoravano presso il Lawrence Berkeley Laboratory e il suo Network Research Group. Viene utilizzato per visualizzare i contenuti dei pacchetti che un computer invia e riceve. L’utilità offre una varietà di opzioni per rendere la cattura dei pacchetti più specifica e mirata. Alcune di queste opzioni includono diversi protocolli di rete e interfacce di rete.

Installazione

Molte distribuzioni Linux vengono fornite con l’utilità già installata di base. Tuttavia, se la tua distribuzione di scelta non lo include, l’installazione è fortunatamente rapida e semplice.

Se stai usando Ubuntu o Debian, ad esempio, può essere installato usando apt:

sudo apt install tcpdump

Su CentOS, ciò avviene usando yum:

sudo yum install tcpdump

E su Arch Linux utilizzando pacman:

sudo pacman -S tcpdump

Leggi anche: Cos’è il Routing a Cipolla e come puoi riottenere la tua privacy

Le basi

Con tcpdump installato, puoi dare un’occhiata al manuale usando il flag -h:

tcpdump -h

Questo ti mostrerà un elenco dei flag che puoi utilizzare quando usi lo strumento.

Comando di Aiuto Tcpdump

Se vuoi dare un’occhiata a un manuale più completo e dettagliato, puoi visualizzare la pagina man (pagina del manuale) usando il comando man:

man tcpdump

Pagina Man Tcpdump

Puoi eseguire una cattura di pacchetti di base digitando:

tcpdump

Usando il comando da solo e senza specificare un’interfaccia di rete, lo strumento sceglierà una delle interfacce disponibili sul tuo sistema.

Se non vuoi che tcpdump risolva i nomi host e desideri invece che restituisca solo indirizzi IP, puoi usare il flag -n:

tcpdump -n

Se vuoi specificare il numero di pacchetti che desideri catturare, usa il flag -c:

tcpdump -c[numero di pacchetti]

Specificare un’interfaccia di rete

Puoi specificare l’interfaccia di rete di tua scelta usando il flag -i:

tcpdump -i[interfaccia]

Due dei nomi di interfaccia di rete più comuni su molti sistemi sono eth0 e wlan0:

tcpdump -i eth0  
tcpdump -i wlan0

Se desideri catturare dati su tutte le interfacce, puoi usare l’opzione any:

tcpdump -i any

Leggi anche: Switch Ethernet vs. Hub vs. Splitter: Qual è la differenza?

Specificare una porta/intervallo di porte

Se desideri catturare solo i dati che utilizzano un numero di porta specifico, usa il comando:

tcpdump -i[interfaccia] port [numero di porta]

Supponiamo che tu voglia catturare il traffico sull’interfaccia eth0 e sulla porta 443 (HTTPS). Digita quanto segue:

tcpdump -i eth0 port 443

Inoltre, tcpdump ti consente di specificare un intervallo di porte:

tcpdump -i[interfaccia] portrange [intervallo di porte]

Specificare un host o una subnet

Ci saranno momenti in cui desideri limitare i pacchetti catturati solo a quelli inviati/ricevuti da un host o da una subnet specifica. Fortunatamente, tcpdump ti consente di farlo.

Puoi specificare un host usando il formato seguente:

tcpdump -i[interfaccia] host [host]

Ad esempio, cattura il traffico sull’interfaccia eth0 e specifica l’host come 127.0.0.1 (il tuo stesso indirizzo IP di loopback):

tcpdump -i eth0 host 127.0.0.1

Se desideri specificare una subnet di rete utilizzando la notazione CIDR, puoi utilizzare il seguente formato:

tcpdump -i[interfaccia] net [subnet]

Ad esempio:

tcpdump -i eth0 net 10.0.0.0/8

Puoi anche specificare direttamente un host sorgente:

tcpdump -i[interfaccia] src [host]

E un host di destinazione:

tcpdump -i[interfaccia] dst [host]

Leggi anche: Come eseguire Nmap senza Root o Sudo

Specificare la verbosità

tcpdump ti consente di specificare la verbosità della cattura dei pacchetti. Questo è molto utile quando non vuoi essere sopraffatto dalla quantità di informazioni durante una cattura.

Ci sono tre opzioni incrementali per la verbosità, i flag -v, -vv e -vvv:

tcpdump -i[interfaccia] -v  
tcpdump -i[interfaccia] -vv  
tcpdump -i[interfaccia] -vvv

La prima opzione specifica la minore verbosità, mentre la terza opzione specifica la maggiore.

Salvare la cattura in un file

È spesso utile salvare i dati catturati in un file, affinché possano essere ulteriormente analizzati e interpretati.

Ciò si ottiene utilizzando il flag -w:

tcpdump -i[interfaccia] -w[nomefile]

Come esempio, puoi salvare i dati catturati in un file chiamato “capture.txt”:

tcpdump -i eth0 -w capture.txt

Leggi anche: Come aprire porte e configurare il port forwarding sul tuo router

Domande frequenti

1. Ho ricevuto un errore “Operazione non permessa”. Come posso risolverlo?

Il seguente è un errore comune che gli utenti possono ricevere quando cercano di utilizzare tcpdump:

Errore Operazione Non Permessa Tcpdump

tcpdump ti dà questo errore quando non hai i permessi necessari per effettuare la cattura dei pacchetti. Nella maggior parte degli scenari, puoi risolvere questo utilizzando sudo. Ad esempio:

sudo tcpdump -i eth0

2. Come posso sapere quali interfacce di rete sono disponibili?

tcpdump ha una funzionalità integrata che ti consente di controllare le interfacce di rete disponibili sul tuo sistema.

Per controllare le interfacce, usa il flag -D:

tcpdump -D