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

שלוש שאלות, פלט פקודה אחד

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

QuestionEvidence it needsWhat does not answer it
Is the peer reachable now?A recent handshake and a working return pathAn interface that exists
Has it been active?Transfer counters moving over timeA handshake timestamp alone
Is access still granted?The configuration or controller that authorizes itAny protocol timer

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

במה הטיימרים באמת שולטים

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

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

קראו את מצב הריצה לכל עמית, באמצעות המפתח הציבורי ולא ההערה:

wg show wg0 latest-handshakes
wg show wg0 transfer

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

מדוע עמית בטל אינו עמית מנותק

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

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

הציבו את המועד האחרון היכן שההרשאה נמצאת

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

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

sudo wg set wg0 peer <public-key> remove
sudo wg-quick save wg0

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

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