Tcpdump cattura e analizza il traffico di rete su Linux in tempo reale. Filtra pacchetti per host, porta e protocollo, permettendoti di isolare comunicazioni sospette e salvare prove in formato .pcap per l’analisi con Wireshark.
| Comando | Risultato |
|—|—|
| sudo tcpdump -i eth0 | Cattura tutto sull’interfaccia eth0 |
| sudo tcpdump -i eth0 host 192.168.1.1 | Filtra per IP host |
| sudo tcpdump -i eth0 port 80 | Filtra per porta HTTP |
| sudo tcpdump -i eth0 tcp | Filtra per protocollo TCP |
| sudo tcpdump -i eth0 -w cattura.pcap | Salva su file .pcap |
| sudo tcpdump -i eth0 'host 10.0.0.1 and port 443' | Filtro BPF combinato |
| sudo tcpdump -i eth0 -A port 80 | Legge traffico HTTP in chiaro |
Traffico anomalo in uscita da un server. Nessun log applicativo utile. tcpdump in 3 comandi ha mostrato una connessione a un IP esterno su porta 4444 ogni 30 secondi. Quando ho investigato un ambiente con 2.000 endpoint che presentava rallentamenti misteriosi, i log di sistema erano puliti. I firewall non registravano blocchi. Ho lanciato tcpdump e la realtà è emersa: un processo compromesso comunicava con una C2 infrastructure ogni 30 secondi. Il 73% dei breach parte da comunicazioni esterne non monitorate (Verizon DBIR 2025). Con tcpdump non hai filtri interpretativi. Vedi esattamente cosa transita sui cavi. Questa tcpdump guida italiano ti dà i comandi per catturare, filtrare e salvare il traffico, trasformandoti da sysadmin in analyst.
Installare e usare tcpdump
Su Debian e Ubuntu installa il pacchetto con sudo apt install tcpdump. Su RHEL o Rocky Linux usa sudo dnf install tcpdump. Il tool richiede privilegi root o la capability CAP_NET_RAW. Verifica l’installazione con tcpdump --version. La sintassi base in questa tcpdump guida italiano è semplice: tcpdump [opzioni] [filtro]. Senza opzioni, cattura tutto sulla prima interfaccia disponibile. Su una rete enterprise, il volume di dati ti sommerge in pochi secondi. Impara a filtrare subito.
Catturare su un’interfaccia specifica
Una macchina moderna ha più NIC. sudo tcpdump -D elenca le interfacce disponibili. Se non specifici nulla, tcpdump sceglie la prima. Su un server con 300+ VM e bridge VLAN, devi mirare l’interfaccia corretta. Il comando base è sudo tcpdump -i eth0. Se vuoi catturare su tutte le interfacce attive, usa sudo tcpdump -i any. Attenzione: -i any crea un traffico aggregato che Wireshark interpreta con timestamp inconsistenti. Mirare l’interfaccia specifica è sempre la scelta migliore per l’analisi forense.
Filtrare per host
Il traffico totale è rumore. Isolare un host specifico riduce il carico e ti mostra solo la conversazione rilevante. sudo tcpdump -i eth0 host 192.168.1.1 cattura tutto ciò che entra o esce da 192.168.1.1. Se vuoi solo il traffico in uscita verso quell’IP, usa src: sudo tcpdump -i eth0 src host 192.168.1.1. Per il traffico in arrivo, dst host. Nella pratica, quando cerco una comunicazione sospetta in un ambiente enterprise, filtro per l’IP del server compromesso e guardo chi contatta esternamente.
Filtrare per porta
Le porte identificano i servizi. Filtrare per porta ti concentra su DNS, HTTP, o SSH senza distrazioni. sudo tcpdump -i eth0 port 80 cattura il traffico web. Per SSH usa port 22. Per combinare porte: port 80 or port 443. I filtri per porta sono la prima difesa quando debugghi un servizio che non risponde. Se il traffico non arriva sulla porta prevista, il problema è di routing o firewall, non dell’applicazione.
Filtrare per protocollo
Tcpdump distingue i protocolli di livello 3 e 4. sudo tcpdump -i eth0 tcp cattura solo segmenti TCP. udp, icmp, arp sono altri filtri comuni. Se investighi un attacco DDoS volumetrico, filtrare per icmp ti mostra immediatamente l’onda di ping. Se debugghi un problema di risoluzione DNS, udp port 53 è più preciso, ma filtrare per udp in generale ti dà una panoramica di tutti i servizi connectionless attivi.
Salvare la cattura su file .pcap
I pacchetti volano via sul terminale. Non puoi analizzare 50.000 pacchetti in tempo reale. Devi salvarli. sudo tcpdump -i eth0 -w cattura.pcap scrive l’output raw su file. Il formato .pcap è lo standard universale per l’analisi di rete. Aggiungi -c 1000 per catturare solo 1000 pacchetti e non riempire il disco. Un’organizzazione con 2.000 endpoint genera gigabyte di traffico in poche ore. Catturare senza limiti su disco pieno ti distrugge il filesystem. Usa sempre -c o un cron per fermare la cattura.
Aprire .pcap con Wireshark
Il file .pcap è illeggibile per un umano. Ti serve Wireshark. Trasferisci il file dal server Linux alla tua workstation con scp. Apri Wireshark, carica il file, e navighi il traffico con filtri GUI, colorazioni e statistiche. Wireshark decodifica i protocolli applicativi, mostrando il contenuto delle richieste HTTP, i certificati TLS e le query DNS. Tcpdump cattura. Wireshark analizza. Sono le due facce della stessa medaglia. Documentazione ufficiale completa: tcpdump man page (https://www.tcpdump.org/manpages/tcpdump.1.html).
Filtri avanzati con BPF
Berkeley Packet Filter (BPF) è il linguaggio che tcpdump usa per filtrare direttamente nel kernel. Un filtro BPF ben scritto scarta i pacchetti prima che raggiungano l’applicazione, riducendo il carico sulla CPU. sudo tcpdump -i eth0 'host 10.0.0.1 and port 443' combina host e porta. Puoi usare and, or, not. Esempio per escludere il tuo SSH di monitoraggio: sudo tcpdump -i eth0 'not port 22 and host 10.0.0.1'. I filtri BPF supportano anche maschere di rete: net 192.168.0.0/24. Quando analizzo un incidente, uso combinazioni BPF complesse per isolare il traffico C2 escludendo il rumore di fondo legittimo.
Casi d’uso pratici (debug HTTP, SSH, DNS)
Debug HTTP in chiaro: sudo tcpdump -i eth0 -A port 80 # testo in chiaro. L’opzione -A stampa il contenuto dei pacchetti in ASCII. Vedi le richieste GET, gli header, e i cookie. Su una rete non cifrata, questo ti mostra esattamente cosa transita. Il 40% del traffico web interno è ancora in chiaro (Statista 2025), rendendo questo filtro una miniera di informazioni durante il debug.
Debug SSH: Se un utente non può collegarsi in SSH, cattura il traffico sulla porta 22. Vedi il handshake TCP, il key exchange, e i tentativi di autenticazione. Se il firewall droppa il pacchetto, vedi il SYN senza SYN-ACK.
Debug DNS: sudo tcpdump -i eth0 udp port 53. Vedi le query e le risposte. Se un’applicazione non risolve un hostname, controlla se la query parte e se il DNS risponde con un NXDOMAIN. Ho risolto un problema di latenza misteriosa su 300+ VM scoprendo che ogni query DNS veniva ritentata 3 volte prima di timeout.
Cheatsheet filtri tcpdump
| Obiettivo | Comando |
|—|—|
| Traffico totale eth0 | sudo tcpdump -i eth0 |
| Solo host specifico | sudo tcpdump -i eth0 host 192.168.1.1 |
| Solo porta 80 | sudo tcpdump -i eth0 port 80 |
| Solo TCP | sudo tcpdump -i eth0 tcp |
| Host e porta combinati | sudo tcpdump -i eth0 'host 10.0.0.1 and port 443' |
| Salva cattura | sudo tcpdump -i eth0 -w cattura.pcap |
| Leggi HTTP ASCII | sudo tcpdump -i eth0 -A port 80 |
Errori comuni e troubleshooting
“No suitable device found” significa che non hai privilegi root o l’interfaccia è down. Verifica con ip link. “Packet capture is too verbose” si risolve aggiungendo -q per output quiet o -t per rimuovere timestamp. Se la cattura riempie il disco, imposta -c per il numero di pacchetti o -G 3600 per rotazione file ogni ora. Non usare -i any per forensica, i timestamp sono inaffidabili.
FAQ — Domande Frequenti
Come vedere il traffico in tempo reale senza salvarlo?
Usa tcpdump senza l’opzione -w. Aggiungi -nn per evitare la risoluzione DNS inversa, che rallenta l’output, e -v per aumentare il livello di dettaglio dei pacchetti catturati.
Qual è la differenza tra tcpdump e Wireshark?
Tcpdump cattura e filtra il traffico da riga di comando su server remoti senza GUI. Wireshark analizza i file .pcap salvati con interfaccia grafica e decodifiche avanzate dei protocolli applicativi.
Come catturare il traffico di una specifica VLAN?
Specifica l’interfaccia VLAN (es. -i eth0.10) o usa il filtro BPF vlan 10. Su switch gestiti, assicurati che la porta sia configurata come mirror SPAN per catturare il traffico di altre porte.
Conclusioni con takeaway operativi
Tcpdump non è un tool da analisti di laboratorio. È il primo strumento che lancio quando i log mentono e la rete nasconde la verità. Impara i filtri BPF, usa -w per salvare e -A per leggere il testo in chiaro. In un’infrastruttura enterprise, la capacità di catturare e analizzare il traffico in 3 comandi è la differenza tra un incidente risolto in 10 minuti e un breach che dura mesi.
Leggi anche
Leggi anche: WireGuard VPN Linux: Configurare in 15 Minuti (2026)
Leggi anche: Fail2ban su Linux: Configurazione Completa e Sicurezza SSH
Leggi anche: Lynis Audit Sicurezza Linux: Guida Completa e Pratica (2026)
Aggiornato: Maggio 2026