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:

Comando
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:

Comando
## 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:

Comando
## 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:

Comando
## 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:

Comando
## 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) o port 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:

  1. definire l'ipotesi (quale host/porta/protocollo)
  2. costruisci un filtro stretto
  3. limita il conteggio o la durata dei pacchetti
  4. salva pcap per un'analisi più approfondita in Wireshark

Esempio:

Comando
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:

Comando
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:

Comando
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:

  1. cattura il comportamento SYN/SYN-ACK sulla porta di servizio
  2. conferma che i pacchetti hanno raggiunto l'interfaccia giusta
  3. confronta le acquisizioni lato client e lato server
  4. 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.