Score:1

tcpdump: กรอง localhost ออก แพ็กเก็ตปรากฏขึ้นหรือไม่

ธง in

ฉันกำลังพยายามใช้ tcpdump เพื่อสำรวจว่าในคอมพิวเตอร์ของฉันคุยกับใครบนเวิลด์ไวด์เว็บ

ฉันมาถึงขั้นนี้แล้ว:

lan_hosts="(โฮสต์ || ถึง || ไม่รวม)"
local_hosts="(127.0.0.1 || ips_of_my_nics || localhost || local_hostname)"
expoced_local_ports="(ssh || https || โดเมน || $(netstat -ap | egrep -h '/(processes|I_dont|want|to_see|traffic_of)' | tr -s ' ' | cut -d ' ' -f 4 | rev | cut -d ':' -sf 1 | rev | sort | sed ':a; N; $!ba; s/\n/ \|\| /g'))"
tcpdump -vi ใดๆ "ip && ! icmp && ! arp && (src ! $local_hosts || dst ! $local_hosts) && (src $local_hosts || dst $local_hosts) && (src ! $local_hosts || พอร์ต src ! $excused_local_ports) && (dst ! $local_hosts || พอร์ต dst ! $excused_local_ports) && host ! $lan_hosts"

ตอนนี้เหตุผลที่ฉันโพสต์ที่นี่เป็นคำถาม: ฉันไม่เข้าใจว่าทำไม / แพ็กเก็ตเหล่านี้ยังคงปรากฏในผลลัพธ์อย่างไร:

tcpdump: ฟังใด ๆ LINUX_SLL ประเภทลิงก์ (Linux สุก v1) ขนาดการดักจับ 262144 ไบต์
14:49:30.660109 IP (tos 0x0, ttl 64, id 23067, offset 0, flag [DF], proto UDP (17), ความยาว 71)
    localhost.38976 > localhost.domain: 26002+ [1au] A? lan_host.lan. (43)
14:49:30.686174 IP (tos 0x0, ttl 64, id 23110, offset 0, flag [DF], proto UDP (17), ความยาว 80)
    localhost.47181 > localhost.domain: 45895+ [1au] PTR? some_ip.in-addr.arpa (52)
14:49:30.686219 IP (tos 0x0, ttl 64, id 2440, offset 0, flag [DF], proto UDP (17), ความยาว 103)
    localhost.domain > localhost.47181: 45895 1/0/1 some_ip.in-addr.arpa PTR โลคัลโฮสต์ (75)

ผมก็นึกว่าเซกเมนต์ (src ! $local_hosts || dst ! $local_hosts) ของการประกาศตัวกรองของฉัน ซึ่งเชื่อมต่อกับตรรกะ && กับส่วนตัวกรองอื่นๆ เท่านั้น ควรแยกส่วนเหล่านั้นออกหรือไม่ และแม้ว่าฉันจะไม่ได้มีส่วนนั้นในตัวกรอง แต่ก็ควรแยกออกอีกครั้งเนื่องจากการรวม โดเมน ในของฉัน แก้ตัว_local_ports ตัวแปร.

เรามาแกะการประกาศตัวกรองกันสักหน่อยแล้วลองอธิบายสิ่งที่ฉันต้องการบรรลุในแต่ละส่วน:

  • ไอพี -> ดูเฉพาะแพ็กเก็ต ipv4 เนื่องจากเครื่องนี้ไม่มีเส้นทาง ipv6 ไปยังอินเทอร์เน็ต ฉันไม่กังวลกับ ipv6 ที่นี่
  • ! ไอซีเอ็มพี -> ไม่สนใจคำขอ ping / การตอบกลับและข้อมูลเมตาการกำหนดเส้นทาง icmp อื่น ๆ
  • ! อาร์พี -> กรองแพ็กเก็ตโปรโตคอลการแก้ปัญหาที่อยู่
  • (src ! $local_hosts || dst ! $local_hosts) -> ซ่อนแพ็คเก็ตของ localhost ที่พูดกับตัวเอง
  • (src $local_hosts || dst $local_hosts) -> ซ่อนการออกอากาศจากโฮสต์อื่น
  • (src ! $local_hosts || พอร์ต src ! $excused_local_ports) -> ซ่อนแพ็คเก็ตที่โฮสต์ของฉันส่งจากหนึ่งในพอร์ตของโปรแกรมที่ฉันไม่ต้องการดูในตอนนี้
  • (dst ! $local_hosts || พอร์ต dst ! $excused_local_ports) -> ซ่อนแพ็คเก็ตที่โฮสต์ของฉันได้รับบนหนึ่งในพอร์ตของโปรแกรมที่ฉันไม่ต้องการดูในตอนนี้
  • (โฮสต์ ! $lan_hosts) -> ซ่อนการสื่อสารกับโฮสต์ที่กำหนด
in flag
บรรทัดคำสั่งจริงสำหรับ tcpdump คืออะไร วิธีที่ดีที่สุดในการกรอง localhost ออกคือการรับฟังเฉพาะอินเทอร์เฟซที่เกี่ยวข้อง ซึ่งไม่ใช่เลย - มันยังเกี่ยวข้องกับประสิทธิภาพอีกด้วย
xogoxec344 avatar
in flag
เป็นบรรทัดที่ 4 ของบล็อกโค้ดแรกของฉัน 3 บรรทัดแรกถูกแยกตัวแปร bash เพื่อให้อ่านง่ายขึ้นอีกเล็กน้อย ใช่ ฉันเข้าใจ แต่น่าเศร้าที่ดูเหมือนว่าใคร ๆ ก็สามารถดูอินเทอร์เฟซเดียวหรือดูทั้งหมดพร้อมกันก็ได้ถ้าฉันทำได้ฉันจะฟังทั้งสองที่ให้เส้นทางสู่อินเทอร์เน็ต แต่นั่นจะต้องเรียกใช้กระบวนการ tcpdump สองกระบวนการแยกกัน
in flag
การดัมพ์แต่ละอินเทอร์เฟซควรใช้ CPU น้อยลง แต่จะทำงานในโหมดที่หลากหลาย

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา