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
tcpdumpinstallato - Permessi root o sudo
- Conoscenza base di protocolli (IP, TCP, UDP, DNS)
Installazione rapida: #
Debian/Ubuntu #
sudo apt install tcpdumpRHEL/CentOS/Fedora #
sudo dnf install tcpdumpArch Linux #
sudo pacman -S tcpdump Procedura passo-passo #
1. Identificare l’interfaccia di rete #
ip aOppure:
tcpdump -D2. Cattura base del traffico #
sudo tcpdump -i <interface>Esempio:
sudo tcpdump -i eth03. Limitare il numero di pacchetti #
sudo tcpdump -i <interface> -c 504. Disabilitare risoluzione DNS (output più veloce) #
sudo tcpdump -i <interface> -n5. Mostrare payload in ASCII/HEX #
sudo tcpdump -i <interface> -AOppure:
sudo tcpdump -i <interface> -X6. Salvare traffico su file (pcap) #
sudo tcpdump -i <interface> -w capture.pcap7. Leggere file pcap #
tcpdump -r capture.pcap8. Filtrare per host #
sudo tcpdump -i <interface> host <ip>Esempio:
sudo tcpdump -i eth0 host 192.168.1.109. Filtrare per porta #
sudo tcpdump -i <interface> port 8010. Filtri combinati #
sudo tcpdump -i <interface> host <ip> and port 44311. Filtrare per protocollo #
sudo tcpdump -i <interface> tcpsudo tcpdump -i <interface> udpsudo tcpdump -i <interface> icmp12. Filtri avanzati (espressioni BPF) #
Solo traffico HTTP in uscita:
sudo tcpdump -i <interface> tcp dst port 80Escludere traffico SSH:
sudo tcpdump -i <interface> not port 22Range IP:
sudo tcpdump -i <interface> net 192.168.1.0/2413. Cattura su tutte le interfacce #
sudo tcpdump -i any14. Output più leggibile (timestamp + dettagli) #
sudo tcpdump -i <interface> -tttt -vvvEsempi pratici #
Debug DNS:
sudo tcpdump -i eth0 port 53Verificare 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 443Cattura traffico di un container Docker:
sudo tcpdump -i docker0Errori comuni #
-
Permessi insufficienti Soluzione: usare
sudo -
Interfaccia sbagliata Verificare con
ip aotcpdump -D -
Output illeggibile (troppo verbose) Usare filtri BPF o
-c -
DNS resolution lenta Usare
-n -
File pcap enorme Usare
-co-C(rotazione file)
Note operative #
-
tcpdumpusa 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:
ssper socket attivitsharkper parsing avanzato