การดักจับแพ็กเก็ตโดยใช้ Extcap

ดูแหล่งที่มาใน GitHub

คู่มือนี้ครอบคลุมวิธีกำหนดค่า extcap สำหรับ Wireshark เพื่อดักจับแพ็กเก็ตจาก เครือข่าย Thread

หากต้องการใช้ Pyspinel สำหรับการดักจับแพ็กเก็ตโดยไม่มีภายนอก โปรดดูการดักจับแพ็กเก็ตกับ Pyspinel

ตั้งค่าสภาพแวดล้อมสำหรับผู้ตรวจสอบ

ก่อนที่จะเริ่ม โปรดทำตามขั้นตอนต่อไปนี้

การยืนยัน

คู่มือนี้ได้รับการยืนยันกับ Zolertia Firefly (Texas Instruments CC2538 SoC) ในระบบโฮสต์ต่อไปนี้

  • Debian 4.19.37 — Wireshark 3.0.4
  • macOS Mojave 10.14.6 — Wireshark 3.0.5
  • Windows 10 เวอร์ชัน 64 บิต เวอร์ชัน 17134 — Wireshark 3.0.6

สร้างและโชว์ดม

วิธีการสร้างและการกะพริบจะแตกต่างกันไปตามแพลตฟอร์ม

สำหรับวิธีการสร้างและการแฟลช CC2538 โปรดดูตัวอย่าง CC2538 README บน GitHub

หากต้องการทราบวิธีการสร้างทั่วไป โปรดดูวิธีสร้าง OpenThread

ใช้เครื่องดม

หน้าจอจับภาพ Wireshark ปรากฏขึ้นเมื่อ Wireshark เปิดใช้งานเป็นครั้งแรก ทั้งนี้ ควรแสดงอินเทอร์เฟซฮาร์ดแวร์ที่เชื่อมต่อกับเครื่องมือดักจับ OpenThread

จับภาพจากอินเทอร์เฟซเดียว

หากใช้อินเทอร์เฟซเป็นครั้งแรก ให้คลิกปุ่มตัวเลือก ทางด้านซ้ายของอินเทอร์เฟซ:

การบันทึกภาพภายนอกของ Wireshark จาก OT Sniffer

  1. ตั้งค่าแชนเนลเป็นค่าที่ต้องการ
  2. ตรวจสอบ IEEE 802.15.4 TAP เพื่อให้แน่ใจว่าข้อมูลช่องเป็นไปตาม ที่รวมอยู่ในเอาต์พุต pcap และแสดงใน GUI ของ Wireshark ได้
  3. เลือกบันทึกพารามิเตอร์เมื่อเริ่มบันทึกเพื่อให้การตั้งค่าต่อไปนี้ จะมีการบันทึกพารามิเตอร์ไว้หลังจากเริ่มการบันทึก เพื่อหลีกเลี่ยงการ ตั้งค่าใหม่ในครั้งต่อไปที่คุณใช้อินเทอร์เฟซ (เว้นแต่คุณจะต้อง เปลี่ยนเวอร์ชัน)
  4. คลิกเริ่ม

ตัวเลือก OT Sniffer Wireshark Extcap

หากบันทึกพารามิเตอร์แล้ว ให้เริ่มตรวจหาโดยการเลือกฮาร์ดแวร์ และคลิกไอคอน Wireshark ที่ด้านซ้ายบน

จับภาพจากอินเทอร์เฟซหลายรายการ

เลือกอินเทอร์เฟซฮาร์ดแวร์ทั้งหมดที่แสดงในหน้าจอจับภาพและคลิก ไอคอน Wireshark ที่ด้านซ้ายบน

ใช้ช่องเหล่านี้เพื่อระบุตัวดักจับแต่ละรายการเมื่อจับภาพจากหลายตัว อินเทอร์เฟซ:

  • รหัสอินเทอร์เฟซ (frame.interface_id) — ตัวระบุอินเทอร์เฟซที่ Wireshark ใช้ เพื่อระบุอินเทอร์เฟซการจับภาพ
  • ชื่ออินเทอร์เฟซ (frame.interface_name) — ชื่ออินเทอร์เฟซที่ใช้โดย Wireshark สำหรับระบุอินเทอร์เฟซการจับภาพ
  • Channel (wpan-tap.ch_num) — IEEE 802.15.4 Capture Channel (ช่วง: 11-26)

