לחיצות יד עדכניות הן חדשות טובות והצהרה קטנה הרבה יותר מהמשפט שאנשים רוצים לכתוב. שני הצדדים החליפו הודעות לחיצת יד מאומתות. חבילת יישום עדיין צריכה להגיע ליעד הפנימי שלה ולחזור.

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

לחיצת יד מוכיחה מפתחות, לא אספקה

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

כך מנהרה יכולה להיות מוקמת לחלוטין בעוד כל חבילה בתוכה נזרקת. חבילה פנימית מנותבת לא נכון ותשובה שלוקחת נתיב אחר נראות אותו דבר מצד הלקוח.

כתובת פנימית אחת היא כל המבחן

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

אחר כך הביטו בנתיב שהלקוח בוחר. נתיב מקומי ספציפי יותר יכול לשלוח את החבילה למקום אחר לפני ש-WireGuard נשאל בכלל, וזה קורה בכל פעם שה-LAN הביתי חופף לטווח המרוחק.

ip route get 10.30.8.10
ip -4 addr show wg0
ip route show table all | grep -w wg0

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

מונים הם ראיות, לא פסק דין

wg show מדווח בתים שנשלחו והתקבלו לכל צד, ושני המספרים נעים באופן עצמאי. קחו קריאה, בצעו בקשה מורשית אחת ואז קחו קריאה נוספת באותה דקה.

wg show wg0 transfer
wg show wg0 latest-handshakes
ping -c 4 10.30.8.10
wg show wg0 transfer

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

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

הצד האחר בודק בעצמו את חבילת החזרה

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

חומות האש של המארח נמצאות מאחורי הבדיקה הזו. כלל העברה שמתיר את ממשק המנהרה אבל לא את תת-הרשת הפנימית מקבל את לחיצת היד ודוחה את החבילה. מצד הלקוח זה נראה בדיוק כמו צד מת. מארח עם שני ממשקים יכול גם לענות מהמקור הלא נכון, ואז הצד האחר משליך את התשובה שמעולם לא ציפה לה.

שמרו על הניסוי ישר

בדיקת פרופיל גישה מרחוק מאותה רשת ביתית שהוא אמור להגיע אליה מפעילה נתיב שונה מהמתוכנן. עברו לרשת החיצונית ורשמו את הקידומת המקומית שלה, כדי שאפשר יהיה להשוות את שתי הריצות.

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

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

מאמרים קשורים