איזו תוכנית מחזיקה בקובץ config.json הזה בהתקנת OpenVPN שלך?
קובץ בשם config.json יכול להשתייך לממשק גרפי, לדמון או לפורמט ייצוא ולא ל-OpenVPN. מצאו את המנתח לפני עריכת מפתחות או החלפתם.
אתם מוצאים קובץ בשם config.json, מוזכר בו שרת VPN, וההנחה מגיעה מיד: זו ודאי החיבור של OpenVPN. לעתים קרובות זה לא כך. קובץ JSON בשם הזה יכול להשתייך לממשק שולחני שמפעיל את הלקוח, לדמון ששומר את ההגדרות שלו עצמו, או לפורמט ייצוא של מוצר, ולכל אחד מאלה יש סכימה משלו.
שם הקובץ הוא הרמז הכי פחות שימושי. התחילו מהתהליך שקורא את הקובץ, בדקו אחר כך אם הפורמט שהוא מצפה לו הוא בכלל JSON, ורק אז החליטו אם עריכת הקובץ היא הדרך הנתמכת לשנות משהו.
התחילו מהתהליך, לא משם הקובץ
הסתכלו מה באמת רץ. יחידת שירות, סקריפט הפעלה או אפליקציה במגש המערכת ינקבו בשם הקובץ הבינארי שהם מפעילים ולעתים קרובות גם בנתיב התצורה שהם מעבירים. התיקייה שמכילה את הקובץ היא רמז שני: תיקיות נתוני יישומים, תיקיות תצורת שירותים ותיקיות פרופיל משתמש מרמזות על בעלים שונים.
אחר כך קראו את התיעוד של המוצר שמחזיק ברכיב הזה. אם ה-JSON שייך לעטיפה, המפתחות שלו הם המפתחות של העטיפה, ואובייקט שנראה סביר שנבנה לפי הדוגמה של מוצר אחר יידחה או ייתעלם ממנו בשקט.
שני קבצים עם אותו שם בתיקיות שונות הם מלכודת נפוצה. האחד עשוי להיות מצב שנוצר שהשירות כותב מחדש בכל הפעלה, והשני התבנית שאמור האדם לערוך. שינוי הקובץ הלא נכון מייצר תיקון שמחזיק עד האתחול הבא.
מהו בעצם פרופיל Community OpenVPN
Community OpenVPN 2.6 קורא פורמט טקסט מבוסס אפשרויות. פרופיל הוא רצף של הנחיות: שורת מצב לקוח, שורת התקן, נקודת קצה מרוחקת, ובנוסף אפשרויות זהות, הצפנה ונתיבים, והוא יכול להטביע חומר תעודה ומפתח בתוך בלוקים מוטבעים.
הפורמט הזה מנותח שורה אחר שורה על ידי הלקוח עצמו. מסירת מסמך JSON דרכו באמצעות אפשרות config אינה מפעילה מנתח JSON; השורה הראשונה תידחה כהנחיה לא מוכרת. שינוי שם של קובץ JSON כך שיסתיים ב-.ovpn גם לא ממיר את תוכנו, וקובץ אפשרויות תקין לא הופך ללא תקין מפני שהסיומת שלו יוצאת דופן.
ל-OpenVPN Connect ול-OpenVPN 3 Linux יש נתיבי ייבוא וניהול משלהם לפרופילים. מוצרים אלה יכולים לקבל פרופיל ולשמור אותו במסד הנתונים או במצב השירות שלהם, וזה אינו אותו דבר כמו קובץ JSON שבמקרה מתאר שרת.
עריכת מצב שנמצא בבעלות רכיב אחר
אם ה-JSON נוצר, העריכה שלו היא מרוץ. שירות שרץ עשוי לכתוב אותו חזרה בכיבוי, בהתחברות מחדש או בשינוי ההגדרות הבא, ועריכה ידנית נעלמת בלי שגיאה. העדיפו את פקודת הייבוא של המוצר, את ממשק הניהול או את ממשק ההגדרות, כי נתיבים אלה מעדכנים את המצב הפנימי שהקובץ מייצג. קובץ שחוזר לאחור אחרי אתחול אומר לכם איזה נתיב היה הקבוע.
אם בכל זאת אתם עורכים קובץ שנוצר, עצרו קודם את השירות, שמרו גיבוי ועשו את השינוי הקטן ביותר האפשרי. אחר כך בדקו אם השירות כותב את הקובץ מחדש בעת ההפעלה, כי קובץ שחוזר לאחור בהפעלה פירושו שמקור האמת האמיתי נמצא במקום אחר ושהעריכה לא הייתה נשארת לעולם.
סיסמאות ומפתחות פרטיים מוטבעים הם עניין נפרד. JSON יכול לשאת מפתח שלם בקלות כמו קובץ אפשרויות, לכן התייחסו לכל ייצוא כאל סוד, הרחיקו אותו מדיסקים משותפים והסתירו ערכים לפני הדבקת מבנה בשאלה בפורום.
אימות השינוי והגנת הקובץ
אימות אינו „ה-JSON מנותח“. ניתוח מוכיח רק שהסוגריים תואמים; הוא לא אומר דבר על כך שהבעלים מזהה את המפתחות. בדקו את המצב של המוצר עצמו: רשימת הפרופילים הפעילים, החיבור הנבחר והתחברות מחדש שמשתמשת באמת בערכים החדשים. פרופיל שמופיע ברשימה אך אף פעם לא הופך לנבחר עדיין אינו הפרופיל שבשימוש.
עקבו אחרי היומן של הרכיב שערכתם, לא רק אחרי זה של לקוח ה-VPN. עטיפה שדוחה את הקובץ שלכם מדווחת על כך בדרך כלל ביומן שלה, ולקוח שמעולם לא קיבל את הקובץ נראה זהה ללקוח שקיבל הגדרות גרועות.
שמרו עותק של הקובץ שעובד ורשמו את גרסת המוצר שמולה בדקתם. הפורמטים האלה משתנים בין מהדורות, ומבנה שעבד בשנה שעברה עלול להידחות אחרי שדרוג בהודעה שלא מזכירה את הסכימה כלל.
סיכום המסלול: זהו את התהליך, קראו את התיעוד שלו, ודאו אם הקובץ הוא בכלל JSON, השתמשו בנתיב העריכה הנתמך ואמתו דרך המצב של המוצר עצמו. שם הקובץ לא ענה אף פעם על אחת מהשאלות האלה.