วิธีจับแพ็คเก็ตที่เข้ามาทั้งหมดไปยัง NIC แม้แต่แพ็คเก็ตเหล่านั้นไม่ได้เป็นของฉัน


13

AFAIK, NIC ได้รับแพ็คเก็ตทั้งหมดจากสายในเครือข่ายท้องถิ่น แต่ปฏิเสธแพ็กเก็ตเหล่านั้นซึ่งที่อยู่ปลายทางของพวกเขาไม่เท่ากับ ip

ฉันต้องการพัฒนาแอปพลิเคชันที่ตรวจสอบการใช้งานอินเทอร์เน็ตของผู้ใช้ ผู้ใช้แต่ละคนมีที่อยู่ IP คงที่

ฉันและบุคคลอื่นเชื่อมต่อกับสวิตช์เดสก์ท็อปที่ไม่มีการจัดการ 8-Port Fast Ethernet

อย่างที่ได้กล่าวไปแล้วก่อนหน้านี้ฉันต้องการรวบรวมทราฟฟิกทั้งหมดจากผู้ใช้ทุกคนไม่เพียง แต่แพ็กเก็ตที่เป็นของฉันเท่านั้น

ฉันจะบังคับให้ NIC หรือส่วนประกอบอื่น ๆ ของฉันรับแพคเก็ตทั้งหมดได้อย่างไร


1
ซื้อสวิตช์ราคาถูกและมีการจัดการประมาณ 30 €และเปิดใช้งานพอร์ตมิเรอร์บนลิงก์ไปยังเกตเวย์
— Max Ried

คำตอบ:


27

AFAIK, NIC ได้รับแพ็คเก็ตทั้งหมดจากสายในเครือข่ายท้องถิ่น แต่ปฏิเสธแพ็กเก็ตเหล่านั้นซึ่งที่อยู่ปลายทางของพวกเขาไม่เท่ากับ ip

การแก้ไข: มันปฏิเสธแพ็กเก็ตเหล่านั้นซึ่งที่อยู่MACปลายทางของพวกเขาไม่เท่ากับที่อยู่ MACของมัน(หรือมัลติคาสต์หรือที่อยู่เพิ่มเติมใด ๆ ในตัวกรองของมัน

โปรแกรมอรรถประโยชน์การจับแพ็คเก็ตสามารถทำให้อุปกรณ์เครือข่ายเข้าสู่โหมด promiscuous ซึ่งอาจกล่าวได้ว่าการตรวจสอบข้างต้นถูกข้ามไปและอุปกรณ์ยอมรับทุกสิ่งที่ได้รับ อันที่จริงแล้วนี่เป็นค่าเริ่มต้น: ด้วยtcpdumpคุณต้องระบุ-pตัวเลือกเพื่อไม่ให้ทำ

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

คุณต้องเชื่อมต่อกับมิร์เรอร์หรือพอร์ตการตรวจสอบที่กำหนดค่าเป็นพิเศษบนสวิตช์อีเธอร์เน็ตที่มีการจัดการเพื่อทำสิ่งนี้


1
หรือฮับอีเทอร์เน็ต ... หากคุณพบสนิมในห้องใต้หลังคา :) ฉันสงสัยว่าจะมี 1,000Base-T แต่วิกิพีเดียบอกว่ากิกะบิตฮับสนับสนุนการเชื่อมต่อเพล็กซ์ครึ่งเดียวและพวกเขาเลิกใช้แล้ว
— chx

1
@chx ฮับจริงทั้งหมดรองรับ half duplex เท่านั้น โดยส่วนตัวฉันไม่เคยเห็น 1,000Base-T one
— Celada

ฉันเชื่อว่าสิ่งนี้เกี่ยวข้องกับการรับส่งสัญญาณช้าของ Gigabit Ethernet - แม้ว่ามาตรฐาน 802.3ab จะออกมาในปี 1999 การดูดซับนั้นช้ามากจนถึงปี 2003/2547 เมื่อ Intel เปิดตัวชิปเซ็ต 875P เป็นครั้งแรกด้วยบัส CSA เฉพาะสำหรับ Gigabit Ethernet ในปี 2004 PCI Express เข้ามาแทนที่แบนด์วิดธ์ที่เพียงพอสำหรับ Gigabit Ethernet จากนั้นสวิทช์ก็ถูกพอ
— chx

สวิตช์ Ethernet จะไม่ถ่ายทอดเฟรมเสมอไป มันมีตารางการสลับเป็นของตัวเอง (มีแผนที่ของสวิตช์พอร์ตและที่อยู่ MAC) สำหรับ unicasting เฟรม หากตารางไม่มีรายการสำหรับ MAC ใน Frame แสดงว่ามันแพร่ภาพ / ทำให้เฟรมท่วม เดสก์ท็อปของคุณจะไม่ได้รับเฟรมอื่น ๆ เช่นเดียวกับคำตอบคุณต้องใช้สวิตช์พิเศษเพื่อจับเฟรมทั้งหมดที่มาถึงสวิตช์ของคุณ
— Valarpirai

8

