מחיקת key-method מפרופיל OpenVPN לא משנה דבר
ההנחיה נעלמה מהמנתח, לא מהפרוטוקול. הפרידו את האפשרות המיושנת מתבנית החלפת המפתחות לפני עריכת פרופיל.
פרופיל שעבד שנים רבות מסרב לפתע לעלות, וההודעה מזכירה הנחיה שאיש אינו זוכר שהוסיף: key-method. תוצאת החיפוש הבאה מציעה להוסיף key-method 2 לשם תאימות, וזו עצה מעידן אחר. המנתח שדחה את השורה הוא מנתח עדכני, ואין בו אפשרות כזו כלל. הסרת השורה מתקנת את העלייה, והיא לא משנה דבר באופן שבו שני הצדדים מגנים על החיבור.
הפער הזה בין מה שהפרופיל מכיל לבין מה שהפרוטוקול באמת עושה הוא כל הנושא כאן, והוא מסביר כמה עריכות אחרות שאנשים מבצעים בו-זמנית. הוא גם מסביר מדוע העריכות האלה מגיעות בדרך כלל בחבילה אחת.
התסמין הוא שגיאת ניתוח, לא כשל בלחיצת יד
אפשרויות נקראות לפני שנשלח כל פקט. פרופיל עם הנחיה לא מוכרת נכשל בשלב הזה, ולכן התהליך לא מגיע לרשת ולעולם לא מייצר שגיאת לחיצת יד. הניסוח בדרך כלל מזהה את האפשרות ואת הקובץ, מה שהופך את זה לאחד הכשלים הקלים ביותר לייחוס. אין בו פקט, נתיב או חומת אש.
openvpn --config /etc/openvpn/client/office.ovpn --verb 3 --log /tmp/parse.log
grep -n 'Options error' /tmp/parse.log
אם ההודעה מזכירה את ההנחיה, האבחון הסתיים: הקובץ מכיל משהו שהבנייה הזאת לא מקבלת. אם ההודעה מזכירה נתיב קובץ במקום, הבעיה היא include או מפתח חסר, וזהו חלק אחר של אותו שלב עלייה.
מה שאסור להסיק הוא שהלקוח או השרת זקוקים למצב פרוטוקול ישן יותר. כשל ניתוח הוא בעיית אוצר מילים בין הקובץ שלכם לבין הקובץ הבינארי, והקובץ הבינארי במקרה הזה פשוט הפיל מילה מאוצר המילים שלו.
הנחיה ותבנית שידור הן שני דברים שונים
האפשרות הישנה key-method בחרה כיצד החלפת המפתחות של TLS ממוסגרת, וההחלפה המודרנית היא שיטת ריבוי הפקטים שאותה אפשרות דרשה פעם. האפשרות נעלמה משום שהיא לא בחרה עוד דבר; התבנית שהיא נקבה בשמה הפכה ליחידה. לכן הסרת השורה משאירה את החיבור עם אותה מסגור כמו קודם. עריכת טקסט לא יכולה לשנות זאת בשום כיוון.
זו הסיבה שהחזרת קובץ בינארי ישן כדי «לשחזר» את שיטה 2 היא התיקון הלא נכון. היא לא משחזרת דבר מלבד מנתח ישן יותר עם ברירות מחדל ישנות יותר, והיא עולה לכם בתיקונים שהגיעו אחריה. אותו היגיון חל על החלשת בדיקת תעודה או רשימת צפנים בתקווה שהחיבור יחזור.
בדיקה שימושית היא הגרסה והתצורה המנותחת, לא נוכחות המילה בקובץ:
openvpn --version | head -n 1
grep -rn 'key-method' /etc/openvpn/ 2>/dev/null
מה להסיר, ומאיזה קובץ
ערכו את הקובץ שהתהליך הרץ באמת קורא, ורק אותו. במערכות ארוזות זה בדרך כלל הפרופיל בספריית הלקוח או השרת שאותה מציין ה-unit, ולא עותק בספריית הבית שלכם שאתם שומרים לעיון. פרופיל שנוצר עשוי להיבנות מחדש מתבנית, ולכן שינוי שנעשה רק בעותק הפרוס יחזור לאחר ריצת האספקה הבאה.
מחקו את השורה המיושנת והניחו לנקודת הקצה, לתעודות, למדיניות הצפנים ולמגדירי ערוץ הבקרה. אלה אפשרויות נתמכות שהתהליך זקוק להן, והן אינן מעורבות בשגיאת הניתוח. אם אותו פרופיל מכיל הנחיות אחרות שאינכם מזהים, בדקו כל אחת מהן מול הגרסה שאתם מריצים במקום למחוק קבוצה שלהן עד שהתהליך יעלה.
לאחר מכן הפעילו את המופע המיועד וקראו את פלט העלייה שלו. עלייה נקייה עם מאזין נוכח היא האישור שהשלב הזה הסתיים; בדיקת לקוח לאחר מכן עונה על שאלה אחרת.
פרופיל נדחה ולקוח נדחה נראים דומה
שני כשלים מייצרים שרשורי תמיכה דומים וזקוקים לראיות שונות. שרת שדוחה את התצורה של עצמו לא עולה לעולם, ולכן שום לקוח לא יכול להתחבר אליו. שרת שעולה היטב ודוחה לקוח אחד פועל, והיומן שלו מכיל את הסיבה: בעיית תעודה, אפשרות שנדחפה והלקוח אינו מקבל, אי-התאמת צופן.
האפשרות שהוסרה אינה אבחון למקרה השני, והישענות עליה מבזבזת את אותה שעה פעמיים. אם יומן הלקוח מראה את הדחייה של השרת, קראו את הדחייה הזאת; אם הוא מראה שגיאה מקומית, הפרופיל של הלקוח הוא הקובץ לבדיקה. הישענות על הנחיה שכבר אינה קיימת מעכבת את שתי החקירות באותה מידה.
שאלות תאימות שהשורה מעולם לא ענתה עליהן
פרופילים שמסתובבים עם ההנחיה הזאת נושאים בדרך כלל סיפור על פלטפורמה מסוימת, והסיפור שורד את הסיבה הטכנית. לקוח נייד או שולחני עדיין זקוק לפרופיל מלא נתמך: שרשרת תעודות מהימנה, צופן נתונים ששני הקצוות מקבלים, מצב ערוץ בקרה ששני הקצוות מיישמים, ושום הנחיות שהבנייה של הלקוח דוחה. דבר מזה לא נקבע על ידי נוכחות או היעדר השורה הישנה של key-method.
דחיסה היא שאלת מדיניות נפרדת בעלת אותה צורה. הסרת שורת key-method לא אומרת דבר על האם הנחיית דחיסה נתמכת או מקובלת בפריסה שלכם, ושתי ההחלטות צריכות להתקבל בנפרד. מחיקת כמה הגדרות רלוונטיות לאבטחה בבת אחת עד שמשהו מתחבר היא הדרך שבה פרופיל עובד הופך לפרופיל בלתי מוסבר.
שמרו תיעוד קצר של מה הסרתם ולמה: האפשרות, הגרסה שדחתה אותה והפקודה שהראתה את השגיאה. האדם הבא שיירש את הפרופיל יזדקק בדיוק לשלוש העובדות האלה, וזול יותר לרשום אותן עכשיו מאשר לשחזר אותן אחר כך.