tcpdump è un potente analizzatore di pacchetti da riga di comando che consente di acquisire e ispezionare il traffico di rete. Una delle sue funzionalità più utili è la possibilità di filtrare il traffico per porta, aiutandoti a concentrarti su servizi o applicazioni specifici.
Sintassi di base del filtraggio delle porte
Per acquisire il traffico su una porta specifica, utilizzare il file port parola chiave:
sudo tcpdump port 80
Cattura tutto il traffico (sia in entrata che in uscita) sulla porta 80 (HTTP).
Porte di origine e di destinazione
Puoi specificare se filtrare per porta di origine o di destinazione:
## Capture traffic FROM port 443
sudo tcpdump src port 443
## Capture traffic TO port 443
sudo tcpdump dst port 443
Porte multiple
Per monitorare più porte, utilizzare or o portrange:
## Capture HTTP and HTTPS traffic
sudo tcpdump port 80 or port 443
## Capture a range of ports
sudo tcpdump portrange 8000-8080
Combinazione di filtri delle porte con altri criteri
Combina i filtri delle porte con i filtri host o protocollo utilizzando gli operatori logici:
## Capture SSH traffic from specific host
sudo tcpdump port 22 and host 192.168.1.100
## Capture DNS traffic (UDP port 53)
sudo tcpdump udp and port 53
## Exclude specific port
sudo tcpdump not port 22
Opzioni utili
Migliora il tuo output tcpdump con queste opzioni:
## Save capture to file
sudo tcpdump port 80 -w capture.pcap
## Show packet contents in ASCII and hex
sudo tcpdump port 443 -X
## Limit number of packets
sudo tcpdump port 25 -c 100
## Don't resolve hostnames (faster)
sudo tcpdump port 80 -n
Casi d'uso comuni
- Traffico web:
sudo tcpdump port 80 or port 443 - E-mail:
sudo tcpdump port 25 or port 587 or port 993 - Banca dati:
sudo tcpdump port 3306(MySQL) oport 5432(PostgreSQL) - SSH:
sudo tcpdump port 22
Il filtraggio delle porte con tcpdump è essenziale per la risoluzione dei problemi di rete, l'analisi della sicurezza e il monitoraggio di applicazioni specifiche senza acquisire traffico non necessario.
Strategia di cattura scalabile
Un buon flusso di lavoro tcpdump evita acquisizioni gigantesche e inutili:
- definire l'ipotesi (quale host/porta/protocollo)
- costruisci un filtro stretto
- limita il conteggio o la durata dei pacchetti
- salva pcap per un'analisi più approfondita in Wireshark
Esempio:
sudo tcpdump -n -i eth0 host 10.0.0.15 and port 443 -c 500 -w tls-check.pcap
Questo ti dà un set di dati mirato invece di catturare tutto sull'interfaccia.
Acquisizioni del buffer circolare per incidenti lunghi
Per problemi intermittenti, utilizzare la rotazione dei file:
sudo tcpdump -i eth0 port 443 -C 20 -W 10 -w web-%Y%m%d%H%M%S.pcap
Ciò mantiene sotto controllo lo stoccaggio preservando le finestre di traffico recenti.
Insidie comuni dei filtri
Parentesi mancanti con and / or
La precedenza della logica del filtro può sorprenderti. Condizioni del gruppo chiaramente:
sudo tcpdump '(port 80 or port 443) and host 192.168.1.20'
Catturare senza -n
Le ricerche DNS inverse rallentano l'acquisizione e aggiungono rumore. Utilizzare -n nelle sessioni di risoluzione dei problemi a meno che non sia richiesta la risoluzione del nome.
Acquisizione su interfaccia sbagliata
Verificare prima l'interfaccia (ip a / ifconfig) prima di assumere eth0 è attivo.
Promemoria su sicurezza e conformità
Le acquisizioni di pacchetti possono includere credenziali, cookie, token e dati personali. Gestisci i file pcap come artefatti sensibili:
- limita l'accesso
- crittografa a riposo
- eliminare dopo l'indagine
Conclusione (operativa)
Il filtraggio delle porte è potente quando è preciso. Utilizza piccole acquisizioni basate su ipotesi con espressioni BPF chiare, quindi analizza offline. Ciò consente un’analisi delle cause profonde più rapida e meno false conclusioni.
Modello di triage rapido per interruzione del servizio
Quando un servizio appare inattivo:
- cattura il comportamento SYN/SYN-ACK sulla porta di servizio
- conferma che i pacchetti hanno raggiunto l'interfaccia giusta
- confronta le acquisizioni lato client e lato server
- convalida contatori/registri del firewall
Questo ti dice rapidamente se l'errore si trova nel percorso, nel firewall dell'host o nel processo del servizio.
Conclusione (risposta all'incidente)
Durante gli incidenti, tcpdump con filtri di porta stretti è uno dei modi più rapidi per passare dalle congetture alle prove a livello di pacchetto.