מה מכיל ייצוא VPN של Mac, ומה הוא משאיר מאחור
ייצוא VPN של Mac נושא הגדרות ולעיתים מפתח פרטי, אבל לא את סיסמת צרור המפתחות או את רישום המכשיר. בדקו כל חלק תחילה.
לחצו על Export בלקוח VPN של Mac ותקבלו קובץ שמתאר חיבור בלי להיות חיבור. כתובת השרת, הפורט, הפרוטוקול ולעיתים קרובות גם האישורים נמצאים בתוכו. סיסמת הכניסה, מילת הסיסמה של מפתח פרטי והרישום שמאשר בדיוק את ה-Mac הזה בדרך כלל לא. לכן פרופיל יכול להייבוא נקי, להופיע ברשימת הלקוח ועדיין להיכשל בבקשת האימות הראשונה; הפער הוא תכונה של הפורמט, לא הורדה פגומה.
| Part of the connection | Where it lives on the old Mac | What an export does with it |
|---|---|---|
| Server, port, protocol, routes | Client profile or managed settings | Usually included when the client exports configuration |
| Client certificate and private key | Inside the package, the login keychain, or issued by MDM | Included only if the format packs it; a keychain-held key stays behind |
| Login password, key passphrase | Login keychain | Left out by design |
| Device authorization or enrollment | Server side, bound to the certificate or the device record | Not transferable; the new device has to enroll |
מה באמת מכיל הקובץ המיוצא
ייצוא הוא מכולה, ואילו סיומת הקובץ מספרת פחות מהתוכן. פרופילי OpenVPN הם טקסט: הנחיות, בתוספת בלוקים מוטמעים אופציונליים <ca>, <cert> ו-<key>. הגדרות Tunnelblick הן ארכיונים דחוסים של תצורות והגדרות. .mobileconfig מנוהל הוא plist של מטענים. שתי רשימות עונות על רוב השאלה לפני שאתם מייבאים משהו.
עבור פרופיל טקסט, ספרו את בלוקי ה-PEM שהוא נושא: grep -c "PRIVATE KEY" your-profile.ovpn. תוצאה שאינה אפס פירושה שהקובץ מחזיק חומר מפתח וחייב להיות מטופל כמו סיסמה מאותו רגע. עבור ארכיון, רשמו אותו בלי לחלץ: tar -tf export.tbz, או unzip -l export.zip אם הלקוח יצר zip. קובצי מפתח, קובצי אישור וסקריפטים של העלאה או הורדה ברשימה הזו הם החלקים שהנפקה מחדש של חשבון משתמש לא תשחזר.
המקרה ההפוך חשוב באותה מידה. כשהפרופיל מצביע על מפתח לפי שם קובץ במקום להטמיע אותו, הייצוא חסר בכוונה והחצי החסר חייב לבוא ממי שהנפיק אותו. העתקת הקובץ הזה לצידו תקינה כשאתם בעלי רשות האישורים; היא אינה תקינה כשהקובץ הגיע עם אישור הכרוך במכשיר שנוצר ב-Mac הישן.
למה החצי של צרור המפתחות אף פעם לא נוסע
macOS שומר סיסמאות VPN ומילות סיסמה של מפתחות בצרור המפתחות של הכניסה, והלקוחות מאחסנים אותן שם ולא בקבצי ההגדרות שלהם. Tunnelblick מציין את מדריך הייצוא והייבוא שלו: ארכיון ההתקנה נושא תצורות והגדרות ומשאיר בחוץ את שמות המשתמשים, הסיסמאות ומילות הסיסמה המוחזקים בצרור המפתחות. ההשמטה מכוונת. פריטי צרור המפתחות מוגנים לפי משתמש ולפי מכונה, כך שלפריט מועתק אין בקרת גישה תקפה ביעד, מה שמשאיר או קובץ חסר תועלת או סוד בטקסט גלוי.
אתם יכולים לאשר היכן אישור הגישה חי לפני שתתכננו את המעבר. security find-internet-password -s vpn.example.com מדפיס תכונות של פריט תואם ויוצא בקוד שאינו אפס כשאין כזה; אותה פקודה עם -g הייתה מבקשת לחשוף את הסיסמה, ולכן השאילתה בלעדיה היא הבדיקה הבטוחה יותר. מציאה שם פירושה שהפרופיל לא נושא את הסיסמה ולא ניתן להכריח אותו לעשות זאת. היא גם אומרת שהסיסמה תישאל שוב ב-Mac החדש, והרשאה מסוג «אפשר תמיד» בישן לא נחשבת שם כלל.
לא כל סוד הוא פריט בצרור המפתחות, עם זאת. התיעוד של חבילת Tunnelblick עצמה מציין שחבילה עשויה להכיל קובצי מפתח, אישור וסקריפט. לכן העובדה שהייצוא משמיט פריטי צרור מפתחות אינה אותה טענה כמו שהייצוא בטוח לשליחה בדואר; התייחסו לארכיון כרגיש עד שתרשמו מה יש בו.
ל-VPN מקוריים ומנוהלים אין נתיב ייצוא
חיבורים שהוגדרו דרך הגדרות המערכת אינם מציעים ייצוא נתמך. scutil --nc list מציג את השירותים שהמערכת מכירה, ו-scutil --nc show "Work VPN" מדפיס את התצורה של שירות אחד, מספיק כדי לקרוא את השרת והפרוטוקול שלו. אף אחד מהם אינו כלי הגירה. מזהי השירות המאוחסנים ב-/Library/Preferences/SystemConfiguration/preferences.plist הם הפניות לתוך הקובץ הזה, ולכן העתקת הקובץ ושכתוב מזהים אינה העברה נתמכת ועלולה להפריע לשירותי רשת לא קשורים ביעד.
הנתיב הנתמך הוא זה ש-Apple מתעדת: התקינו קובץ הגדרות VPN שסיפק מנהל, או הזינו את ההגדרות שהמפעיל נותן לכם. כשהחיבור מנוהל, בקשו קובץ חדש או רישום חדש במקום לבנות אותו מחדש מצילום מסך של הדו-שיח הישן. עבור פרופיל שנדחף על ידי MDM, מטען האישור עשוי לשאת את הזהות בעוד המפתח הפרטי נוצר במכשיר, ובמקרה כזה אפילו עותק מושלם של הפרופיל הישן לא יכול לאמת את ה-Mac החדש.
אמתו את השחזור במקום לסמוך על הרשימה
פרופיל ברשימה ומנהרה עובדת הם שני מצבים שונים, ורק אחד מהם שווה דיווח. אחרי ייבוא וחיבור, בדקו שממשק המנהרה קיים, ואז בדקו מה המנהרה עושה.
ifconfig | grep -A3 utun מציג את ממשק המנהרה ואת כתובותיו. scutil --dns | grep nameserver מציג אילו פותרים פעילים אחרי החיבור, ושם בדיוק פרופילי split-DNS נוטים להתפצל. אחר כך הגיעו למשאב שבאמת חשוב: curl -sS -o /dev/null -w "%{http_code}" https://intranet.example.com. אם כל השלושה עוברים, ההגדרות, ה-DNS והנתיבים הגיעו; סמל ירוק בלקוח לא אומר דבר מזה בפני עצמו.
שני כשלים מופיעים לעיתים קרובות אחרי ייבוא ושניהם מיוחסים לקובץ. שמות ציבוריים שנפתרים בעוד הפנימיים לא, בדרך כלל אומר ששרתי ה-DNS של הפרופיל נפלו או ש-split-DNS לא נשמר. מנהרה שעולה ולא מעבירה תעבורה בדרך כלל אומרת שהנתיבים או ההרשאה בצד השרת לא עקבו אחרי הפרופיל. ייבוא חוזר של אותו ארכיון משחזר את שניהם.
לפני שאתם מוציאים את ה-Mac הישן משירות
מחיקת הייצוא אינה ביטול. אם המכשיר הישן אומת באישור, השרת עוד סומך על האישור הזה עד שהוא מבוטל או מונפק מחדש. אם הוא אומת בחשבון משותף, ייתכן שהפעלות בחשבון הזה עודן חיות. עשו את הצעד בצד השרת כשהחומרה עוד לפניכם.
אחסנו את הפרופיל החדש עם שאר אישורי הגישה שלכם כשהוא מכיל מפתח, והקלידו את הסיסמה בלקוח כדי שתיכנס לצרור המפתחות החדש ולא לקובץ. בדיקה אחרונה: התחברו מהמחליף כשהמק הישן כבוי. מסירה שעובדת רק כשמכונת המקור מחוברת לרשת מעולם לא הייתה שלמה.