Catturare su una macchina remota mentre osservi l'output attraverso la stessa connessione è una misura autoreferenziale, e distorce ciò che stai misurando. Ogni pacchetto che stampi torna indietro attraverso la sessione catturata. Escludere quel flusso è di solito corretto, ma la dimensione dell'esclusione è una vera decisione. Troppo stretta e la cattura inonda se stessa; troppo ampia e le prove scompaiono.

Perché la cattura registra se stessa

La cattura vede il percorso di ritorno del proprio output. Ogni riga stampata nel tuo terminale diventa uno o più pacchetti sulla connessione di gestione, che il filtro poi abbina e stampa di nuovo. Il risultato è un ciclo che cresce finché il buffer o il collegamento cedono.

Ecco perché una cattura scritta su file sembra a posto e la stessa cattura trasmessa in diretta diventa inutilizzabile. Il traffico non è nuovo; l'hai creato tu. Una cattura di dieci secondi può produrre più output di quanto il collegamento possa trasportare una volta avviato il ciclo.

Costruisci l'esclusione come un unico gruppo

Parti da come l'host remoto vede la tua sessione, non dall'indirizzo nel tuo terminale locale. Un host di salto o un dispositivo NAT possono rendere la controparte qualcosa che non hai mai digitato, quindi leggi l'indirizzo dal punto di vista del lato remoto stesso. Poi raggruppa host e porta insieme, così la negazione si applica alla coppia.

tcpdump -ni eth0 '(net 10.60.0.0/24) and not (host 203.0.113.77 and tcp port 2222)'

Citare l'intera espressione impedisce alla shell di leggere le parentesi come sintassi. Stampa di nuovo il filtro prima di fidarti del risultato.

Il filtro che sembra giusto e conserva tutto

Il filtro sbagliato è quello che si legge naturalmente: l'origine non è la controparte, oppure la destinazione non è la controparte. Per un pacchetto dalla tua workstation il primo test è vero; per la risposta il secondo. Unirli con or conserva entrambe le direzioni, che è esattamente ciò che volevi scartare.

La logica dei filtri pcap dà ad and e or la stessa precedenza e valuta da sinistra a destra, quindi le parentesi non sono opzionali quando li mescoli. Nega una sola espressione raggruppata invece di combinare due negazioni. Questo singolo cambiamento separa un filtro funzionante da una cattura piena della tua stessa digitazione. riferimento del filtro pcap è abbastanza breve da leggere nel terminale e vale la pena consultarlo ogni volta che un filtro si comporta in modo inatteso.

Decidi in base a ciò che la cattura deve dimostrare

Decidi quanto escludere chiedendoti cosa deve dimostrare la cattura. Se devi vedere il traffico applicativo verso lo stesso host, escludi solo la porta SSH e accetta il rumore delle altre sessioni. Se l'host è irrilevante per la domanda, escluderlo del tutto è più semplice ed elimina un'intera classe di pacchetti autogenerati. Scrivi la scelta accanto al file di cattura, perché un filtro è un'ipotesi sulle prove.

La scelta dell'interfaccia decide cosa puoi vedere. Sul tunnel vedi il traffico interno; sull'interfaccia fisica vedi il trasporto cifrato. Se i pacchetti di gestione sono già assenti nel punto che hai scelto, nessuna esclusione riparerà una cattura puntata sul livello sbagliato.

Articoli correlati