ในช่วงแรกที่กล่าวถึงฮับอีเธอร์เน็ต (ไม่ใช่สวิตช์) แพ็คเก็ตที่ส่งจะมีให้สำหรับโฮสต์ทั้งหมดบนเครือข่ายย่อย แต่โฮสต์ที่ไม่ใช่ผู้รับที่ตั้งใจควรจะเพิกเฉย

เห็นได้ชัดว่ามันใช้เวลาไม่นานสำหรับซับเน็ตในการอิ่มตัวดังนั้นเทคโนโลยีสวิตช์จึงเกิดมาเพื่อแก้ปัญหาและหนึ่งในสิ่งที่พวกเขาทำคือทำให้เครือข่ายสลับเฉพาะแพ็กเก็ตเส้นทางที่กำหนดไว้สำหรับโฮสต์นั้นไปยังพอร์ตนั้น )

การทำเช่นนี้จะทำให้การตรวจสอบ / การดมกลิ่นของเครือข่ายยุ่งยากขึ้นเพราะคุณสามารถสูดดมแพ็คเก็ตที่โฮสต์ของคุณเท่านั้น สิ่งนี้ถือว่าเป็นสิ่งที่ดีจากมุมมองด้านความปลอดภัย แต่จากมุมมองการตรวจสอบเครือข่ายไม่ค่อยดี เพื่อให้การตรวจสอบเครือข่ายทำงานได้ผู้ขายจะใช้คุณสมบัติที่เรียกว่าการทำมิเรอร์พอร์ต สิ่งนี้จะต้องมีการกำหนดค่าในสวิตช์เครือข่ายและลิงค์ด้านล่างควรชี้ให้คุณในทิศทางที่ถูกต้องสำหรับผลิตภัณฑ์ D-link คุณจะพบที่ใดก็ได้ในซอฟต์แวร์การจัดการสวิตช์หรืออินเทอร์เฟซผู้ดูแลเว็บ หากคุณไม่พบคุณสมบัติเหล่านี้แสดงว่าอาจไม่มีฟังก์ชันการทำงานในอุปกรณ์นั้น

http://www.dlink.com/uk/en/support/faq/switches/layer-2-gigabit/dgs-series/es_dgs_1210_como_monitorear_trafico_de_un_puerto_port_mirroring


2

ก่อนอื่นคุณต้องเปลี่ยน NIC ของคุณไปเป็นโหมดที่หลากหลาย สมมติว่าอินเตอร์เฟส NIC ของคุณคือ eth0

root@linux#ifconfig eth0 promesc

หากคุณอยู่ในเครือข่ายสวิตช์การดมกลิ่นของคุณจะลดลงไปยังโดเมนการชนที่เชื่อมต่อกับพอร์ตสวิตช์ของคุณ คุณสามารถเรียกใช้macofเพื่อเอาชนะตารางการส่งต่อของสวิตช์

root@linux#macof -i eth0

จากนั้นคุณสามารถใช้wiresharkหรือtcpdumpเพื่อจับภาพการรับส่งข้อมูลทั้งหมด

root@linux#tcpdump -i eth0 -w outputfile

tcpdumpหากคุณไม่ได้อยู่ในเครือข่ายเปลี่ยนเพียงแค่เปิดใช้งานโหมดสำส่อนและการใช้งาน


1
tcpdumpจะเปิดใช้งานโหมดที่หลากหลายสำหรับคุณ คุณไม่จำเป็นต้องทำ (และอย่าลืมเลิกทำเมื่อทำเสร็จ) ด้วยตนเอง
— Celada

0

คุณกำลังสร้างวงล้อใหม่

สมมติว่าคุณมีเครือข่ายง่าย ๆ ที่ลูกค้าเชื่อมต่อกับสวิตช์ด้วยเกตเวย์เริ่มต้นไปยังอินเทอร์เน็ตจากนั้นคุณจะต้องตรวจสอบอุปกรณ์เกตเวย์เริ่มต้นนั้นเท่านั้น นี่จะเป็นจุดที่ทำให้หายใจไม่ออกเพื่อแสดงปริมาณการใช้งานทั้งหมดระหว่างไคลเอนต์ LAN และอินเทอร์เน็ต

ฉันสมมติว่าลูกค้า LAN กับการรับส่งข้อมูลลูกค้า LAN ไม่เป็นที่สนใจเพราะด้วยที่อยู่ IP ทั้งหมดภายในเครือข่ายย่อย IP เดียวกันการรับส่งข้อมูลในพื้นที่จะไม่แตะเกตเวย์เริ่มต้น

หากคุณต้องการเห็นทราฟฟิกทั้งหมดผู้ใช้แต่ละคนต้องอยู่ในเครือข่าย IP ของตนเองและทราฟฟิกไปยังเครือข่ายอื่นนั้นจะผ่านเกตเวย์เริ่มต้น คุณสามารถจัดสรร a / 28 ให้กับแต่ละคนและพวกเขาสามารถมี 14 IP ได้ด้วยตนเอง

เราเตอร์ระดับครัวเรือนโดยเฉลี่ยของคุณจะไม่จัดการเรื่องนี้มากนักคุณต้องสำรวจ distro ไฟร์วอลล์เฉพาะ pfsense ส่วนตัวของฉันจะไป แต่มีหลายตัวเลือก

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.