האם לקוח ה-OpenVPN שלך צריך להשתמש ב-nobind או בפורט קבוע?
nobind מאפשר לליבה לבחור את פורט המקור עבור לקוח שמתחבר החוצה. שלושה תנאים קובעים אם אתה רוצה זאת, או פורט מקומי נעוץ במקום.
שני פרופילים שנבדלים בשורה אחת מתנהגים אחרת ברגע שלקוח שני מתחיל על אותו מארח. האחד נושא nobind ולוקח כל פורט מקומי שהליבה מספקת; השני שומר 1194, והמופע השני מת עם כתובת שכבר בשימוש. השורה הזו קובעת מי בוחר את פורט המקור, מה שבתורו קובע אם הפרופיל יכול להתקיים לצד כל דבר אחר במכונה. שלוש שאלות מכריעות בכך, והראשונה עונה לרוב הפרופילים לפני שמגיעים לשתיים האחרות.
מה nobind באמת מדלג עליו
כברירת מחדל הלקוח קושר סוקט מקומי לפני שהוא מתחבר, ופורט המקור הוא 1194 אלא אם הפרופיל אומר אחרת. nobind מסיר את ההזמנה הזו, כך שהמחסנית מקצה פורט שאינו בשימוש בזמן החיבור. זו בחירה חריגה ולא ברירת מחדל, ולקוח בלי השורה מחזיק 1194, וזו בדיוק הסיבה שמופע שני שאינו נעוץ מתנגש. רוב פרופילי הלקוח המסופקים נושאים את ההנחיה מהסיבה הזו, וזה שקובץ דוגמה עושה משהו אינו זהה לכך שהמנגנון עושה זאת כברירת מחדל.
מה שלא משתנה הוא הצד הרחוק. השרת עדיין מאזין במקום שהפרופיל אומר שהוא מאזין, ופורט היעד בתצורה הוא עדיין פורט היעד. פורט מקור דינמי משנה את כתובת החזרה של הסוקט שלך וכלום אצל השרת.
הוא גם לא מסתיר דבר. הכתובת הציבורית שלך היא מה שהנתיב מתרגם אותה אליו, החבילה עדיין חוצה את הרשת המקומית, ומי שמפעיל את הרשת הזו עדיין רואה זרימה. nobind אינו תכונת פרטיות ואינו עקיפת חומת אש.
שלושה תנאים שמכריעים
שאלה אחת מכריעה את השתיים האחרות, אז ענה עליה לפני שאתה עורך משהו. אם העמית מחייג החוצה, השאלות הנותרות רק מדייקות החלטה שכבר התקבלה. אם הוא מקבל חיבורים נכנסים, שום כוונון של הפורט המקומי לא הופך אותו לנגיש.
האם העמית הזה יוזם את החיבור? אם הוא מחייג החוצה, פורט מקור דינמי אינו מזיק ובדרך כלל עדיף, כי התשובה חוזרת באותה זרימה. אם הוא ממתין לחיבורים נכנסים, פורט דינמי הופך אותו לבלתי נגיש אלא אם משהו לפניו מפרסם את הפורט. התשובה האחת הזו מפרידה בין כל פרופיל לקוח לכל פרופיל שרת.
האם הנתיב מסנן לפי פורט המקור? כלל נוקשה שנכתב עבור פורט ידוע אחד מחייב פורט מקומי מפורש, והפרופיל צריך לתעד איזה כלל הוא ממלא. רוב הרשתות מסננות רק לפי יעד, ולכן התנאי הזה נדיר יותר מהראשון. היכן שהוא חל, הוא גובר על ההעדפה לפורט דינמי.
האם מספר מופעים חולקים את המארח? פורט קבוע אחד לא יכול לשרת שניים מהם, ומופע שהופעל מחדש עשוי למצוא 1194 עדיין במצב סגירה. פורטים דינמיים מסירים את הקונפליקט הזה בלי לשנות דבר אחר. אם אינך יכול לענות על זה בביטחון, הנח שכן ותן לליבה לבחור.
היכן פורט נעוץ הוא התשובה הנכונה
רשתות מסוימות מסננות לפי פורט המקור וגם לפי היעד, כך שמפעיל אולי כתב כלל שמעביר תעבורה רק מפורט ידוע אחד. נעיצת הפורט המקומי נכונה אז, והפרופיל צריך לשאת הערה שמציינת את הכלל שהוא ממלא. נעיצה לשם סימטריה עם פורט השרת אינה סיבה, כי לשני המספרים אין שום קשר זה לזה. אם הנעיצה קיימת רק מפני שתבנית כללה אותה, מחק אותה.
אחרת פורט נעוץ קונה צרות: שני לקוחות במכונה אחת לא יכולים להחזיק 1194 שניהם, והשני נכשל בשגיאה שמצביעה על הפורט ולא על הפרופיל. מכולה שמפעילה מחדש במהירות פוגעת באותה קיר. התיקון הוא ההנחיה שהפרופילים המסופקים כבר הכילו.
שרת ולקוח אינם סימטריים
מדריך OpenVPN 2.6 מציב nobind לצד lport, שזו הטענה בשורה אחת: אפשרות אחת אומרת שהליבה בוחרת, השנייה אומרת שאתה בוחר. פורט מקומי דינמי עובד רק עבור העמית שמחייג, כי הצד שעונה אינו יכול לדעת את הפורט מראש. לכן העתקת פרופיל לקוח לשרת יוצרת מאזין שאיש אינו יכול להגיע אליו.
במארח עם כמה ממשקי רשת הכתובת היא החלטה נפרדת מהפורט. קשירת כתובת מקומית מסוימת וקשירת פורט מסוים הן שתי הגדרות שונות, ושרת עם שני קישורי עלייה נועל בדרך כלל את שתיהן. לקוח שנועל את שתיהן קיבל על עצמו את אותה קשיחות בלי שום תועלת.
הסיכום עוסק בתפקידים ולא באבטחה: מי שמחייג יכול להיות גמיש לגבי המקור שלו, ומי שעונה לא יכול. אף אחת משתי האפשרויות לא משנה מה הצד השני לומד על הזהות שלך. זו גם הסיבה שההנחיה מופיעה בדוגמאות לקוח וכמעט אף פעם בדוגמאות שרת.
אמת את הפורט שהליבה בחרה
לאחר ההתחברות קרא את הסוקט ולא את התצורה, כי התצורה מצהירה על הכוונה והסוקט על מה שקרה. העובדות שראוי לתעד הן הפורט המקומי, נקודת הקצה המרוחקת והאם משהו עדיין מאזין. במארח Linux כל השלושה במרחק פקודה אחת.
ss -unp | grep openvpn
ss -lunp | grep openvpn
sudo lsof -nP -i | grep openvpn
לקוח עם nobind מציג פורט מקומי גבוה ואת הפורט המרוחק המוגדר, וזו הצורה הצפויה. שרת מציג סוקט מאזין בפורט המוגדר שלו, ואם הסוקט הזה חסר, הפרופיל או שאינו מאזין או שנכשל בקשירה. כאשר קיימת זרימה אבל לא חוזרות חבילות, השווה את פורט המקור שנבחר לכל מסנן פורטים בנתיב לפני עריכת הפרופיל. שנה דבר אחד, התחבר מחדש וקרא את הסוקט שוב.