Puncte:1

tcpdump: filtrarea localhost, pachetele apar oricum?

drapel in

Încerc să folosesc tcpdump pentru a explora ce vorbește pe computerul meu cu cine pe World Wide Web.

Am ajuns până aici până acum:

lan_hosts="(gazde || la || exclude)"
local_hosts="(127.0.0.1 || ips_of_my_nics || localhost || local_hostname)"
excused_local_ports="(ssh || https || domeniu || $(netstat -ap | egrep -h '/(procese|I_dont|vreau|să_văd|trafic_of)' | tr -s ' ' | cut -d ' ' -f 4 | rev | cut -d ':' -sf 1 | rev | sort | sed ':a; N; $!ba; s/\n/ \|\| /g'))"
tcpdump -vi orice „ip && ! icmp && ! arp && (src ! $local_hosts || dst ! $local_hosts) && (src $local_hosts || dst $local_hosts) && (src ! $local_hosts || src port ! $excused_local_ports) && (dst ! $local_hosts || dst port ! $excused_local_ports) && gazdă ! $lan_hosts"

Acum, motivul pentru care postez asta aici ca întrebare: nu înțeleg de ce / cum apar aceste pachete încă în rezultat:

tcpdump: ascultare pe orice tip de legătură LINUX_SLL (Linux cooked v1), dimensiunea capturii 262144 octeți
14:49:30.660109 IP (to 0x0, ttl 64, id 23067, offset 0, flags [DF], proto UDP (17), lungime 71)
    localhost.38976 > localhost.domain: 26002+ [1au] A? lan_host.lan. (43)
14:49:30.686174 IP (to 0x0, ttl 64, id 23110, offset 0, flags [DF], proto UDP (17), lungime 80)
    localhost.47181 > localhost.domain: 45895+ [1au] PTR? some_ip.in-addr.arpa. (52)
14:49:30.686219 IP (to 0x0, ttl 64, id 2440, offset 0, flags [DF], proto UDP (17), lungime 103)
    localhost.domain > localhost.47181: 45895 1/0/1 some_ip.in-addr.arpa. PTR localhost. (75)

Credeam că segmentul (src ! $local_hosts || dst ! $local_hosts) din declarația mea de filtru, care este doar concatenată cu && logica altor părți ale filtrului, ar trebui să le excludă? Și chiar dacă nu aveam acea parte în filtru, ar trebui din nou excluse din cauza includerii domeniu in al meu excused_local_ports variabil.

Să despachetăm puțin declarația de filtru și să încercăm să explic ce am vrut să obțin cu fiecare parte:

  • ip -> uită-te doar la pachetele ipv4, deoarece această mașină nu are o cale ipv6 către internet, nu mă preocupă ipv6 aici.
  • ! icmp -> nu-ți pasă de cererile/răspunsurile ping și alte metadate de rutare icmp.
  • ! arp -> filtrează pachetele de protocol de rezoluție de adrese
  • (src ! $local_hosts || dst ! $local_hosts) -> ascunde pachetele localhost care vorbesc singur
  • (src $local_hosts || dst $local_hosts) -> ascunde emisiunile de la alte gazde
  • (src ! $local_hosts || src port ! $excused_local_ports) -> ascunde pachetele pe care gazda mea le-a trimis de la unul dintre porturile programelor pe care nu vreau să le privesc acum.
  • (dst ! $local_hosts || dst port ! $excused_local_ports) -> ascunde pachetele pe care gazda mea le-a primit pe unul dintre porturile programelor pe care nu vreau să le privesc acum.
  • (gazdă! $lan_hosts) -> ascunde comunicarea cu gazdele definite
drapel in
Care este linia de comandă reală pentru tcpdump? Cel mai bun mod de a filtra localhost este să ascultați doar pe interfețele care sunt relevante, care nu sunt slabe - este, de asemenea, legat de performanță.
xogoxec344 avatar
drapel in
Este a 4-a linie a primului meu bloc de cod. Primele 3 linii sunt variabile bash extrase pentru a le face puțin mai lizibile. Da, înțeleg, dar din păcate se pare că se poate privi fie la o singură interfață, fie la toate simultan.Dacă aș putea, le-aș asculta pe cele două care oferă o cale către internet. Dar asta ar necesita rularea a două procese tcpdump separate.
drapel in
Eliminarea fiecărei interfețe ar trebui să necesite mai puțin CPU, dar va rula în modul promiscuu.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.