שירות OpenVPN נכשל בפרופיל שה-GUI פותח: חמש בדיקות
אותו פרופיל, מפעיל אחר. בדקו את תיקיית העבודה, את חשבון השירות, את מאפיין הקובץ המוצפן, את הבעלים ואז את העטיפה.
שני מפעילים פותחים את אותו פרופיל באותו מחשב, ורק ה-GUI מתחבר. הקובץ שלם והמתקין כנראה תקין; מה ששונה הוא ההקשר שכל מפעיל נותן ל-openvpn.exe. תיקיית העבודה, זהות החשבון ומאפייני הקובץ כולם נוסעים עם ההקשר הזה. בדקו אותם בסדר הזה ועצרו בראשון שמסביר את השגיאה.
ודאו איזה מפעיל נכשל
התחילו בהוכחת הפיצול. אם ה-GUI מתחבר והשירות לא, עם אותו נתיב פרופיל, הקובץ קריא למישהו והשאלה הופכת למי קורא אותו ומאיפה. אם שניהם נכשלים, הפרופיל שבור וכל זה לא רלוונטי. רשמו את שם השירות ואת הפרופיל המדויק שנאמר לו לטעון.
ייתכן ששירות שמכוון לתיקיית ההפעלה האוטומטית של עצמו לא טוען את הקובץ שפתוח אצלכם בעורך. השוו את הנתיב בהגדרות השירות לנתיב ב-GUI, תו אחר תו, כי שם תיקייה בסוף או אות כונן אחרת מספיקים כדי לשלוח אתכם לענף הלא נכון.
היכן נתיבים יחסיים נפתרים
פרופיל שמפנה ל-ca.crt או לסקריפט עזר בשם בלבד דורש חיפוש יחסית למקום שבו התהליך נמצא. ה-GUI מתחיל בתיקיית התצורה, ולכן השמות האלה נפתרים. לשירות שמופעל על ידי מנהל השירותים אין נקודת התחלה כזו, והחיפוש נכשל לפני שנקרא אישור. לכן אותו פרופיל עובד במפעיל אחד ולא באחר.
תנו לעטיפה תיקייה להתחיל בה, או הפכו כל הפניה למוחלטת. שחזור ההקשר של ה-GUI בשורת פקודה נראה כך:
openvpn --cd "C:\VPN\profiles\office" --config "C:\VPN\profiles\office\office.ovpn"
העלאת רמת הפירוט בפקודה הזו מציגה את הנתיב המדויק שנוסה. עשו זאת לפני שינוי הרשאות, כי קובץ חסר וקריאה שנדחתה דורשים תיקונים שונים. יומן ברירת המחדל לא מבחין ביניהם. דגל נוסף אחד חוסך שעה של ניחושים.
כשזהות השירות לא יכולה לקרוא
שירות פועל בזהות מערכת, לא כמוכם. ACL שמעניק למשתמש שלכם שליטה מלאה ולאף אחד אחר נכשל שם בעוד שהוא עובד מצוין בהפעלה שלכם. פרופיל שנשמר בכונן ממופה או בשיתוף מאומת נכשל מאותה סיבה. אשרו את הרשאות הקובץ לפני שתסתכלו על משהו אחר.
הבדיקה היא קריאה של ההרשאות האפקטיביות ועוד קריאה שמנוסה בזהות השירות. הריצו את החלק הראשון מחלון פקודה מורם:
icacls "C:\VPN\profiles\office\office.ovpn"
ואז נסו את אותה קריאה בזהות השירות, למשל עם psexec -s -i מ-Sysinternals, וראו אם הקובץ נפתח. אם לא, שום תיקון נתיב לא יעזור. תקנו את ה-ACL או העבירו את הפרופיל למקום שזהות השירות יכולה לקרוא ממנו.
הצפנה ברמת הקובץ היא המקרה השני והנדיר יותר. פרופיל שמסומן במאפיין Encrypting File System מפוענח בשקיפות עבור המשתמש שהצפין אותו ונשאר בלתי קריא לחשבון שירות. לכן אותו קובץ נפתח בעורך שלכם ולא תחת השירות.
המאפיין גלוי מחלון פקודה מורם, ובדיקתו לא פותחת את הפרופיל. הריצו את שתי הפקודות וקראו את הפלט:
cipher /s:"C:\VPN\profiles\office"
attrib "C:\VPN\profiles\office\office.ovpn"
ניקוי המאפיין הופך את הקובץ לקריא, והוא גם מסיר את ההגנה שנשאה. אם הפרופיל חייב להישאר מוגן, שימו את החומר הסודי במקום שיש לזהות השירות הרשאה מפורשת במקום להסתמך על הצפנה לפי משתמש. סידור כזה שורד החלפת סיסמה, והוא הופך את הגישה לניתנת לבדיקה על ידי מישהו אחר מהאדם שהצפין את הקובץ.
להחליט למי שייך המנהרה
ה-GUI יכול לבקש סיסמה ויכול לקרוא אישור ממאגר המשתמש שלכם. השירות לא יכול אף אחד מהם, ולכן פרופיל שתלוי בסוד אינטראקטיבי לעולם לא יתחיל ללא השגחה, לא משנה איך יתוקנו הנתיבים. הגבול הזה הוא החלטת תכן, לא פגם שיש לעקוף. בחרו בעלים אחד לפני שתשנו משהו אחר.
אם המנהרה חייבת להיות פעילה לפני הכניסה, תנו לשירות מקור אישורים ללא השגחה ועותק משלו של הפרופיל. אם היא צריכה להתקיים רק כשאתם ליד השולחן, השאירו אותה ב-GUI והסירו את עותק השירות. שניהם יחד הוא התצורה שמייצרת התנגשויות מתאם ונתיבים כפולים.
התנגשות כזו מאובחנת בדרך כלל כשגיאת תצורה ולא כשני בעלים שנאבקים על מתאם אחד. יומן האירועים יראה תהליך אחד שנכשל בפתיחת התקן TAP, מה שנראה כמו בעיית הרשאות ואינו. ספרו קודם את הבעלים.
מה העטיפה של השירות מפעילה בפועל
נקודת הכניסה של השירות היא עטיפה קטנה שקוראת את הפרמטרים השמורים של עצמה ואז מפעילה את openvpn.exe. כששורת הפקודה ביומן האירועים לא תואמת את הציפייה שלכם, הערכים האלה הם מה שצריך לבדוק. התקנה מחדש מחזירה אותם לברירת המחדל והורסת את הראיות. קראו אותם קודם.
הערכים חיים ברגיסטרי תחת המפתח של השירות עצמו, ו-sc qc מציג את נתיב הקובץ הבינארי שמנהל השירותים יפעיל. השוו את הנתיב הזה לתצורה השמורה של העטיפה לפני שתערכו אחד מהם.
החלפת העטיפה בסקריפט שאתם שולטים בו פולשנית יותר, אבל היא מקפלת את שורת הפקודה האפקטיבית לקובץ קריא אחד. סיימו בהפעלה מחדש, ואז קראו את היומן לכל פרופיל עד שמופיעה שורת ההפעלה המוצלחת הראשונה. מצב שירות של פועל אומר רק שהעטיפה לא יצאה, וזה נכון גם כשהבן שלה מת מיד.