OT Sniffer Wireshark Extcap Pack

การแก้ปัญหา

Sniffer ของ OpenThread ไม่อยู่ในรายการอินเทอร์เฟซ Wireshark

  1. หากคุณติดตั้งอินเทอร์พรีเตอร์ Python ไว้หลายรายการ ให้ตรวจสอบว่า Python 3 สคริปต์ขิ้นงานใช้ล่าม Pyspinel ไม่สนับสนุน Python 2
  2. ตรวจสอบว่ามีการแจกแจงฮาร์ดแวร์ใน USB และโหลดไดรเวอร์แล้วหรือไม่
  3. ตรวจสอบว่าได้แฟลชเฟิร์มแวร์ (NCP หรือ RCP) ที่ถูกต้องไปยัง ฮาร์ดแวร์
  4. ตรวจสอบว่าสคริปต์ Python ที่อยู่ในเส้นทางภายนอกเป็นไฟล์ปฏิบัติการ
    • สำหรับ OS X และ Linux
      1. ยืนยันว่ามีสิทธิ์ดำเนินการสำหรับ extcap_ot.py ไฟล์:
        ls -l extcap_ot.py
        
      2. หากสิทธิ์ในการดำเนินการ (x) ขาดหายไป ให้แก้ไขสิทธิ์ดังนี้
        chmod +x extcap_ot.py
        
      3. ตรวจสอบว่าอินเทอร์เฟซแสดงอยู่
        extcap_ot.py --extcap-interfaces
        
    • สำหรับ Windows ให้ทำดังนี้
      1. ตรวจสอบว่าอินเทอร์เฟซแสดงอยู่
        extcap_ot.bat --extcap-interfaces
        
      2. หากออกมาพร้อมกับข้อผิดพลาด Python ให้ตรวจสอบว่าเวอร์ชัน Python เป็น 3.x หรือไม่ ดังนี้
        py -3 --version
        

Wireshark อนุญาตให้ผู้ใช้รูทจับแพ็กเก็ตได้เท่านั้น

ระหว่างการติดตั้ง Wireshark ใน Ubuntu ผู้ใช้จะได้รับแจ้งให้เลือก ตัวเลือกต่อไปนี้

  1. สร้างกลุ่มผู้ใช้ wireshark และอนุญาตให้สมาชิกทั้งหมดของกลุ่มนั้นดำเนินการต่อไปนี้ได้ ดักจับแพ็กเก็ต
  2. อนุญาตให้ผู้ใช้ root บันทึกแพ็กเก็ตเท่านั้น

เราไม่แนะนำให้ใช้ Wireshark ในฐานะผู้ใช้ root หากเลือก ให้เปลี่ยนแปลงการตั้งค่าดังนี้

sudo dpkg-reconfigure wireshark-common

หากมีการกำหนดค่า Wireshark เพื่อจำกัดการจับภาพเฉพาะสำหรับสมาชิกของ wireshark คุณอาจต้องเพิ่มผู้ใช้ที่ถูกต้องลงในกลุ่ม

sudo usermod -a -G wireshark user

เพิ่มผู้ใช้ที่ถูกต้องลงในกลุ่ม dialout ด้วย

sudo usermod -a -G dialout user

ปิดและรีสตาร์ท Wireshark เพื่อใช้การตั้งค่ากลุ่มผู้ใช้ใหม่

ข้อผิดพลาดของรูปแบบ Wireshark เมื่อจับภาพบนอินเทอร์เฟซ USB หลายอินเทอร์เฟซบน Windows

นี่เป็นปัญหาที่ทราบแล้ว สำหรับ Wireshark เวอร์ชันเก่าบางเวอร์ชัน ตรวจสอบว่าคุณกำลังใช้ Wireshark 3.0.6 หรือ ในภายหลัง