מדוע פרופיל OpenVPN אינו מיובא ל-SoftEther
SoftEther יכול לחשוף מאזין תואם OpenVPN, אך הלקוח המקורי זקוק לפרופיל החיבור שלו עצמו. זהו את השירות לפני שמפצלים מפתחות.
שני קבצים שנראים שניהם כמו תצורת VPN נוחתים באותה תיקייה, ורק אחד מהם עובד. פרופיל OpenVPN מתאר מנהרת TLS עם הנחיות שהלקוח הזה מבין, ואילו חיבור SoftEther מתאר הפעלה מול רכזת וירטואלית עם חוזה אימות אחר. המרת האחד לאחר אינה תרגיל עיצוב, מפני ששני הלקוחות אינם מיישמים את אותו פרוטוקול. זיהוי השירות שהמפעיל באמת פרסם קובע את כל מה שבא אחר כך.
שני קבצים, שני חוזים
פרופיל OpenVPN הוא תצורת לקוח: נקודת קצה מרוחקת, תעבורה, חומר TLS והנחיות לניתוב ולמשא ומתן מחדש. חיבור SoftEther הוא הפעלת לקוח מקורית מול רכזת וירטואלית, עם מתאם וירטואלי המחובר אליה.
הם יכולים לתאר גישה לאותה רשת בלי להיות ניתנים להחלפה. מאזין OpenVPN הוא תכונת תאימות שהשרת יכול לפרסם בפורט נפרד, והוא מדבר OpenVPN ולא את הפרוטוקול המקורי. הלקוח המקורי מדבר את הפרוטוקול המקורי ומצפה לפרופיל שלו עצמו. שרת אחד, שתי דלתות, ולכל דלת המפתח שלה.
סיומת הקובץ כמעט אינה אומרת לך דבר, ולכן התשובה של המפעיל חשובה יותר משם הקובץ.
קראו את השרת לפני שנוגעים בבלוק תעודה
שאלו את המפעיל שלושה דברים: איזה פורט ותעבורה, איזו שיטת אימות, ואיזה לקוח הם מצפים שתשתמשו בו. התשובות האלה מסירות את רוב הניחושים.
לאחר מכן אשרו מה באמת מאזין ולא מה שמדריך טוען. מאזין תאימות כבוי אינו מציג דבר בפורט שלו, ומאזין פעיל מציג שקע גם כשאף אחד לא התחבר מעולם. ההבדל בין פורט סגור לבין התחברות נדחית הוא האבחון השימושי הראשון. כל מה שאחריו תלוי באיזו דלת נדפקה.
ss -lunp | grep -E ':1194|:443'
sudo ss -ltnp | grep -E ':992|:5555'
grep -nE '^(remote|proto|auth-user-pass|ca |cert |key )' profile.ovpn
פורט UDP שחסר ברשימת המאזינים הוא תכונה כבויה ולא בעיית חומת אש.
מה הלקוח המקורי צריך ופרופיל אינו יכול לתת לו
הלקוח המקורי מתקין מתאם רשת וירטואלי וקושר אליו חיבור. בלי המתאם הזה אין ממשק שדרכו מנתבים, ולכן חיבור מקורי יכול לבצע אימות ובכל זאת לא להעביר תעבורה.
האימות המקורי פועל מול רכזת וירטואלית, עם אובייקט משתמש שנוצר בידי מנהל הרכזת. בלוקי תעודה שהועתקו מפרופיל OpenVPN אינם הופכים למשתמשי רכזת, ומשתמש רכזת אינו הופך לתעודת לקוח. שתי המערכות מאחסנות דברים שונים, ולפרופיל אין מקום לשים בו את רשומת המשתמש של הרכזת. זהו הבדל מבני ולא בעיית תחביר.
הרחיקו את המפתח הפרטי מכל שירות המרה, מפני שמפתח שיוצא מהמחשב חייב להיחשב כנחשף.
מה מקבל מאזין תואם OpenVPN
מאזין התאימות הוא שרת OpenVPN אמיתי מנקודת מבט הלקוח: הוא מצפה ללקוח OpenVPN ולהנחיות שהלקוח הזה תומך בהן. בלוקי תעודה מוטמעים הם תכונה של OpenVPN, והם שייכים לאותו צד של הגדר.
מה שהוא לא יעשה הוא לקבל פרופיל SoftEther מקורי, מפני שפרופיל כזה אינו תצורת OpenVPN. המאזין גם אינו הופך את הלקוח המקורי ללקוח OpenVPN. אם המפעיל מציע רק את השירות המקורי, התשובה היא הלקוח המקורי; אם הוא מציע את מאזין התאימות, התשובה היא OpenVPN והחומר שלו עצמו.
בקשו את הייצוא הנתמך של המפעיל במקום להרכיב אחד משברים, מפני שהייצוא נושא פרטים שקובץ שנבנה ביד בדרך כלל מפספס.
הוכיחו את הנתיב לפני עריכת הנחיות
לאחר בחירת הלקוח, בדקו את המנהרה לפני שנוגעים בנתיבים. התחברות מוצלחת וממשק שמעביר תעבורה הם שני תוצאות שונות.
sudo openvpn --config profile.ovpn --verb 3
ip -br addr
ip route get 10.70.4.20
resolvectl status | grep -A2 'DNS Servers'
השוו את הכתובת שהוקצתה לבריכה שתיאר המפעיל, ואחר כך התבוננו בנתיבים ובפותר בנפרד. חיבור רכזת מקורי יכול לבצע אימות נקי ולא להתקין שום נתיב, מה שנראה מצד הלקוח כמנהרה שבורה. רק אחרי ששלושת אלה מסכימים שווה לערוך הנחיה. עריכה מוקדמת מסתירה איזו שכבה הייתה שגויה.