הפרופיל מורד, מיובא ואז נעצר בשורה 12 של הקובץ עם הודעה Unrecognized option שמציינת את keysize. שום דבר בחשבון לא השתנה, והשרת עדיין מקבל לקוחות אחרים. מה שהשתנה הוא הלקוח עצמו: Ubuntu 24.04 מתקין OpenVPN 2.6, בעוד הייצוא נכתב עבור 2.4. התיקון הוא סדרה קצרה של מחיקות, והסדר חשוב כי כל אפשרות מיושנת מפסיקה את הניתוח לפני שהבאה בכלל נקראת.

קראו את שורת השגיאה לפני שנוגעים בקובץ

OpenVPN מציין את הקובץ ואת השורה שבה הניתוח נעצר, ולכן אפשר לתקן רק בעיה אחת בכל הרצה. הפעילו את הפרופיל מהמסוף ולא מאפליקציית שולחן עבודה, כי האפליקציה בדרך כלל בולעת את stderr ומספר השורה הוא הרמז האמין היחיד שמתקבל: sudo openvpn --config /etc/openvpn/client/provider.ovpn. תקנו את השורה הזו, הריצו שוב, וצפו שהכשל הבא יציין אפשרות אחרת.

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

שלוש מחלקות כשל, שלושה תיקונים שונים

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

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

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

מחקו את האפשרויות ש-2.6 הסיר, בסדר הזה

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

מחקו קודם את keysize, כי אין לו מקבילה מודרנית והנוכחות שלו מסמנת בדרך כלל צופן שהלקוח הנוכחי דוחה ממילא. אחר כך מחקו את ncp-disable, ששלט במשא ומתן על צפנים, הוצא משימוש ב-2.5 ואינו קיים ב-2.6. החליפו את ns-cert-type server ב-remote-cert-tls server, שמבטא את אותה כוונה דרך בדיקה נתמכת. היסטוריית השינויים של 2.6 מפרטת את ההסרות הנותרות לצד החלופות שלהן, ולכן לכל מה שהמנתח עדיין דוחה יש תשובה מתועדת.

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

השאירו את BF-CBC פעיל רק כגיבוי מוגבל

יש ספקים שעדיין מסיימים על BF-CBC, שאיתו OpenVPN 2.6 לא ינהל משא ומתן בלי עזרה כי לצופן יש בלוק של 64 סיביות. התיקון הצר הוא רשימת גיבוי יחד עם ספק OpenSSL הישן, ולא הורדת גרסה של הלקוח כולו.

providers legacy default
data-ciphers AES-256-GCM:AES-128-GCM
data-ciphers-fallback BF-CBC

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

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

אמתו עם הפרופיל שהלקוח באמת טוען

חיבורים מיובאים מועתקים לעתים קרובות לספריית מערכת, ולכן עריכת הקובץ בתיקיית ההורדות שלכם עשויה לא לשנות דבר. מצאו את העותק שרץ: sudo grep -rl "remote " /etc/NetworkManager/system-connections /etc/openvpn. אחר כך הפעילו את המנהרה וקראו את שורת היומן שמדווחת איזה צופן ערוץ נתונים נבחר בפועל. חיבור שמשלים את לחיצת היד על הגיבוי אומר לכם שהשרת מעולם לא הציע משהו מודרני.

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

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

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