שני עיצובים יכולים להריץ TLS על פורט 443 ולהתכוון בכך לדברים שונים לגמרי. עטיפה מגנה על חיבור מוגדר אחד בין פורט מקומי ל-backend מרוחק. עיצוב גישה לרשת נושא תעבורה נבחרת ומשנה למה הלקוח יכול להגיע. בצעו את ארבע הבדיקות שלמטה לפי הסדר ותדעו באיזה משניהם אתם מסתכלים, וזה בדרך כלל מספיק כדי לדעת איזו שכבה נכשלה.

התחילו בחיבור שבאמת הגדרתם

רשמו את החזית והאחור לפני שאתם משווים מוצרים. עטיפה מאזינה בכתובת מקומית ומעבירה לכתובת מרוחקת, או מפעילה תוכנית בצד המרוחק, וזוג זה הוא כל החוזה שלה. שאר היישומים של הלקוח לא יודעים עליה דבר אלא אם תפנו אותם אליה. זו אינה מגרעת של הכלי, לכך הכלי נועד.

החוזה של עיצוב רשת שונה, והוא מתבטא בנתיבים ובמדיניות, לא בזוג פורטים.

שימו לב איזה משני התיאורים תואם לתרשים שלכם. אם התשובה היא מיפוי פורט אחד עם תעודה באמצע, יש לכם עטיפה גם כששם המוצר אומר VPN. אם התשובה היא ממשק מנהרה ושינויי נתיב, יש לכם עיצוב רשת גם כשהוא פועל על 443.

בדקו למה העטיפה מתחברת

קראו את הגדרות ההאזנה וההתחברות ועקבו אחריהן עד ל-backend האמיתי. עטיפה שמעבירה לפורט של מסד נתונים אינה פותחת יישום אינטרנט, ועטיפה שמפעילה תוכנית מפעילה את אותה תוכנית במקום לפרסם את כל השאר שהמארח מריץ. ה-backend הוא הדבר היחיד שהעטיפה מכירה.

אחר כך החליטו אם הזרם המועבר הוא טקסט פשוט לאחר ש-TLS מסתיים. חיבור עטוף מגן על הקטע בין שתי העטיפות, ומה שקורה אחרי העטיפה המרוחקת הוא שאלה נפרדת. לכן עטיפת משהו שכבר נושא הגנה משל עצמו היא לפעמים הגיונית ולפעמים רק חלקים נעים נוספים. בדקו את הקפיצה הבאה במקום להניח אחת משתי התשובות.

openssl s_client -connect wrapper.lab.example:443 -servername wrapper.lab.example -verify_return_error
sudo ss -ltnp | grep 443

הפקודה הראשונה מציגה את התעודה שמוצעת ללקוח בפועל, והשנייה מציגה מה מאזין במארח. השוו את שם התעודה הזה לזה שציפיתם לו לפני שתקראו כל דבר אחר.

בדקו איזו תעבורה העיצוב נושא

עיצובי גישה לרשת נושאים תעבורה נבחרת ומשתלבים בניתוב ובמדיניות הגישה של הלקוח. קבלה אינה הרשאה, ולכן חיבור מאומת עדיין זקוק להחלטה לאילו משאבים מותר לו להגיע. פורטל ללא לקוח הוא מודל שלישי שמתווך פעולות נתמכות בלי להופיע אי פעם כממשק tun.

תווית המוצר לא אומרת איזה מהמודלים האלה קניתם, ומספר הפורט אומר אפילו פחות.

שכבות אפשריות ולא אמורות לבלבל את ההשוואה. פרוטוקול מנהרה יכול בעצמו להיעטף ב-TLS בסידור TCP נתמך, מה שמוסיף שכבה סביב המנהרה בלי להפוך את העטיפה למנהרה. זו בחירת עיצוב עם התנהגות ביצועים וכשל משלה, והיא ראויה לשורה בתרשים. רשמו אותה, ואז השוו את המודלים הבסיסיים ולא את העטיפה החיצונית.

בדקו את הגבול שנכשל, לא את התווית

רשמו את העובדות לניסיון כושל אחד: כתובת החזית, המאזין, הזהות שהלקוח אימת, יעד ה-backend והפעולה שהתבקשה. לחיצת יד מצליחה מוכיחה ש-TLS החיצוני הושלם ואינה אומרת דבר על ה-backend. דחייה מה-backend היא אירוע שונה מכשל זהות בחזית, ואף אחד מהם לא משתפר בהסרת -verify_return_error מהלקוח. השוו דומה לדומה, כי הצלחה דרך שם מארח או פורט אחר אינה מראה שהתנאים היו זהים.

פורט 443 הוא מוסכמה שמאפשרת ל-TLS לעבור דרך קופסאות ביניים. הוא לא גורם לתעבורה שרירותית להיראות כמו בקשת אינטרנט להתקן מדיניות.

סיימו במשפט אחד שמציין את זוג הקצוות, מה ננשא, אילו יישומים משתמשים בו ואיזו הרשאה היעד אוכף. עיצוב שאינו יכול למלא את ארבעת החללים האלה אינו שלם, יהיה מה שתוויתו תטען. אותו משפט הוא גם הדרך המהירה ביותר להסביר את העיצוב למי שמחזיק בחומת האש.

מאמרים קשורים