חבילות Snipch באמצעות Extcap

הצגת המקור ב-GitHub

במדריך הזה מוסבר איך להגדיר את extcap ל-Wireshark כדי לרחרח חבילות מרשת Thread.

כדי להשתמש ב-Pyspinel לניטור חבילות בלי extcap, אפשר לעיין במאמר ניטור חבילות באמצעות 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

פיתוח והעברה (flash) של הסניפר

ההוראות ליצירת גרסאות build ולחיבור (flashing) משתנות בהתאם לפלטפורמה.

הוראות לפיתוח ולתוכנת הקושחה של CC2538 מפורטות בקובץ ה-README לדוגמה של CC2538 ב-GitHub.

הוראות כלליות ל-build מפורטות במאמר איך יוצרים build של OpenThread.

שימוש בסורק

מסך הצילום של Wireshark מוצג בפעם הראשונה שמפעילים את Wireshark. אמורה להופיע רשימה של ממשקי חומרה שמחוברים ל-OpenThread sniffer.

תיעוד מתוך ממשק אחד

אם זו הפעם הראשונה שאתם משתמשים בממשק, לוחצים על הלחצן אפשרויות שמימין לממשק:

OT Sniffer Wireshark Extcap Capture

  1. מגדירים את Channel לערך הרצוי.
  2. בודקים את האפשרות IEEE 802.15.4 TAP כדי לוודא שפרטי הערוץ כלולים בפלט ה-pcap ואפשר להציג אותם בממשק המשתמש של Wireshark.
  3. מסמנים את התיבה Save parameters on capture start כדי לוודא שהפרמטרים האלה יישמרו אחרי תחילת הצילום, וכך לא תצטרכו להגדיר אותם שוב בפעם הבאה שתשתמשו בממשק (אלא אם תצטרכו לשנות את הערוץ).
  4. לוחצים על Start (הפעלה).

אפשרויות OT Sniffer Wireshark Extcap

אם הפרמטרים כבר שמורים, מתחילים לרחרח על ידי בחירת ממשק החומרה ולחיצה על סמל Wireshark בפינה הימנית העליונה.

תיעוד ממסכים מרובים

בוחרים את כל ממשקי החומרה שמפורטים במסך הצילום ולוחצים על סמל Wireshark בפינה הימנית העליונה.

משתמשים בשדות האלה כדי לזהות מנועי ניטור ספציפיים כשמצלמים ממספר ממשקים:

  • מזהה ממשק (frame.interface_id) – מזהה ממשק ש-Wireshark משתמש בו כדי לזהות ממשק תיעוד
  • שם ממשק (frame.interface_name) – שם הממשק שבו משתמש Wireshark כדי לזהות ממשק תיעוד
  • ערוץ (wpan-tap.ch_num) – ערוץ הקלטה של IEEE 802.15.4 (טווח: 11-26)

OT Sniffer Wireshark Extcap Packets

פתרון בעיות

הסניפר של OpenThread לא מופיע כממשק של Wireshark

  1. אם יש לכם כמה מפרשני Python מותקנים, חשוב לוודא שסקריפט extcap משתמש במפרש Python 3. Pyspinel לא תומך ב-Python 2.
  2. בודקים אם החומרה ממוספרת ב-USB ומנהלי ההתקנים נטענים.
  3. בודקים שתוכנת הקושחה הנכונה (NCP או RCP) נשלחה לחומרה.
  4. מוודאים שאפשר להריץ את סקריפט Python שנמצא בנתיב extcap.
    • ב-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, רק משתמש root יכול לתעד חבילות נתונים

במהלך התקנת 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 ואילך.