Comando tcpdump su Linux: come analizzare i pacchetti della rete
Con il comando Linux tcpdump è possibile analizzare i pacchetti inviati nella propria rete. Questa analisi può essere ulteriormente ottimizzata con numerose opzioni e filtri.
Cos’è tcpdump su Linux?
Per analizzare il traffico di rete su Linux ed eventualmente risolvere i problemi di rete, tcpdump è uno strumento particolarmente prezioso. Il programma a riga di comando è preinstallato in quasi tutte le più comuni distribuzioni Linux, come Debian o Ubuntu, e trasmette informazioni sui pacchetti di dati inviati o ricevuti nella rete. Nonostante il nome, tcpdump non è adatto solo per i pacchetti TCP, ma può anche analizzare i pacchetti UDP e ICMP. Per utilizzarlo, tuttavia, è necessario disporre dei permessi di root.
Come funziona il comando tcpdump?
L’analisi che tcpdump esegue è chiamata anche “sniffing”. Con l’aiuto del comando tcpdump su Linux, si specifica l’interfaccia di rete che il programma deve controllare. Esistono numerosi filtri, con i quali è possibile regolare e ottimizzare il processo. Il comando viene eseguito nella riga di comando, dove vengono riprodotti anche i risultati dell’analisi.
Qual è la sintassi di tcpdump?
La sintassi di tcpdump su Linux è molto semplice e si presenta così:
$ tcpdump [opzioni] [filtri]
bashNon è necessario specificare alcuna opzione, ma per garantire che tcpdump prenda in considerazione anche l’interfaccia di rete corretta, queste sono comunque consigliate. Anche i filtri sono facoltativi. Tuttavia, se non viene specificato alcun filtro, il comando analizzerà tutti i pacchetti provenienti da tutti gli host, il che può creare rapidamente confusione.
Quali opzioni e filtri ha il comando tcpdump di Linux?
Il comando tcpdump dispone di numerose opzioni e filtri. Le opzioni più importanti sono le seguenti:
- -A: in questo modo viene visualizzato il contenuto di un pacchetto come ASCII.
- -c [numero]: in questo modo tcpdump viene terminato automaticamente quando è stato analizzato un certo numero di pacchetti.
- -D: questa opzione elenca tutte le interfacce disponibili.
- -i [interfaccia]: con questa opzione determini quale interfaccia deve essere registrata.
- -s [numero]: questa opzione determina quanti byte per pacchetto devono essere registrati.
È possibile utilizzare questi filtri per tcpdump:
- dst: analizza solo i pacchetti la cui destinazione ha il valore specificato, che può essere host, net, port o portrange.
- host: questo filtro garantisce che vengano presi in considerazione solo i pacchetti che hanno come origine o destinazione un indirizzo IP specifico o, in alternativa, un nome host specifico.
- net: questo filtro prende in considerazione solo i pacchetti che hanno come sorgente o destinazione un indirizzo IP appartenente a un intervallo di rete specificato.
- port: con questo filtro si definisce una porta specifica tra 0 e 65535 che deve essere analizzata esclusivamente.
- portrange: questo filtro contiene un intervallo di porte compreso tra 0 e 65535 che viene considerato esclusivamente.
- proto: questo filtro considera esclusivamente i pacchetti con uno specifico protocollo di rete. Il filtro può avere i seguenti valori: arp, decnet, ether, fddi, ip, ip6, rarp, tcp, udp o wlan.
- src: con questo filtro vengono analizzati solo i pacchetti la cui origine ha un determinato valore, che può essere host, net, port o portrange.
Esempi per l’utilizzo del comando tcpdump
Infine, ti mostriamo come utilizzare tcpdump. Nei nostri esempi, utilizziamo il comando sudo su Linux.
$ sudo tcpdump -D
bashCosì verifichi innanzitutto quali interfacce di rete sono presenti.
$ sudo tcpdump -i wlx14a3c782966b
bashIn questo modo analizzi solo l’interfaccia con il nome specificato.
$ sudo tcpdump -c 5 -i wlx14a3c782966b
bashCosì fai in modo che tcpdump catturi solo cinque pacchetti.