סימנתם אפליקציה אחת ב-OpenVPN? בסיס הרשימה הוא שמכריע
אותה חבילה מסומנת פירושה הכללה או החרגה בהתאם לבסיס הרשימה. בחרו תחילה הכללה-בלבד, התחברו מחדש, ואז בדקו את כל זרימת העבודה.
תיבת הסימון נראית כמו כל ההחלטה, וב-Android היא לא. אותה חבילה מסומנת פירושה „רק האפליקציה הזו משתמשת ב-VPN” בבסיס הכללה-בלבד, ו„האפליקציה הזו עוקפת את ה-VPN” בבסיס החרגת הנבחרים. אנשים מתקינים לקוח, מוצאים רשימה בשם אפליקציות מורשות, מסמנים את החבילה היחידה שמעניינת אותם, ומתרחקים עם מדיניות שעושה את ההיפך. החלפת לקוח עוזרת לעיתים נדירות; בחירת הבסיס לפני שנוגעים ברשימה עוזרת.
הבסיס הוא המדיניות, לא תיבת הסימון
באמצעות VpnService של Android הלקוח מגדיר ניתוב לפי אפליקציה עם addAllowedApplication או addDisallowedApplication. הראשון מגביל את המנהרה לחבילות הרשומות, השני מעביר במנהרה הכול מלבדן. לקוחות עוטפים את השניים בממשק שעשוי להיראות כמעט זהה, וחלקם מכנים את הקטע לפי הרשימה ולא לפי המצב, ולכן כותרת הקטע לבדה אינה יכולה לומר איזה בסיס פעיל.
קראו את בקרת המצב שמעל הרשימה, לא את הכותרת. בלקוח המקורי OpenVPN for Android לרשימת האפליקציות המורשות יש גם בסיס הכללה-בלבד וגם בסיס החרגת הנבחרים, וגרסה ממותגת יכולה לנסח את שניהם אחרת ועדיין לשמור על שתי ההתנהגויות. צילום מסך מלקוח אחר, או מגרסה ישנה יותר של אותו לקוח, אינו הוכחה לגבי המצב שבו אתם נמצאים.
| What the client shows | What a checked app gets |
|---|---|
| Allowed apps, include-only baseline | The app uses the tunnel; unchecked apps do not |
| Allowed apps, exclude-selected baseline | The app bypasses the tunnel; everything else uses it |
| No list configured | Client or profile default, commonly all apps |
הטבלה הזו היא כל המיתוס. סימון האפליקציה הוא הצהרה על חבילה אחת; הבסיס קובע אם ההצהרה היא „כלול אותה” או „החרג אותה”.
קודם המצב, אחר כך החבילה
עבדו בסדר הזה, כי בחירה שנעשתה תחת בסיס אחד עשויה לשרוד שינוי מצב ולהפוך את השפעתה בשקט:
- זהו את החבילה האמיתית ואם היא העותק של הפרופיל האישי או של פרופיל העבודה.
- פתחו את הגדרות בחירת האפליקציות עבור פרופיל ה-VPN המדויק שאליו אתם מתחברים.
- הגדירו את הבסיס שמשמעותו „רק האפליקציות הנבחרות משתמשות ב-VPN”.
- כללו את החבילה המיועדת והשאירו אפליקציות לא קשורות מחוץ לקבוצה.
- התחברו מחדש כדי שהלקוח יבנה מחדש את הממשק עם הרשימה החדשה.
הפרופיל חשוב לא פחות מהחבילה. לקוח עשוי להחזיק כמה פרופילים, ובחירה לפי אפליקציה שייכת לזה שאליו אתם באמת מתחברים; עריכת פרופיל שאינכם משתמשים בו אף פעם לא משנה דבר. במכשיר מנוהל, פרופיל העבודה הוא משתמש נפרד עם עותק משלו של האפליקציה ומדיניות משלו, ולכן העובדה שהמופע האישי נמצא בתוך המנהרה אינה אומרת דבר על מופע העבודה.
התחברו מחדש לפני שתשפטו את התוצאה
VpnService קורא את רשימות האפליקציות כאשר ממשק המנהרה מוקם. מנהרה פועלת אינה בהכרח קולטת עריכת רשימה, ולקוחות שונים בשאלה אם הם בונים מחדש אוטומטית או ממתינים שתתנתקו ותתחברו שוב.
אם נראה שהשינוי לא עושה דבר, בדקו את ההתחברות מחדש לפני שאתם מטילים ספק ברשימה. לאחר מכן שלחו בקשה חדשה במקום לרענן דף שכבר היה פתוח: אפליקציה שמחזיקה חיבור קיים היא נושא בדיקה גרוע, והתוצאה שאתם רואים עשויה להשתייך לממשק הישן.
זרימת העבודה שלכם עשויה לצאת מהאפליקציה
אפליקציה עשויה להעביר לדפדפן לצורך התחברות, לצופה מסמכים או ליעד שיתוף. תחת בסיס הכללה-בלבד העוזרים האלה נמצאים מחוץ למנהרה, ולכן זרימת עבודה עשויה להיכשל באמצע גם אם האפליקציה הראשונה הוגדרה נכון. כללו את העוזר רק אם זרימת העבודה באמת זקוקה לו, והוסיפו אותו במכוון במקום לגלות אותו במהלך הדגמה.
בחירה לפי אפליקציה גם אינה מחליפה את מדיניות הניתוב של החיבור עצמו. הפרופיל עדיין צריך לשאת את קידומות היעד ומשפחות הכתובות שהאפליקציה משתמשת בהן, והשער עדיין צריך להתיר את השירות. אפליקציה רשומה כיאות עם יעד בלתי נגיש נראית כמו רשימה שהוגדרה לא נכון.
בדקו את שני הצדדים, ואז כתבו את המדיניות
בדקו בקשה חדשה אחת באפליקציה הנכללת ואחת באפליקציה שאמורה להישאר בחוץ. השוו את כתובת היציאה ואת הגישה למשאב פרטי, ואז חזרו על כך לאחר התחברות מחדש. אם הארגון שלכם משתמש במדיניות של Android לחסימת חיבורים ללא VPN, אפליקציה מוחרגת עשויה להיחסם כליל במקום לצאת ישירות; זו המדיניות שעובדת, לא תקלה שיש לעקוף.
תעדו את המצב, את שמות החבילות עם הפרופיל שלהן, אילו אפליקציות אמורות לעקוף, אילו משפחות כתובות המנהרה נושאת, ומה אמור לקרות כשהמנהרה למטה. אם הלקוח אינו יכול לבטא את זרימת העבודה בצורה נקייה, בחרו סט אפליקציות מורשה רחב יותר או מדיניות פרופיל מנוהל במקום לערוך כללי חומת אש ברמת השורש, שאינם חלק ממנגנון האפליקציה הנתמך של Android.