OpenVPN ב-Windows: הפעלה אוטומטית של המנהרה ושמירת המסלולים
שירות Windows יכול להעלות את המנהרה לפני שמישהו מתחבר, ומסלול שנדחף שומר על קידומת האתר רק כל עוד החיבור פעיל.
כאן משתלבים שתי דרישות: המנהרה צריכה לעלות לפני שמישהו מתחבר, והתעבורה לאתר שני צריכה ללכת אחריה. אלו שתי בעיות נפרדות עם שני מנגנונים נפרדים. הפעלת השירות קובעת את הראשונה, ותוחלת החיים של המסלול קובעת את השנייה. פתרון של אחת משאיר את השנייה בדיוק במקום שבו הייתה.
צעד ראשון: שימו את הפרופיל במקום שבו השירות מחפש אותו
שירות Windows קורא פרופילים מתיקייה קבועה, וה-GUI קורא מאותו מקום, ולכן פרופיל שעובד כשאתם מייבאים אותו יכול להישאר בלתי נראה באתחול. שימו את קובצי .ovpn בתיקיית config של ההתקנה, שנמצאת בדרך כלל תחת Program Files. פרופיל שנשאר בתיקיית Downloads של משתמש אינו בטווח של השירות כלל.
הנחיות ישנות מצביעות על תיקיית config-auto, שחלק מגרסאות עידן 2.5 כיבדו והגרסאות המאוחרות לא. זו הסיבה ששדרוג יכול להפוך הפעלה אוטומטית עובדת לדממה, בלי שום דבר ביומן על אישורים. ודאו איזו תיקייה הגרסה המותקנת קוראת בפועל לפני שמעבירים קבצים.
כשיש כמה פרופילים במחשב אחד, תנו לכל אחד מתאם בעל שם דרך dev-node. אחרת הם מתחרים על אותו ממשק והשני נכשל באופן שנראה כמו בעיית אישורים.
צעד שני: הפעילו את השירות ולא את סמל מגש המערכת
הגדרת השירות OpenVPN ל-Automatic גורמת לו להתחיל באתחול בלי התחברות. זהו המנגנון, וסמל מגש המערכת אינו חלק ממנו. כשהשירות מחזיק בחיבור, ה-GUI עשוי לא להציג סמל ולא מצב, וזה צפוי ולא תקלה.
התוצאה היא שניתוק פירושו עצירת השירות, ולא לחיצה על Disconnect. ספרו למי שתומך במחשב, אחרת שיחת התמיכה הראשונה תהיה על סמל חסר.
בדקו שחשבון השירות יכול לקרוא את הפרופיל ואת חומר המפתח. בעיית הרשאה באתחול נראית ביומן בדיוק כמו כשל אימות.
צעד שלישי: קשרו את המסלול למנהרה
רשומה קבועה היא הכלי הלא נכון כאן. הוספת מסלול עם -P גורמת לו לשרוד אתחולים ולמרבה הצער גם את סגירת המנהרה. כשה-VPN כבוי, הקידומת עדיין מצביעה על שער שאינו קיים, כך שהמארח לא יכול להגיע ליעד הזה עד שמישהו מוחק את הרשומה.
שלוש חלופות מתנהגות נכון. דחפו את המסלול מהשרת, שמוסיף אותו בעת החיבור ומסיר אותו בעת הניתוק. הוסיפו אותו בסקריפט route-up שקורא את route_vpn_gateway, כך שהקפיצה הבאה מגיעה מהמנהרה המסוכמת. או השתמשו ב-Add-VpnConnectionRoute עם פרופיל VPN מקורי של Windows, שקושר את הקידומת לאותו חיבור.
כשהשרת מציע יותר ממה שהאתר הזה צריך, route-nopull דוחה את המסלולים הנדחפים ומשאיר את הטבלה מקומית לחלוטין. זה מתאים לפרופיל משותף שאסור שמשתמשיו יקבלו מסלול ברירת מחדל ארגוני.
צעד רביעי: לשרוד אתחול קר
הפעלת השירות לפני שמחסנית הרשת קיימת מייצרת ניסיון אחד שנכשל ובלי ניסיון חוזר. הגדרה ל-Automatic (Delayed Start), או הוספת תלות בשירות הרשת, מסירה את המרוץ הזה. אחר כך חזרו על מבחן האתחול ובדקו שאין עוד צורך בניסיון שני.
שינויי מסלול ומתאם דורשים הרשאות מנהל. קיצור דרך לאתחול פר משתמש אינו מחזיק בהן, ולכן סקריפט שעובד ממעטפת מורמת עלול לא לעשות דבר בשקט בעת ההתחברות. תזמנו אותו כמשימה עם ההרשאות הגבוהות ביותר, או תנו לשירות לקחת על עצמו את השינוי. אחר כך בדקו אותו כמשתמש שבאמת יתחבר.
בדקו את הרצף שאתם באמת פורסים, לא זה שאתם יכולים להפעיל ביד. אתחול קר הוא המבחן היחיד שמפעיל את הסדר.
צעד חמישי: אימות בלי ה-GUI
אחרי אתחול והתחברות, בדקו שלושה דברים בלי לפתוח את ה-GUI. המתאם צריך להחזיק כתובת,טבלת המסלולים צריכה להציג את קידומת האתר עם שער המנהרה כקפיצה הבאה, ופינג לכתובת בצד הרחוק צריך לענות. כל בדיקה מתאימה למנגנון אחר מהצעדים שלמעלה.
כשהמתאם לא מופיע אף פעם, החשוד הוא הדרייבר ולא הפרופיל. שני הכשלים האלה לא נראים דומים ביומן, ורק אחד מהם מגיב להתקנה מחדש של תוכנה.