Phát hiện gói tin bằng Extcap

Xem nguồn trên GitHub

Hướng dẫn này trình bày cách định cấu hình tiện ích mở rộng cho Wireshark để phát hiện các gói từ mạng Luồng.

Để sử dụng Pyspinel để phân tích gói không cần extcap, hãy tham khảo bài viết Packet Sniffing với Pyspinel.

Thiết lập môi trường hít đất

Trước khi bắt đầu, hãy hoàn thành các bước sau:

Xác minh

Hướng dẫn này đã được xác minh bằng Zolertia Firefly (Texas Instruments CC2538 SoC) trên các hệ thống máy chủ sau đây:

  • Debian 4.19.37 - Wireshark 3.0.4
  • macOS Mojave 10.14.6 - Wireshark 3.0.5
  • Phiên bản 64 bit của Windows 10 phiên bản 17134 – Wireshark 3.0.6

Xây dựng và cài đặt sniffer

Hướng dẫn tạo và cài đặt ROM phụ thuộc vào nền tảng.

Để xem hướng dẫn về cách tạo và cài đặt ROM25 của CC2538, hãy tham khảo ví dụ về README của CC2538 trên GitHub.

Để xem hướng dẫn chung về bản dựng, hãy tham khảo nội dung Cách xây dựng OpenThread.

Dùng máy bắn tỉa

Màn hình chụp Wireshark được hiển thị khi Wireshark khởi chạy lần đầu tiên. Ứng dụng này sẽ liệt kê các giao diện phần cứng được kết nối với một trình phát âm thanh OpenThread.

Chụp từ một giao diện

Nếu đây là lần đầu tiên bạn sử dụng giao diện, hãy nhấp vào nút Tuỳ chọn ở bên trái giao diện:

Chụp ảnh ngoài trời OT Sniffer Wireshark

  1. Đặt Kênh thành giá trị mong muốn.
  2. Kiểm tra IEEE 802.15.4 TAP để đảm bảo thông tin kênh có trong đầu ra pcap và có thể hiển thị trong Wireshark GUI.
  3. Đánh dấu tuỳ chọn Save parameters on Capture start (Lưu các tham số khi bắt đầu chụp) để đảm bảo rằng các tham số này được lưu sau khi bắt đầu chụp, để tránh phải đặt lại các tham số này vào lần tiếp theo bạn sử dụng giao diện (trừ khi bạn cần thay đổi kênh).
  4. Nhấp vào Bắt đầu.

Tùy chọn tiện ích bên ngoài OT Sniffer Wireshark

Nếu các tham số của bạn đã được lưu, hãy bắt đầu đánh giá bằng cách chọn giao diện phần cứng rồi nhấp vào biểu tượng Wireshark ở trên cùng bên trái.

Chụp từ nhiều giao diện

Chọn tất cả giao diện phần cứng có trong màn hình chụp rồi nhấp vào biểu tượng Wishashark ở trên cùng bên trái.

Sử dụng các trường này để xác định từng thông tin đánh giá riêng lẻ khi chụp từ nhiều giao diện:

  • Interface ID (frame.interface_id) — Giá trị nhận dạng giao diện mà Wireshark sử dụng để xác định giao diện chụp ảnh
  • Tên giao diện (frame.interface_name) — Tên giao diện mà Wireshark sử dụng để xác định giao diện chụp ảnh
  • Kênh (wpan-tap.ch_num) — Kênh chụp IEEE 802.15.4 (phạm vi: 11-26)

Gói ngoại tuyến Wireshark OT Sniffer

Khắc phục sự cố

Tiện ích OpenThread sniffer không được liệt kê là giao diện Wireshark

  1. Nếu bạn đã cài đặt nhiều trình phiên dịch Python, hãy đảm bảo rằng tập lệnh diễn giải Python 3 được sử dụng trong tập lệnh extcap. Pyspinel không hỗ trợ Python 2.
  2. Kiểm tra xem phần cứng có được liệt kê trên USB hay không và các trình điều khiển có được tải hay không.
  3. Kiểm tra để chắc chắn rằng chương trình cơ sở (NCP hoặc RCP) đã được cài đặt xong vào phần cứng.
  4. Xác minh rằng tập lệnh Python nằm trong đường dẫn bên ngoài có thể thực thi được.
    • Đối với OS X và Linux:
      1. Xác minh rằng bạn có quyền thực thi cho tệp extcap_ot.py:
        ls -l extcap_ot.py
        
      2. Nếu thiếu quyền thực thi (x), hãy sửa đổi các quyền:
        chmod +x extcap_ot.py
        
      3. Xác minh giao diện có trong danh sách:
        extcap_ot.py --extcap-interfaces
        
    • Đối với Windows:
      1. Xác minh giao diện có trong danh sách:
        extcap_ot.bat --extcap-interfaces
        
      2. Nếu thoát bằng lỗi Python, hãy xác minh phiên bản Python là 3.x:
        py -3 --version
        

Wireshark chỉ cho phép người dùng gốc thu thập các gói

Trong quá trình cài đặt Wireshark trên Ubuntu, người dùng sẽ được nhắc chọn một trong các tuỳ chọn sau:

  1. Tạo nhóm người dùng wireshark và cho phép tất cả thành viên của nhóm đó thu thập các gói.
  2. Chỉ cho phép người dùng root chụp gói.

Bạn không nên sử dụng Wireshark làm root. Nếu bạn chọn tuỳ chọn đó, hãy thay đổi chế độ cài đặt:

sudo dpkg-reconfigure wireshark-common

Nếu Wireshark được định cấu hình để hạn chế chụp cho các thành viên của nhóm wireshark, bạn có thể cần thêm đúng người dùng vào nhóm:

sudo usermod -a -G wireshark user

Ngoài ra, hãy thêm đúng người dùng vào nhóm dialout:

sudo usermod -a -G dialout user

Đóng rồi khởi động lại Wireshark để áp dụng các chế độ cài đặt mới cho nhóm người dùng.

Lỗi định dạng Wireshark khi chụp trên nhiều giao diện USB trên Windows

Đây là vấn đề đã biết đối với một số phiên bản Wireshark cũ. Đảm bảo bạn đang sử dụng Wireshark 3.0.6 trở lên.