שני מכשירים, תעודת OpenVPN אחת: לולאת ההתחברות מחדש
מנהרה שמתאתחלת כל חצי דקה היא בדרך כלל שני מכשירים עם אותה תעודת לקוח. עברו על היומן, הפיצול ושלב ההוצאה משימוש.
מנהרה שעולה ואז מתאתחלת כל חצי דקה אינה בדרך כלל בעיית צופן או MTU. זו זהות אחת שמשמשת פעמיים. השרת רואה שם נפוץ מוכר, מקבל את הסשן החדש כעדכני ביותר, והמכשיר הישן מגלה שהוא הוחלף. מצד הלקוח זה נראה כמו פקיעת זמן חוסר פעילות והתחלה מחדש, ולכן הבדיקה כל כך לעיתים קרובות מתחילה במקום הלא נכון.
התחילו ממחזור האתחול
המחזור הוא רמז לפני כל דבר אחר. קצב קבוע שמתאים לחלון ping-restart מצביע על סשן שמוחלף ולא על מסלול כושל, כי כשלי מסלול הם לעיתים רחוקות כל כך סדירים. רשמו את הפער המדויק בין האתחולים ואת שורת הסיבה ביומן הלקוח. פקיעת זמן שאחריה אתחול מספרת סיפור אחר מכשל בלחיצת יד.
בדקו מתי החלו האתחולים ביחס למכשיר שני. מחשב נייד חדש, טלפון או פרופיל שהועתק למכונה חלופית הם הטריגרים הרגילים, והתזמון בדרך כלל תואם ליום שבו מישהו הגדיר אותו.
רשמו את המחזור ואת הסיבה. שניהם ראיות, ושניהם זולים לאיסוף.
קראו מה השרת אמר על הכניסה השנייה
בשרת שאתם שולטים בו, היומן מציין את השם הנפוץ ומראה חיבור שני שמגיע. בלי duplicate-cn ההגעה הזו מחליפה את הסשן הקיים לאותו שם, וההודעה בדרך כלל אומרת זאת בפשטות. עם duplicate-cn שני הסשנים מתקיימים יחד והתסמין משתנה: הלקוחות נשארים מחוברים אך חולקים מערכת הגדרות אחת לכל לקוח והחלטת ביטול אחת. קראו את שתי הרשומות יחד, כי ההחלפה נראית רק ברצף.
בשירות מתארח ייתכן שאין לכם יומן שרת כלל. אז הרמז הוא התזמון: מנהרה יציבה שנופלת בכל פעם שמכונה אחרת מתחברת, ושום דבר ביומן הלקוח מעבר לפקיעת הזמן.
השוו את בלוקי התעודה והמפתח בשני הפרופילים, לא רק את שם המארח המרוחק. פרופילים מועתקים נבדלים בדרך כלל רק בשם הקובץ.
פצלו את הזהות בצד השרת
הנפיקו תעודה אחת לכל מכשיר דרך ה-CA שחותם עבור השרת הזה. עם Easy-RSA פירוש הדבר שם לקוח נפרד לכל מכשיר, והפרופיל נבנה אז מאותה תעודה והמפתח שלה. השם הנפוץ הופך לזהות המכשיר, וזה בדיוק מה שהיה חסר לשרת. תנו להם שמות לפי המכשיר ולא לפי האדם, כדי שהחלפה תיצור שם חדש.
מפתח ערוץ הבקרה המשותף הוא דבר נפרד. tls-crypt או tls-auth מגן על ערוץ הבקרה לכל לקוח ונועד לשיתוף. הוא אינו זהות לקוח, והחלפתו לא תתקן תעודה כפולה.
שמרו את התעודה, המפתח וכל קובץ תצורה לכל לקוח תחת אותו שם נפוץ, אחרת המיפוי נשבר בחיבור הבא. אי-התאמה שם יוצרת לקוח שמאמת ואז לא מקבל דבר.
שמרו על יישור הכתובות וההגדרות לאחר הפיצול
כתובות קבועות מוסיפות דרך שנייה להתנגש. אם השרת מקצה אותן דרך ifconfig-pool-persist או קובץ לכל לקוח, הרשומות האלה עדיין מצביעות על השם הישן. שני מכשירים עלולים לקבל אותה כתובת מנהרה גם לאחר שהתעודות הופרדו, והכשל הזה נראה אחרת מהלולאה המקורית.
עדכנו את המיפוי יחד עם התעודה, ואז חברו מחדש את שני המכשירים והשוו את הכתובות שהוקצו להם. כתובת כפולה מופיעה כאובדן לסירוגין ולא כהתחברות מחדש נקייה.
דחפו הגדרות שאמורות להיות שונות לכל מכשיר דרך הקובץ של אותו מכשיר, ולא דרך תבנית משותפת. תבנית משותפת גם מקשה לזהות את הכפילות הבאה.
הוציאו את הזהות הישנה משימוש כראוי
בטלו את התעודה כשחומרה מוצאת משימוש או חסרה, במקום למחוק את הפרופיל מהמכונה הישנה. הביטול מייצר CRL חדש, והשרת זקוק לקובץ הזה במקום שאליו מצביע crl-verify. עם ההנחיה הזו במקומה, CRL חסר או לא קריא גורם לשרת לדחות כל לקוח, לכן בדקו חשבון מוכר אחד אחרי כל עדכון.
נהלו מלאי שקושר כל תעודה לאדם או למכשיר, עם תאריכי הנפקה וביטול. המלאי הזה עונה מי עדיין בעל גישה בלי לקרוא שמות קבצים, והוא מונע מהפרופיל המועתק הבא להפעיל את הלולאה מחדש.