VPN מאתר לאתר לעומת גישה מרחוק: מה כל אחד מהם מחבר
האחד מחבר שערים, האחר מחבר התקנים. השוו בוררי תעבורה לנתיבים, תכננו את הכתובות, ואז בדקו העברה ומדיניות ממארח אמיתי.
שתי התצורות נקראות VPN והן פותרות בעיות שונות. מנהרה מאתר לאתר מחברת שני שערים, כך שכל מארח מאחוריהם יכול להגיע לכתובות המותרות בצד השני בלי להתקין דבר. מנהרת גישה מרחוק מחברת התקנים בודדים לרשת, לקוח אחד בכל פעם. ההשוואה חשובה מפני שרוב טעויות הפריסה נובעות מהגדרה של תצורה אחת תוך ציפייה להתנהגות של האחרת, והתסמין הוא בדרך כלל פסק זמן בשירות שהמנהרה אכן הגיעה אליו.
שתי תצורות, שני גבולות
| Site-to-site | Remote access | |
|---|---|---|
| Endpoints | two gateways | a gateway and each client |
| Who configures | network owners | each user or an MDM |
| Scope of reach | whatever the gateways route | whatever the client is granted |
| Broadcast discovery | not carried | not carried |
אף אחת מהתצורות אינה מרחיבה תחום שידור LAN. התקנים בצד המרוחק אינם מופיעים ברשימת גילוי מקומית, וציפייה לכך היא ההנחה הראשונה שיש לזנוח. שמות DNS פרטיים שאתם מפרסמים במכוון צפויים יותר מכל פרוטוקול גילוי, והם שורדים החלפת ספק.
קחו 10.10.0.0/24 באתר אחד ו-10.20.0.0/24 בשני. שער A זקוק לנתיב או לבורר תעבורה ששולח את הקידומת 10.20.0.0/24 אל המנהרה, ושער B זקוק לתמונת הראי שלה. לאחר מכן המארחים משני הצדדים משתמשים בקישוריות IP רגילה ואינם יודעים לעולם שקיימת מנהרה. אי-הנראות הזו היא התכונה, והיא גם הסיבה לכך שכשלים נראים כמו שגיאות רשת רגילות ולא כמו שגיאות מנהרה.
מבוסס מדיניות ומבוסס נתיב אינם אותה מנהרה
בפריסת IPsec מבוססת מדיניות, בוררי התעבורה המתואמים מגדירים בדיוק אילו זוגות מקור ויעד מוגנים. אם מופיע תת-רשת חדש מאחורי שער אחד ואף בורר אינו מכסה אותו, המנהרה נשארת פעילה ותת-הרשת החדשה פשוט אינה מועברת. בתצורה מבוססת נתיב, ממשק מקבל את התעבורה וטבלת הניתוב מחליטה, מה שהופך הוספת קידומת לשינוי ניתוב ולא למשא ומתן מחדש על המנהרה.
StrongSwan חושף את שתי התצוגות ישירות, וקריאה שלהן יחד היא הדרך לדעת איזה מודל באמת פרסתם.
swanctl --list-sas
ip xfrm policy
ip -4 route show table all | grep -E '10\.(10|20)\.'
רשימת בוררים שמשמיטה את הקידומת שחשובה לכם מסבירה את הכשל בלי כל לכידת מנות, ונתיב שמצביע על הממשק הלא נכון מסביר את כשל הראי בדרך חזרה. קראו את שניהם לפני שתנהלו משא ומתן מחדש, כי חידוש מפתח לא יוסיף בורר שלא הגדרתם מעולם.
תכננו את הכתובות לפני המנהרה
טווחים חופפים הם טעות התכנון שאי אפשר לתקן בהגדרה. אם שני האתרים משתמשים ב-192.168.1.0/24, למארח שזקוק ל-192.168.1.50 יש שני מועמדים ואין דרך לבחור. המנהרה תאמת, אסוציאציות האבטחה יקומו, והחלטת הניתוב תהיה שגויה או עמומה בכל מקרה.
בחרו אחת משלוש אפשרויות כנות: למספר מחדש אתר אחד, לתרגם את הטווח החופף בשער כך שכל צד יראה קידומת נפרדת, או לוותר על ניתוב ישיר עבור המארחים האלה ולפרסם את השירות בדרך אחרת. לכל אחת יש מחיר, והראשונה היא בדרך כלל הזולה בטווח של שנתיים. החליטו לפני שהמנהרה קיימת, כי אחר כך השינוי נוגע בכל התקן שיש לו הכתובת הישנה.
פתרו גם את שאלת ה-MTU מוקדם. מנהרה מקטינה את המטען השמיש, ותצורה שנשענת על פיצול מתנהגת אחרת מזו שמקבעת את ה-MSS בשערים.
העברה ומדיניות נמצאות מחוץ למנהרה
השער חייב להסכים להעביר מנות בין ממשק המנהרה לממשק ה-LAN, ושני הכיוונים צריכים מדיניות שמתירה את השירות. ב-Linux אלה שתי הגדרות נפרדות, בתוספת כללי חומת האש שקובעים אם הזרימה המועברת מותרת בכלל.
sysctl -w net.ipv4.ip_forward=1
iptables -A FORWARD -s 10.20.0.0/24 -d 10.10.0.0/24 -j ACCEPT
iptables -A FORWARD -s 10.10.0.0/24 -d 10.20.0.0/24 -j ACCEPT
המארח המקבל מוסיף שכבה שלישית: חומת האש שלו עדיין חייבת לקבל לקוח מתת-הרשת המרוחקת. שרת קבצים שמתיר רק את ה-/24 המקומי שלו ידחה תעבורה מועברת מ-10.20.0.7, כמה שהמנהרה תיראה בריאה, וקל לקרוא את הדחייה הזו ככשל ניתוב.
בדקו ממארח, לא מהשער
פינג שנשלח מהשער עצמו יכול לעקוב אחר כתובת מקור ומדיניות שונים מאלה של תעבורת משתמשים מועברת. זה הופך אותו לבדיקה חלשה ולעיתים מטעה: הוא מצליח כשהאפליקציה נכשלת, או נכשל כשהאפליקציה עובדת.
ip route get 10.10.0.5 from 10.20.0.7
ping -I 10.20.0.7 10.10.0.5
curl -sv --max-time 5 http://files.10-10.internal/ -o /dev/null
השתמשו במארח אמיתי, בכתובת מקור אמיתית ובפרוטוקול האמיתי שהאפליקציה משתמשת בו. אחר כך קראו את נתיב החזרה בנפרד, כי כיוון קדימה שעובד בלי נתיב חזרה יוצר פסק זמן שנראה זהה לשירות חסום.
בחרו את התצורה לפי השאלה שאתם עונים עליה: האם אתם מחברים רשתות או מקבלים התקנים? כל השאר, כולל איזה ספק תגדירו, נובע מהתשובה הזו.