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

אל תאתחלו קודם; אתחול בדרך כלל הורס את הראיות.

התחילו ממה שעדיין פועל

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

אם הדמון חי, המנהרה כנראה גם חיה, והחלון החסר הוא קוסמטי בלבד.

Get-Process | Where-Object { $_.ProcessName -match 'vpn|wireguard|openvpn' }
Get-Service | Where-Object { $_.Name -match 'vpn|wireguard|openvpn' }
netsh wfp show state
systemctl status wg-quick@wg0 --no-pager
ps -eo pid,comm,args | grep -E 'openvpn|wg'
nft list ruleset | head -40

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

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

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

הבחינו בין יציאה נקייה לקריסה

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

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

שחזרו בלי לשבור בקרות אחרות

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

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

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

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