tcpdump è uno strumento di sniffing molto diffuso nel mondo Unix/Linux: permette di analizzare il tipo di pacchetti che passano per l’interfaccia di rete specificata. Di fatto, il suo utilizzo è molto simile a quello di WireShark/Ethereal, di cui abbiamo parlato in questo articolo, ma agisce solamente da linea di comando, anziché tramite una (comoda) interfaccia grafica.
Come detto, è molto diffuso e utilizzato su molte piattaforme Unix-like: Linux, Solaris, BSD, Mac OS X, HP-UX e AIX, sviluppato sulla base delle librerie per la cattura di pacchetti libpcap. Su Windows invece è stato fatto un porting, che prende il nome di WinDump. Vediamo insieme qualche semplice esempio di utilizzo.
Su macchine Linux (come può essere ad esempio il vostro PC Ubuntu) è necessario eseguirlo con i privilegi di root, in questo caso quindi con il comando sudo:
sudo tcpdump -i eth0
Con l’opzione -i si indica l’interfaccia di rete su cui mettersi in ascolto e catturare i pacchetti.
Se vogliamo limitare il numero di pacchetti da analizzare e poi uscire, si utilizza l’opzione -c (count)
sudo tcpdump -i eth0 -c 10
Se invece vogliamo analizzare tutto il traffico che passa per una determinata porta, ad esempio la porta 80:
sudo tcpdump port 80
Infine, se vogliamo analizzare il traffico di una sottorete in relazione ad una determinata porta:
tcpdump net 10.0.0.0/24 and port 22
Visualizza tutti i pacchetti per la sottorete 10.0.0.0/24 relativi al protocollo ssh (porta 22)