Att fånga på en fjärrmaskin medan du ser utdata genom samma anslutning är en självrefererande mätning, och den förvränger det du mäter. Varje paket du skriver ut färdas tillbaka genom sessionen som fångas. Att utesluta det flödet är oftast rätt, men storleken på uteslutningen är ett verkligt beslut. För smalt och fångsten översvämmar sig själv; för brett och bevisen försvinner.

Varför fångsten registrerar sig själv

Fångsten ser returvägen för sin egen utdata. Varje rad som skrivs ut i din terminal blir ett eller flera paket på hanteringsanslutningen, som filtret sedan matchar och skriver ut igen. Resultatet är en loop som växer tills bufferten eller länken ger upp.

Därför ser en fångst som skrivs till en fil bra ut, medan samma fångst strömmad live blir oanvändbar. Trafiken är inte ny; du skapade den. En fångst på tio sekunder kan producera mer utdata än länken kan bära när loopen väl har börjat.

Bygg uteslutningen som en grupp

Börja med hur fjärrvärden ser din session, inte med adressen i din lokala terminal. En hoppvärd eller en NAT-enhet kan göra motparten till något du aldrig skrev in, så läs adressen från fjärrsidans egen synvinkel. Gruppera sedan värden och porten tillsammans så att negationen gäller för paret.

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

Att sätta hela uttrycket inom citattecken hindrar skalet från att läsa parenteserna som syntax. Skriv ut filtret igen innan du litar på resultatet.

Filtret som ser rätt ut och behåller allt

Det felaktiga filtret är det som läses naturligt: källan är inte motparten, eller destinationen är inte motparten. För ett paket från din arbetsstation är det första testet sant; för svaret det andra. Att koppla dem med or behåller båda riktningarna, vilket är precis vad du menade att släppa.

pcap-filterlogik ger and och or samma prioritet och utvärderar från vänster till höger, så parenteser är inte valfria när du blandar dem. Negerar du ett grupperat uttryck i stället för att kombinera två negationer. Den enda ändringen skiljer ett fungerande filter från en fångst full av din egen skrivning. pcap-filterreferensen är kort nog att läsa i terminalen och värd att kontrollera när ett filter beter sig oväntat.

Bestäm utifrån vad fångsten måste bevisa

Bestäm hur mycket som ska uteslutas genom att fråga vad fångsten måste bevisa. Om du behöver se applikationstrafik till samma värd, uteslut bara SSH-porten och acceptera brus från andra sessioner. Om värden är irrelevant för frågan är det enklare att utesluta den helt, och det tar bort en hel klass av självgenererade paket. Skriv valet bredvid fångstfilen, eftersom ett filter är ett antagande om bevisen.

Valet av gränssnitt avgör vad du alls kan se. I tunneln ser du den inre trafiken; på det fysiska gränssnittet ser du den krypterade transporten. Om hanteringspaketen redan saknas vid den punkt du valde, kommer ingen uteslutning att laga en fångst som riktats mot fel lager.

Relaterade artiklar