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

מה הקטגוריה בעצם קובעת

Network Location Awareness בונה חתימה לכל רשת מחוברת ממה שהמתאם יכול לדווח: כתובת השער וה-MAC, סיומת ה-DNS, אם בקר תחום עונה ואם הרשת מגיעה לאינטרנט. Windows מצמיד פרופיל לחתימה הזו, ואז חומת האש מחילה את מערכת הכללים של אותו פרופיל. ציבורי הוא ברירת המחדל כשהזיהוי נכשל, ולכן מנהרה עובדת יכולה עדיין להיות מסומנת בתור רשת לא מזוהה.

מתאם TUN או TAP בדרך כלל נותן לזיהוי מעט מאוד מידע. בן הזוג במנהרה הוא לרוב כתובת אחת ולא שער, ייתכן ש-DNS נדחף רק בתוך המנהרה, ולמתאם אין נתיב ברירת מחדל משלו. התווית שמתקבלת מתארת את הקלט של חומת האש, לא את בריאות המנהרה, וזה מדוע כללי הפרופיל הפרטי מפסיקים להתאים ברגע שה-VPN מתחבר.

תנאי ראשון: המנהרה היא הנתיב המהימן

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

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

תנאי שני: הסיווג שורד התחברויות מחדש

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

ישנן שלוש דרכים לעשות זאת קבוע. הנקייה ביותר היא מדיניות: פתחו את secpol.msc, עברו אל Network List Manager Policies והגדירו את סוג המיקום עבור הרשת, כולל המדיניות לרשתות לא מזוהות, כך שהפרופיל יוחל על ידי מדיניות ולא על ידי פקודה. השנייה היא סקריפט לכל חיבור או משימה מתוזמנת שמריצה את ה-cmdlet של PowerShell לאחר שהמנהרה עולה. השלישית היא תחבולת הנתיב הוותיקה, שנותנת לזיהוי שער לבדיקה:

route -p add 0.0.0.0 mask 0.0.0.0 10.8.0.1 metric 50 IF 24
Get-NetConnectionProfile

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

תנאי שלישי: דרושה לכם מערכת הכללים הפרטית

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

ScenarioCategoryWhy
Corporate tunnel to a file server or printerPrivatePrivate rules carry the sharing you need
Commercial VPN for privacyPublicThe exit subnet is shared with strangers
Split tunnel with a single host routePublicNo trusted subnet and an unstable signature
Site-to-site tunnel to a branch LANPrivateThe far subnet is managed like the local one
Lab adapter you control end to endPrivateDiscovery helps and nothing else is exposed

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

לבצע את השינוי בלי להרחיב את כל השאר

כוונו לאינדקס הממשק, לא לתו כללי, וקראו את הרשימה לפני ואחרי:

Get-NetConnectionProfile
Set-NetConnectionProfile -InterfaceIndex 24 -NetworkCategory Private
Get-NetFirewallProfile

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

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

בדקו את השיתוף, לא את התווית

לאחר השינוי, בדקו את המשאב עצמו במקום לסמוך על התווית:

Test-NetConnection files.corp.example -Port 445
Resolve-DnsName files.corp.example

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

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

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