מדריך זה מסביר כיצד להגדיר extcap עבור Wireshark כדי לסרוק מנות מ רשת של פרוטוקול Thread.
כדי להשתמש ב-Pyspinel לכיסוח חבילות ללא extcap, עיינו במאמר לכידת חבילות באמצעות פיספינל.
הגדרה של סביבת sniffer
לפני שמתחילים, צריך לבצע את השלבים הבאים:
אימות
המדריך הזה אומת באמצעות 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.
הוראות כלליות לפיתוח גרסת build זמינות במאמר איך מפתחים OpenThread.
שימוש במברשת
מסך הצילום של Wireshark מוצג בעת ההפעלה הראשונה של Wireshark. הוא אמור להציג רשימה של ממשקי חומרה שמחוברים ל-sniffer של OpenThread.
צילום מממשק אחד
אם זו הפעם הראשונה שאתם משתמשים בממשק, יש ללחוץ על הלחצן אפשרויות. שמשמאל לממשק:
- מגדירים את הערוץ לערך הרצוי.
- בודקים את TAP לפי IEEE 802.15.4 כדי לוודא שפרטי הערוץ כלול בפלט ה-pcap וניתן להציג אותו ב-GUI של Wireshark.
- מסמנים את האפשרות שמירת פרמטרים בתחילת הצילום כדי לוודא הפרמטרים נשמרים לאחר תחילת הצילום, כדי למנוע להגדיר אותה שוב בפעם הבאה שתשתמשו בממשק (אלא אם תצטרכו מחליפים את הערוץ).
- לוחצים על Start (הפעלה).
אם הפרמטרים שלך כבר שמורים, אפשר להתחיל לסרוק על ידי בחירה של החומרה ולחיצה על הסמל Wireshark בפינה הימנית העליונה.
צילום מתוך ממשקים מרובים
בוחרים את כל ממשקי החומרה המפורטים במסך הצילום ולוחצים על סמל Wireshark בפינה הימנית העליונה.
יש להשתמש בשדות האלה כדי לזהות רוגשים ספציפיים כשמקליטים מכמה אתרים ממשקים:
- Interface ID (frame.interface_id) – מזהה ממשק שמשמש את Wireshark לזיהוי ממשק צילום
- שם הממשק (frame.interface_name) — שם הממשק משמש את Wireshark לזיהוי ממשק לכידה
- ערוץ (wpan-tap.ch_num) — ערוץ לכידת IEEE 802.15.4 (טווח: 11-26)
פתרון בעיות
תוכנת ה-sniffer של OpenThread לא רשומה כממשק Wireshark
- אם מותקנים אצלכם כמה תרגוםי Python, צריך לוודא ש-Python 3 המתרגם משמש את הסקריפט extcap. Pyspinel לא תומך ב-Python 2.
- בדוק אם החומרה מצוינת ב-USB ואם מנהלי ההתקנים נטענים.
- מוודאים שהקושחה הנכונה (NCP או RCP) הותאמה אל חומרה.
- יש לוודא שהסקריפט Python שנמצא בנתיב extcap הוא קובץ הפעלה.
- עבור OS X ו-Linux:
- צריך לוודא שיש הרשאת הפעלה בשביל
extcap_ot.py
file:ls -l extcap_ot.py
- אם הרשאת הביצוע (x) חסרה, צריך לשנות את ההרשאות:
chmod +x extcap_ot.py
- מוודאים שהממשק מופיע ברשימה:
extcap_ot.py --extcap-interfaces
- צריך לוודא שיש הרשאת הפעלה בשביל
- ב-Windows:
- מוודאים שהממשק מופיע ברשימה:
extcap_ot.bat --extcap-interfaces
- אם ביציאה יש שגיאת Python, צריך לוודא שגרסת Python היא 3.x:
py -3 --version
- מוודאים שהממשק מופיע ברשימה:
- עבור OS X ו-Linux:
Wireshark מאפשר רק למשתמש ברמה הבסיסית לתעד חבילות
במהלך התקנת Wireshark ב-Ubuntu, המשתמש מתבקש לבחור מבין האפשרויות הבאות:
- ליצור את קבוצת המשתמשים
wireshark
ולאפשר לכל החברים בה ללכידת חבילות. - מתן אפשרות למשתמש
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 או מאוחר יותר.